ld64 build for Linux - EXPERIMENT for using Mach-Os for Darling's libs
Go to file
Thomas Pöchtrager 168e4ad2e0 arm64e
2020-01-07 16:24:49 +01:00
cctools arm64e: Patch the header file instead of changing sources to avoid merge conflicts 2020-01-07 16:22:22 +01:00
tools ld64 450.3 & cctools 927.0.2 2019-10-31 20:06:41 +01:00
usage_examples/ios_toolchain Fixes to make cctools and ld64 work on Android 2019-11-06 17:54:58 +01:00
.gitignore cctools: make is_llvm_bitcode() more portable (fixes -flto with multiple -arch flags) 2014-02-15 14:54:10 +01:00
.travis.yml Merge pull request #67 from fanquake/sudo_deprecated 2019-06-04 15:19:18 +02:00
package.sh * linux ppc/ppc64 & arm/arm64/aarch64 port 2015-03-15 22:21:16 +01:00
README.md arm64e 2020-01-07 16:24:49 +01:00

Apple cctools and ld64 port for Linux, FreeBSD and macOS

Current Version: cctools: 927.0.2, ld64: 450.3.
Originally ported by cjacker.

SUPPORTED HOSTS

SUPPORTED OPERATING SYSTEMS:

Linux, Android (Termux), FreeBSD,
Mac OS X, iOS, OpenBSD and NetBSD

SUPPORTED HOST ARCHITECTURES:

x86, x86_64, arm, arm64/aarch64

SUPPORTED TARGET ARCHITECTURES

armv6, armv7, armv7s, arm64, arm64e,
arm64_32 (untested), i386, x86_64, x86_64h,
armv6m, armv7k, armv7m and armv7em

arm64 requires Apple LLVM/Clang.

SUPPORTED TARGET OPERATING SYSTEMS

Mac OS X, iOS, watchOS (untested) and tvOS (untested)

DEPENDENCIES

Clang 3.4+

SDKs with .tdb stubs (>= Xcode 7) require the TAPI library to be installed.
=> https://github.com/tpoechtrager/apple-libtapi

musl-libc based systems require the musl-fts library to be installed. => https://github.com/pullmoll/musl-fts

Optional, but recommended:

llvm-devel (For Link Time Optimization Support)
uuid-devel (For ld64 -random_uuid Support)
llvm-devel + xar-devel (For ld64 -bitcode_bundle Support)

You can find xar here.
Do not install libxar-dev on Ubuntu, it's a different package.

INSTALLATION

Install Apple's TAPI library:

This step is only required if you intend to use SDKs with .tdb stubs.

git clone https://github.com/tpoechtrager/apple-libtapi.git
cd apple-libtapi
[INSTALLPREFIX=/home/user/cctools] ./build.sh
./install.sh

Install cctools and ld64:

git clone https://github.com/tpoechtrager/cctools-port.git
cd cctools-port/cctools
./configure \
    [--prefix=/home/user/cctools] \
    [--with-libtapi=/home/user/cctools] \
    [--target=<target>] \
    [--with-llvm-config=...]
make
make install

target = i386-apple-darwin11, x86_64-apple-darwin11, arm-apple-darwin11, ...

If you get compile errors because of unistd.h, then please run
../tools/fix_unistd_issue.sh and restart compiling.

TRAVIS CI

Build Status