Darling Wiki

macOS translation layer for Linux

User Tools

Site Tools


build_instructions

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.

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

Dependencies

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.

Debian

sudo apt-get install cmake clang bison flex xz-utils libfuse-dev libudev-dev pkg-config libc6-dev-i386 linux-headers-amd64 libcap2-b
in

Ubuntu

sudo apt-get install cmake clang bison flex xz-utils libfuse-dev libudev-dev pkg-config libc6-dev-i386 linux-headers-generic gcc-multi libcap2-bin
lib

Arch Linux

sudo pacman -S make cmake clang flex bison icu fuse linux-headers

Fedora

sudo dnf install cmake clang bison flex glibc-devel.i686 fuse-devel systemd-devel kernel-devel

Build

Now let's build Darling:

# Move into the cloned sources
cd darling

# Make a build directory
mkdir build && cd build

# Configure the build
cmake .. -DCMAKE_TOOLCHAIN_FILE=../Toolchain.cmake

# Build and install Darling
make
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: 2017/05/22 11:46 by lubosd