b909882f93
The apple case for the default uses sysctl to get the kernel version, which is a version number like 18.7.0, where the major version, minus 4, is used for setting the minor version of the macOS version number, translating 18.7.0 into 10.14. The previous ld64-port specific case of trying to hardcode 10.5, just ends up parsed as kernel version 10, i.e. 10.6, regardless of which version the default string is set to. Instead of passing the cctools/ld64-port specific default to the kernel version parsing logic, just set the result of parseVersionNumber32 as the version number. Change the default to 10.6, which is what actually was set before in practice. |
||
---|---|---|
cctools | ||
tools | ||
usage_examples/ios_toolchain | ||
.gitignore | ||
.travis.yml | ||
package.sh | ||
README.md |
Apple cctools and ld64 port for Linux, *BSD and macOS
Current Version: cctools: 949.0.1, ld64: 512.4.
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
arm64e requires Apple LLVM/Clang.
SUPPORTED TARGET OPERATING SYSTEMS
macOS, iOS, tvOS, watchOS, bridgeOS, Mac Catalyst,
iOS Simluator, watchOS Simulator, DriverKit
Not all of the targets have been tested.
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.