this repo has no description
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Update build instructions

+6 -135
+6 -47
README.md
··· 27 27 28 28 For complete instructions, visit [DarlingHQ.org](http://www.darlinghq.org/build-instructions). 29 29 30 - #### For running x86-64 OS X binaries 31 - 32 30 <a href="http://teamcity.dolezel.info/viewType.html?buildTypeId=Darling_DebianStableX8664&guest=1"> 33 31 <img src="http://teamcity.dolezel.info/app/rest/builds/buildType:(id:Darling_DebianStableX8664)/statusIcon" title="Debian stable build for x86-64"/> 34 32 </a> ··· 61 59 62 60 ```` 63 61 cd darling 64 - mkdir -p build/x86-64 65 - cd build/x86-64 66 - cmake ../.. -DCMAKE_TOOLCHAIN_FILE=../../Toolchain-x86_64.cmake 62 + mkdir build 63 + cd build 64 + cmake ../ -DCMAKE_TOOLCHAIN_FILE=../Toolchain.cmake 67 65 make 68 66 make install 69 67 ```` 70 68 71 - #### For running i386 OS X binaries 72 - 73 - <a href="http://teamcity.dolezel.info/viewType.html?buildTypeId=Darling_DebianStableX8664&guest=1"> 74 - <img src="http://teamcity.dolezel.info/app/rest/builds/buildType:(id:Darling_DebianStableX8664)/statusIcon" title="Debian stable build for i386"/> 75 - </a> 76 - 77 - Required additional dependencies (on top of x86_64 dependencies) 78 - 79 - Debian (stable) / Ubuntu (15.10): 80 - 81 - ``` 82 - $ sudo apt-get install libc6-dev-i386 libudev-dev:i386 lib32stdc++-4.9-dev 83 - ``` 84 - 85 - Arch Linux (4.8): 86 - 87 - ``` 88 - $ sudo pacman -S lib32-libstdc++5 lib32-clang 89 - ``` 90 - 91 - ```` 92 - cd darling 93 - mkdir -p build/i386 94 - cd build/i386 95 - cmake ../.. -DCMAKE_TOOLCHAIN_FILE=../../Toolchain-x86.cmake 96 - make 97 - make install 98 - ```` 99 - 100 - #### Building and loading the kernel module (x86-64 and i386) 69 + #### Building and loading the kernel module 101 70 102 71 ```` 103 72 # Go into src/lkm to build the kernel module 104 - cd ../../src/lkm 73 + cd ../src/lkm 105 74 make 106 75 make install 107 76 ```` ··· 110 79 111 80 ```` 112 81 # Go into src/lkm to build the kernel module 113 - cd ../../src/lkm 82 + cd ../src/lkm 114 83 sudo ./dkms.sh 115 84 ```` 116 85 ··· 174 143 175 144 Congratulations, you have just compiled and run your own Hello world application with Apple's toolchain. 176 145 177 - 178 - ### AppKit 179 - 180 - AppKit is still highly experimental and incomplete, but to work on it you need to configure CMake with `-DFRAMEWORK_APPKIT=1` and install some additional packages. 181 - 182 - Ubuntu 16.04: 183 - ``` 184 - sudo apt install qt5-default qtquick1-5-dev qtscript5-dev qtdeclarative5-dev 185 - 186 - ```
-88
README.md.old
··· 1 - This is a userspace compatibility layer for running Darwin/OS X binaries on Linux. 2 - 3 - # General information 4 - 5 - For more information visit http://www.darlinghq.org 6 - 7 - **Build instructions** are avaiable here: http://www.darlinghq.org/build-instructions 8 - 9 - # Hacking tutorial 10 - 11 - Want to help? Visit the developer zone at http://www.darlinghq.org/developer-zone 12 - 13 - ## Directory tree 14 - 15 - <dl> 16 - 17 - <dt>benchmarks/</dt> 18 - <dd>No serious stuff in here, used only once for a simple ObjC msg sending benchmark.</dd> 19 - <dt>etc/</dt> 20 - <dd>Contains dylib.conf which is used to map OS X library (framework) paths to Linux/Darling ones. `/dev/null` = load nothing.</dd> 21 - <dt>include/</dt> 22 - <dd>Header files taken from Darwin/OS X (APSL license). The plan is to get rid of these eventually.</dd> 23 - <dt>misc/</dt> 24 - <dd>Random files, nothing that really matters.</dd> 25 - <dt>src/</dt> 26 - <dd>Source code, see below.</dd> 27 - <dt>tests/</dt> 28 - <dd>Test runner. It is specifically designed to work on my testing setup. See below.</dd> 29 - <dt>tests/src/</dt> 30 - <dd>The source code for tests.</dd> 31 - <dt>tools/</dt> 32 - <dd>Various utilities used during the development.</dd> 33 - 34 - </dl> 35 - 36 - ### Source tree 37 - 38 - The structure under `src/`. 39 - 40 - <dl> 41 - <dt>src/libSystem/</dt> 42 - <dd>Wrappers or implementation of libc funcions, BSD system calls and Mach system calls.</dd> 43 - 44 - <dt>src/libobjcdarwin/</dt> 45 - <dd>Loader of ObjC classes/protocols in Mach-O ObjC applications. Contains code for selector fixups and other techniques needed to "make it work" with GNUstep's libobjc2.</dd> 46 - 47 - <dt>src/util/</dt> 48 - <dd>Various utility functions/classes common to all parts of Darling.</dd> 49 - 50 - <dt>src/libmach-o/</dt> 51 - <dd>Mach-O parsing/loading library.</dd> 52 - 53 - <dt>src/dyld/</dt> 54 - <dd>The dynamic loader.</dd> 55 - 56 - <dt>src/motool/</dt> 57 - <dd>A very simple tool for Mach-O file examination. (An allusion to "otool" available on OS X.)</dd> 58 - 59 - <dt>src/crash/</dt> 60 - <dd>A crash ("force quit") dialog app for Cocoa apps. Not really complete yet.</dd> 61 - 62 - <dt>...</dt> 63 - <dd>The rest is code or wrappers in various stages of completion.</dd> 64 - 65 - </dl> 66 - 67 - ### Tests tree 68 - 69 - The testing procedure implemented in `src/tests/runtest.cpp` is as follows: 70 - 71 - 1. It copies the source file to the OS X machine. 72 - 2. It remotely builds the source file. If the current binary name is `runtest32`, then `-m32` is added and `dyld32` is used later on. A similar `runtest64` symlink is needed if your 64-bit dyld is called `dyld64`. If the first line in the source file is `// CFLAGS:`, then the rest is used as CFLAGS. 73 - 3. It remotely runs the program and keeps its stdout. 74 - 4. It copies the binary over to the local machine. 75 - 5. It runs the binary via dyld/dyld32/dyld64. 76 - 6. It compares the stdout contents of dyld with that of the remotely run binary. 77 - 7. Should the stdout contents differ or should the process exit with a non-zero code on either of the systems, the test has failed. 78 - 79 - ## Debugging 80 - 81 - Find out how Darling can help you with debugging at http://www.darlinghq.org/for-developers/debugging-in-darling 82 - 83 - ## What NOT to do 84 - 85 - To avoid mistakes: 86 - 87 - * DO NOT use opencflite and similar Apple CFLite forks, unless you know what you're doing. They lack bridging support with gnustep-base. Bridging between gnustep-corebase and -base is at least work in progress. Should CFLite forks ever fix a bug for you, please help fix the problem in gnustep-corebase. 88 -