Darling Wiki

macOS translation layer for Linux

User Tools

Site Tools


Build Instructions

You must be running a 64-bit x86 Linux distribution. Darling cannot be used on a 32-bit x86 system, not even to run 32-bit applications.


It is recommended that you use at least Clang 3.8. You can force a specific version of Clang (if it is installed on your system) by editing Toolchain.cmake.

Linux 4.9 and higher is required.


sudo apt-get install cmake clang bison flex xz-utils libfuse-dev libudev-dev pkg-config libc6-dev-i386 linux-headers-amd64 libcap2-bin git libgcc-5-dev:i386 libcairo2-dev libgl1-mesa-dev libtiff5-dev libfreetype6-dev libfreetype6-dev:i386 libxml2-dev libegl1-mesa-dev libfontconfig1-dev libbsd-dev


sudo apt-get install cmake clang bison flex xz-utils libfuse-dev libudev-dev pkg-config libc6-dev:i386 linux-headers-generic gcc-multilib libcap2-bin libcairo2-dev libgl1-mesa-dev libtiff5-dev libfreetype6-dev libfreetype6-dev:i386 git libelf-dev libxml2-dev libegl1-mesa-dev libfontconfig1-dev libbsd-dev

Arch Linux

sudo pacman -S --needed make cmake clang flex bison icu fuse linux-headers gcc-multilib lib32-gcc-libs pkg-config fontconfig cairo libtiff python2 mesa


sudo dnf install cmake clang bison flex python2 glibc-devel.i686 fuse-devel systemd-devel kernel-devel elfutils-libelf-devel cairo-devel freetype-devel.{x86_64,i686} libjpeg-turbo-devel.{x86_64,i686} libtiff-devel.{x86_64,i686} fontconfig-devel.{x86_64,i686} libglvnd-devel mesa-libGL-devel libxml2-devel libbsd-devel

Fetch the Sources

Darling makes extensive use of Git submodules, therefore you cannot use a plain git clone. Make a clone like this:

git clone --recursive https://github.com/darlinghq/darling.git


Now let's build Darling:

# Move into the cloned sources
cd darling

# Make a build directory
mkdir build && cd build

# Configure the build
cmake ..

# Build and install Darling
sudo make install

Darling also requires a kernel module named darling-mach:

make lkm
sudo make lkm_install

If module installation produces warnings such as SSL error:02001002:system library:fopen:No such file or directory: bss_file.c:175, then these can be usually ignored, unless you configured your system to enforce secure boot.

The kernel module is an experimental piece of code. It is highly recommended that only trusted users have access to /dev/mach.

Special Permissions

Certain applications (typically 32-bit ones) may produce the following error:

Cannot mmap segment __TEXT at 0x1000: Operation not permitted

To fix the problem, run the following (assuming the installation prefix is /usr/local):

sudo setcap cap_sys_rawio=ep /usr/local/libexec/darling/bin/mldr
sudo setcap cap_sys_rawio=ep /usr/local/libexec/darling/bin/mldr32
build_instructions.txt · Last modified: 2018/08/14 06:20 by bugaevc