* Added support for TAPIv3 stubs (including "zippering" target)
* Added support for MacOSX SDKs up to 10.14
* Added new SDK packaging script for SDKs that end with ".xip" (tools/gen_sdk_package_pbzx.sh <xcode.xip>) (tested up to Xcode 10.2.1)
* Updated cctools to 921 and ld64 to 409.12
Fixed:
* Implemented fix for https://github.com/tpoechtrager/osxcross/issues/171
* Implemented fix for https://github.com/tpoechtrager/osxcross/issues/178
* Implemented fix for https://github.com/tpoechtrager/osxcross/issues/182
Changed:
* cctools, ld64, apple-libtapi and xar are now "git clone"'d and no longer come with OSXCross.
Removed:
* Support for Cygwin and *BSD (besides FreeBSD)
* Support for building OSXCross with GCC
Other changes:
* Add USE_CLANG_AS build.sh option
* build_clang.sh: Update Clang version to 3.9.1
* build_compiler_rt.sh: Adjustments for Clang 4.0 and Clang 5.0
One behavior of cctools' libtool when invoked as ranlib is rotating archives of universal object files (such as those created by `clang -arch i386 -arch x86_64 -c ...`) into universal files containing per-architecture archives each containing single-architecture objects. From Xcode 7 until Xcode 7.3, whose cctools/ld64 are not yet open source, there was a bug where this would fail if any of the individual objects were LLVM bitcode objects rather than natively compiled ones, and incorrectly succeed with nonsensical results if such an archive contained members that were not recognizable object files at all. The fix is straightforward and this commit adds a patch to apply it while we wait for newer cctools sources to be released.
This finally adds support for Xcode 7 / El Capitan.
With this commit I am also removing ld64-134.9 support.
I kept ld64-134.9 for users with an old C++ standard library.
A decent C++ standard library with C++11 support is now mandatory.
* Support for generating fat object files with gcc and '-foc-use-gcc-libstdc++'
has been removed.
This feature was not 100% correctly implemented; using multiple source files
did not work, i.e.: 'o32-g++ -m32 -m64 a.cpp b.cpp' would have failed;
And I refuse to implement that, instead I am removing all source file handling
from the wrapper with this commit for simplicity.
This feature should be implemented in the gcc driver instead.
This does NOT affect clang's fat object file support, which is implemented in
clang's darwin driver.
* '-oc-use-gcc-lib' has been renamed to '-foc-use-gcc-libstdc++'.
* Added support for '-stdc++' and '-gstdc++' compiler "shortcuts"
o32-clang++ --> uses libstdc++ for <= 10.8 and libc++ for >= 10.9
o32-clang++-libc++ --> uses the SDK's libc++
o32-clang++-stdc++ --> uses the SDK's libstdc++
o32-clang++-gstdc++ --> uses gcc's (build_gcc.sh) libstdc++
* Entirely rewrote the command line parser; the previous one wasn't very
readable.
* Minor Readme Updates
* Added unit tests
* Removed OSXCROSS_C_STANDARD / OSXCROSS_CXX_STANDARD support
I am no longer parsing -std=, so this feature has to be dropped.
Setting the language standard via an env variable isn't a good idea anyway.
* Removed unneeded stuff
Other Changes:
* Version bump to 0.11