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-bin git libgcc-5-dev:i386 libcairo2-dev libgl1-mesa-dev libtiff5-dev libfreetype6-dev libfreetype6-dev:i386

Ubuntu

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

Arch Linux

sudo pacman -S make cmake clang flex bison icu fuse linux-headers gcc-multilib pkg-config

Fedora

sudo dnf install cmake clang bison flex python2 glibc-devel.i686 fuse-devel systemd-devel kernel-devel cairo-devel freetype-devel.i686 libjpeg-turbo-devel{,.i686} libtiff-devel{,.i686} fontconfig-devel.i686

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 ..

# 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/09/23 15:49 by bugaevc