You must be running a 64-bit x86 Linux distribution. While using Darling on a 32-bit system may be possible (and only 32-bit OS X executables will run), this is not supported. The table below refers to building a 32-bit runtime environment on a 64-bit system.
cd darling mkdir build cd build cmake ../ -DCMAKE_TOOLCHAIN_FILE=../Toolchain.cmake make make install # Now we go into src/lkm to build the kernel module cd ../src/lkm make make install
$ sudo apt-get install cmake clang bison flex xz-utils libfuse-dev libxml2-dev \ libicu-dev libssl-dev libbz2-dev zlib1g-dev libudev-dev linux-headers-amd64
$ sudo apt-get install cmake clang bison flex xz-utils libfuse-dev libxml2-dev \ libicu-dev libssl-dev libbz2-dev zlib1g-dev libudev-dev linux-headers-generic
Arch Linux (4.8):
$ sudo pacman -S cmake clang flex icu fuse
Loading the kernel module
Darling uses a kernel module to provide certain OS X specific features, mainly Mach Ports IPC. No OS X application can be run without this module, since Libc requires Mach Ports for its initialization and even for very basic things such as
Important note for Ubuntu: Recent Ubuntu releases use kernel module signing. It is up to you to find and apply a workaround for loading a module that you have built by e.g. disabling signature verification or by signing the module somehow.
modprobe darling-mach # ATTENTION: The kernel module is likely unstable, # full of vulnerabilities, etc. # You SHOULD restrict access to /dev/mach to trusted # users only and be prepared to the eventuality of # kernel hangups (and related data loss). chmod a+rw /dev/mach