* Update README

* Update ChangeLog
* Mac OS X -> macOS
This commit is contained in:
Thomas Pöchtrager 2020-08-17 19:19:47 +02:00
parent 5489149683
commit 536dc13153
11 changed files with 76 additions and 51 deletions

View File

@ -1,3 +1,11 @@
/****************************** v1.3 *********************************/
Added:
* Support for arm64 and arm64e targets
Changed:
* Updated TAPI library to 1100.0.11
/****************************** v1.2 *********************************/ /****************************** v1.2 *********************************/
Added: Added:
@ -25,7 +33,7 @@ Changed:
Added: Added:
* Support for TAPIv3 stubs (including "zippering" target) * Support for TAPIv3 stubs (including "zippering" target)
* Support for Mac OS X SDKs up to 10.15 * Support for macOS SDKs up to 10.15
* SDK packaging script for ".xip" Xcode images * SDK packaging script for ".xip" Xcode images
-> tools/gen_sdk_package_pbzx.sh <xcode.xip> -> tools/gen_sdk_package_pbzx.sh <xcode.xip>
--> tested up to Xcode 10.2.1 --> tested up to Xcode 10.2.1
@ -156,7 +164,7 @@ Added:
* '-stdlib=' support for GCC (as an extension through the wrapper) * '-stdlib=' support for GCC (as an extension through the wrapper)
* 'OSXCROSS_C_STANDARD' env var (set C standard globally) * 'OSXCROSS_C_STANDARD' env var (set C standard globally)
* 'OSXCROSS_CXX_STANDARD' env var (set C++ standard globally) * 'OSXCROSS_CXX_STANDARD' env var (set C++ standard globally)
* OS X support (as host) * macOS support (as host)
Changed: Changed:
* 'osxcross-conf', 'osxcross-env' and the (fake) 'dsymutil' are now * 'osxcross-conf', 'osxcross-env' and the (fake) 'dsymutil' are now
@ -216,7 +224,7 @@ Changed:
* Updated cctools to 839 with ld64-134.9 * Updated cctools to 839 with ld64-134.9
Fixed: Fixed:
* Check if MacOSX package is present in tarballs * Check if macOS package is present in tarballs
/******************************* v0.1 *******************************/ /******************************* v0.1 *******************************/

View File

@ -1,7 +1,7 @@
### Requirements: ### ### Requirements: ###
* llvm-dsymutil (>= 3.8) * llvm-dsymutil (>= 3.8)
* A Mac OS X system with lldb / gdb installed * A macOS system with lldb / gdb installed
### Setting up llvm-dsymutil: ### ### Setting up llvm-dsymutil: ###
@ -18,5 +18,5 @@ Run `./build_llvm_dsymutil.sh` to build and install llvm-dsymutil to target/bin.
* [LTO only] Add `-Wl,-object_path_lto,lto.o` to the linker flags * [LTO only] Add `-Wl,-object_path_lto,lto.o` to the linker flags
* After linking run: `dsymutil binary` * After linking run: `dsymutil binary`
* [Optional] Strip the binary: `x86_64-apple-darwinXX-strip binary` * [Optional] Strip the binary: `x86_64-apple-darwinXX-strip binary`
* Copy the binary **and** the created `<binary>.dSYM` "folder" onto the target Mac OS X system * Copy the binary **and** the created `<binary>.dSYM` "folder" onto the target macOS system
* Debug the binary as usual * Debug the binary as usual

View File

@ -1,37 +1,42 @@
## OS X Cross toolchain for Linux and FreeBSD ##
## macOS Cross toolchain for Linux and FreeBSD ##
### WHAT IS THE GOAL OF OSXCROSS? ### ### WHAT IS THE GOAL OF OSXCROSS? ###
The goal of OSXCross is to provide a well working OS X cross toolchain for The goal of OSXCross is to provide a well working macOS cross toolchain for
Linux, FreeBSD, OpenBSD and Android (Termux). Linux, FreeBSD, OpenBSD and Android (Termux).
OSXCross works **on** x86, x86_64, ARM and AArch64. OSXCross works **on** `x86`, `x86_64`, `arm` and `AArch64`/`arm64`
and is able to **target** `arm64`, `arm64e`, `x86_64`, `x86_64h`, and `i386`.
`arm64` requires macOS 12 SDK (or later).
`arm64e` [requires a recent Apple clang compiler.](https://github.com/apple/llvm-project)
### HOW DOES IT WORK? ### ### HOW DOES IT WORK? ###
For cross-compiling for OS X you need For cross-compiling for macOS you need
* the Clang/LLVM compiler * the Clang/LLVM compiler
* the cctools (lipo, otool, nm, ar, ...) and ld64 * the cctools (lipo, otool, nm, ar, ...) and ld64
* the OSX SDK. * the macOS SDK.
[Clang/LLVM is a cross compiler by default](http://clang.llvm.org/docs/CrossCompilation.html) [Clang/LLVM is a cross compiler by default](http://clang.llvm.org/docs/CrossCompilation.html)
and is now available on nearly every Linux distribution, so we just and is now available on nearly every Linux distribution, so we just
need a proper [port](https://github.com/tpoechtrager/cctools-port) of need a proper [port](https://github.com/tpoechtrager/cctools-port) of
the cctools/ld64 and the OS X SDK. the cctools/ld64 and the macOS SDK.
OSXCross includes a collection of scripts for preparing the SDK and OSXCross includes a collection of scripts for preparing the SDK and
building the cctools/ld64. building the cctools/ld64.
It also includes scripts for optionally building It also includes scripts for optionally building
* Clang using gcc (for the case your distribution does not include it), * Clang using gcc (for the case your distribution does not include it),
* an up-to-date vanilla GCC as a cross-compiler for target OS X, * an up-to-date vanilla GCC as a cross-compiler for target macOS,
* the "compiler-rt" runtime library, and * the "compiler-rt" runtime library, and
* the `llvm-dsymutil` tool required for debugging. * the `llvm-dsymutil` tool required for debugging.
### WHAT CAN I BUILD WITH IT? ### ### WHAT CAN BE BUILT WITH IT? ###
Basically everything you can build on OS X with clang/gcc should build with Basically everything you can build on macOS with clang/gcc should build with
this cross toolchain as well. this cross toolchain as well.
### PACKET MANAGERS ### ### PACKET MANAGERS ###
@ -69,7 +74,7 @@ On Ubuntu trusty you must upgrade CMake to >= 3.2.3 first. Or do this:
##### Building Clang ##### ##### Building Clang #####
OSXCross uses `clang` as the default compiler for building its tools, and also OSXCross uses `clang` as the default compiler for building its tools, and also
as a cross-compiler to create OSX binaries. as a cross-compiler to create macOS binaries.
In `clang` there is no difference between cross-compilation and native In `clang` there is no difference between cross-compilation and native
compilation, so OSXCross can use a normal `clang` install for both. You can compilation, so OSXCross can use a normal `clang` install for both. You can
@ -154,7 +159,7 @@ use these variants unless you know what you're doing.
**[Please ensure you have read and understood the Xcode license **[Please ensure you have read and understood the Xcode license
terms before continuing.](https://www.apple.com/legal/sla/docs/xcode.pdf)** terms before continuing.](https://www.apple.com/legal/sla/docs/xcode.pdf)**
##### Packaging the SDK on Mac OS X: ##### ##### Packaging the SDK on macOS: #####
1. [Download Xcode: https://developer.apple.com/download/more] \*\* 1. [Download Xcode: https://developer.apple.com/download/more] \*\*
2. [Mount Xcode.dmg (Open With -> DiskImageMounter) \*\*\*] 2. [Mount Xcode.dmg (Open With -> DiskImageMounter) \*\*\*]
@ -178,21 +183,21 @@ Step 1. and 2. can be skipped if you have Xcode installed.
This method may require up to 25 GB of free disk space. This method may require up to 25 GB of free disk space.
An SSD is recommended for this method. An SSD is recommended for this method.
1. Download Xcode like described in 'Packaging the SDK on Mac OS X' 1. Download Xcode like described in 'Packaging the SDK on macOS'
2. Install `clang`, `make`, `libssl-devel`, `lzma-devel` and `libxml2-devel` 2. Install `clang`, `make`, `libssl-devel`, `lzma-devel` and `libxml2-devel`
3. Run `./tools/gen_sdk_package_pbzx.sh <xcode>.xip` 3. Run `./tools/gen_sdk_package_pbzx.sh <xcode>.xip`
4. Copy or move the SDK into the tarballs/ directory 4. Copy or move the SDK into the tarballs/ directory
##### Packing the SDK on Linux - Method 2 (works up to Xcode 7.3): ##### ##### Packing the SDK on Linux - Method 2 (works up to Xcode 7.3): #####
1. Download Xcode like described in 'Packaging the SDK on Mac OS X' 1. Download Xcode like described in 'Packaging the SDK on macOS'
2. Install `cmake`, `libxml2-dev` and `fuse` 2. Install `cmake`, `libxml2-dev` and `fuse`
3. Run `./tools/gen_sdk_package_darling_dmg.sh <xcode>.dmg` 3. Run `./tools/gen_sdk_package_darling_dmg.sh <xcode>.dmg`
4. Copy or move the SDK into the tarballs/ directory 4. Copy or move the SDK into the tarballs/ directory
##### Packing the SDK on Linux (and others) - Method 3 (works up to Xcode 7.2): ##### ##### Packing the SDK on Linux (and others) - Method 3 (works up to Xcode 7.2): #####
1. Download Xcode like described in 'Packaging the SDK on Mac OS X' 1. Download Xcode like described in 'Packaging the SDK on macOS'
2. Ensure you have `clang` and `make` installed 2. Ensure you have `clang` and `make` installed
3. Run `./tools/gen_sdk_package_p7zip.sh <xcode>.dmg` 3. Run `./tools/gen_sdk_package_p7zip.sh <xcode>.dmg`
4. Copy or move the SDK into the tarballs/ directory 4. Copy or move the SDK into the tarballs/ directory
@ -211,6 +216,8 @@ An SSD is recommended for this method.
##### Example. To compile a file called test.cpp, you can run: ##### ##### Example. To compile a file called test.cpp, you can run: #####
## x86 ##
* Clang: * Clang:
* 32 bit: `o32-clang++ test.cpp -O3 -o test` OR * 32 bit: `o32-clang++ test.cpp -O3 -o test` OR
@ -225,6 +232,16 @@ An SSD is recommended for this method.
* 64 bit: `o64-g++ test.cpp -O3 -o test` OR * 64 bit: `o64-g++ test.cpp -O3 -o test` OR
`x86_64-apple-darwinXX-g++ test.cpp -O3 -o test` `x86_64-apple-darwinXX-g++ test.cpp -O3 -o test`
## ARM ##
* Clang:
* arm64: `oa64-clang++ test.cpp -O3 -o test` OR
`arm64-apple-darwinXX-clang++ test.cpp -O3 -o test`
* arm64e: `oa64e-clang++ test.cpp -O3 -o test` OR
`arm64e-apple-darwinXX-clang++ test.cpp -O3 -o test`
XX= the target version, you can find it out by running `osxcross-conf` and XX= the target version, you can find it out by running `osxcross-conf` and
then see `TARGET`. then see `TARGET`.
@ -244,8 +261,8 @@ which you prefer.
##### Building test.cpp with libc++: ##### ##### Building test.cpp with libc++: #####
Note: libc++ requires Mac OS X 10.7 or newer! If you really need C++11 for Note: libc++ requires macOS 10.7 or later! If you really need C++11 for
an older OS X version, then you can do the following: an older macOS version, then you can do the following:
1. Build GCC so you have an up-to-date libstdc++ 1. Build GCC so you have an up-to-date libstdc++
2. Build your source code with GCC or 2. Build your source code with GCC or
@ -259,22 +276,22 @@ Usage Examples:
* C++11: `o32-clang++ -stdlib=libc++ -std=c++11 test1.cpp -o test` * C++11: `o32-clang++ -stdlib=libc++ -std=c++11 test1.cpp -o test`
* C++14: `o32-clang++ -stdlib=libc++ -std=c++14 test1.cpp -o test` * C++14: `o32-clang++ -stdlib=libc++ -std=c++14 test1.cpp -o test`
* C++17: `o32-clang++ -stdlib=libc++ -std=c++17 test1.cpp -o test` * C++17: `o32-clang++ -stdlib=libc++ -std=c++17 test1.cpp -o test`
* C++2a: `o32-clang++ -stdlib=libc++ -std=c++2a test1.cpp -o test` * C++2a: `o32-clang++ -stdlib=libc++ -std=c++20 test1.cpp -o test`
* Clang (shortcut): * Clang (shortcut):
* C++98: `o32-clang++-libc++ -std=c++98 test.cpp -o test` * C++98: `o32-clang++-libc++ -std=c++98 test.cpp -o test`
* C++11: `o32-clang++-libc++ -std=c++11 test.cpp -o test` * C++11: `o32-clang++-libc++ -std=c++11 test.cpp -o test`
* C++14: `o32-clang++-libc++ -std=c++14 test.cpp -o test` * C++14: `o32-clang++-libc++ -std=c++14 test.cpp -o test`
* C++17: `o32-clang++-libc++ -std=c++17 test.cpp -o test` * C++17: `o32-clang++-libc++ -std=c++17 test.cpp -o test`
* C++2a: `o32-clang++-libc++ -std=c++2a test.cpp -o test` * C++2a: `o32-clang++-libc++ -std=c++20 test.cpp -o test`
* GCC * GCC
* C++11: `o32-g++-libc++ -std=c++11 test.cpp` * C++11: `o32-g++-libc++ -std=c++11 test.cpp`
* C++14: `o32-g++-libc++ -std=c++14 test.cpp -o test` * C++14: `o32-g++-libc++ -std=c++14 test.cpp -o test`
* C++17: `o32-g++-libc++ -std=c++17 test.cpp -o test` * C++17: `o32-g++-libc++ -std=c++17 test.cpp -o test`
* C++2a: `o32-g++-libc++ -std=c++2a test.cpp -o test` * C++2a: `o32-g++-libc++ -std=c++20 test.cpp -o test`
##### Building test1.cpp and test2.cpp with LTO (Link Time Optimization): ##### ##### Building test1.cpp and test2.cpp with LTO (Link Time Optimization): #####
@ -296,8 +313,8 @@ Usage Examples:
The default deployment target is: The default deployment target is:
SDK <= 10.13: `Mac OS X 10.6` SDK <= 10.13: `macOS 10.6`
SDK >= 10.14: `Mac OS X 10.9` SDK >= 10.14: `macOS 10.9`
However, there are several ways to override the default value: However, there are several ways to override the default value:
@ -308,13 +325,13 @@ However, there are several ways to override the default value:
\>= 10.9 also defaults to `libc++` instead of `libstdc++`, this behavior \>= 10.9 also defaults to `libc++` instead of `libstdc++`, this behavior
can be overriden by explicitly passing `-stdlib=libstdc++` to clang. can be overriden by explicitly passing `-stdlib=libstdc++` to clang.
x86\_64h defaults to `Mac OS X 10.8` and requires clang 3.5+. x86\_64h defaults to `macOS 10.8` and requires clang 3.5+.
x86\_64h = x86\_64 with optimizations for the Intel Haswell Architecture. x86\_64h = x86\_64 with optimizations for the Intel Haswell Architecture.
### PROJECTS USING OSXCROSS: ### ### PROJECTS USING OSXCROSS: ###
* [multiarch/crossbuild](https://github.com/multiarch/crossbuild): various * [multiarch/crossbuild](https://github.com/multiarch/crossbuild): various
cross-compilers (**Systems**: Linux, OS X, Windows, **Archs**: x86\_64, cross-compilers (**Systems**: Linux, macOS, Windows, **Archs**: x86\_64,
i386, arm, ppc, mips) in Docker. OSXCross powers the Darwin builds. i386, arm, ppc, mips) in Docker. OSXCross powers the Darwin builds.
* [Smartmontools](https://www.smartmontools.org) * [Smartmontools](https://www.smartmontools.org)

View File

@ -44,7 +44,7 @@ case $SDK_VERSION in
*) echo "Unsupported SDK"; exit 1 ;; *) echo "Unsupported SDK"; exit 1 ;;
esac esac
# Minimum targeted OS X version # Minimum targeted macOS version
# Must be <= SDK_VERSION # Must be <= SDK_VERSION
if [ -n "$OSX_VERSION_MIN_INT" -a -z "$OSX_VERSION_MIN" ]; then if [ -n "$OSX_VERSION_MIN_INT" -a -z "$OSX_VERSION_MIN" ]; then
OSX_VERSION_MIN=$OSX_VERSION_MIN_INT OSX_VERSION_MIN=$OSX_VERSION_MIN_INT
@ -55,8 +55,8 @@ export TARGET
echo "" echo ""
echo "Building OSXCross toolchain, Version: $VERSION" echo "Building OSXCross toolchain, Version: $VERSION"
echo "" echo ""
echo "OS X SDK Version: $SDK_VERSION, Target: $TARGET" echo "macOS SDK Version: $SDK_VERSION, Target: $TARGET"
echo "Minimum targeted OS X Version: $OSX_VERSION_MIN" echo "Minimum targeted macOS Version: $OSX_VERSION_MIN"
echo "Tarball Directory: $TARBALL_DIR" echo "Tarball Directory: $TARBALL_DIR"
echo "Build Directory: $BUILD_DIR" echo "Build Directory: $BUILD_DIR"
echo "Install Directory: $TARGET_DIR" echo "Install Directory: $TARGET_DIR"
@ -287,7 +287,7 @@ if [ $(osxcross-cmp $SDK_VERSION ">=" 10.7) -eq 1 ]; then
echo -n "Given SDK does not contain libc++ headers " echo -n "Given SDK does not contain libc++ headers "
echo "(-stdlib=libc++ test may fail)" echo "(-stdlib=libc++ test may fail)"
echo -n "You may want to re-package your SDK using " echo -n "You may want to re-package your SDK using "
echo "'tools/gen_sdk_package.sh' on OS X" echo "'tools/gen_sdk_package.sh' on macOS"
fi fi
if [ -f "usr/include/c++/v1/__hash_table" ]; then if [ -f "usr/include/c++/v1/__hash_table" ]; then
if [ $(osxcross-cmp $SDK_VERSION ">=" 10.7) -eq 1 ]; then if [ $(osxcross-cmp $SDK_VERSION ">=" 10.7) -eq 1 ]; then

View File

@ -1,7 +1,7 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# #
# Build and install the GNU binutils and the GNU Debugger (gdb) for # Build and install the GNU binutils and the GNU Debugger (gdb) for
# target OS X. # target macOS.
# #
# You may want to run this script if you want to build software using # You may want to run this script if you want to build software using
# gcc. Please refer to the README.md for details. # gcc. Please refer to the README.md for details.

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# #
# Package the OS X SDKs into a tar file to be used by `build.sh`. # Package the macOS SDKs into a tar file to be used by `build.sh`.
# #
export LC_ALL=C export LC_ALL=C
@ -84,7 +84,7 @@ function set_xcode_dir()
if [ $(uname -s) != "Darwin" ]; then if [ $(uname -s) != "Darwin" ]; then
if [ -z "$XCODEDIR" ]; then if [ -z "$XCODEDIR" ]; then
echo "This script must be run on OS X" 1>&2 echo "This script must be run on macOS" 1>&2
echo "... Or with XCODEDIR=... on Linux" 1>&2 echo "... Or with XCODEDIR=... on Linux" 1>&2
exit 1 exit 1
else else

View File

@ -13,7 +13,7 @@ pushd "${0%/*}/.." &>/dev/null
source tools/tools.sh source tools/tools.sh
if [ $PLATFORM == "Darwin" ]; then if [ $PLATFORM == "Darwin" ]; then
echo "Use gen_sdk_package.sh on Mac OS X" 1>&2 echo "Use gen_sdk_package.sh on macOS" 1>&2
exit 1 exit 1
fi fi

View File

@ -12,7 +12,7 @@ pushd "${0%/*}/.." &>/dev/null
source tools/tools.sh source tools/tools.sh
if [ $PLATFORM == "Darwin" ]; then if [ $PLATFORM == "Darwin" ]; then
echo "Use gen_sdk_package.sh on Mac OS X" 1>&2 echo "Use gen_sdk_package.sh on macOS" 1>&2
exit 1 exit 1
fi fi

View File

@ -6,7 +6,7 @@ source tools/tools.sh
require cpio require cpio
if [ $PLATFORM == "Darwin" ]; then if [ $PLATFORM == "Darwin" ]; then
echo "Use gen_sdk_package.sh on Mac OS X" 1>&2 echo "Use gen_sdk_package.sh on macOS" 1>&2
exit 1 exit 1
fi fi

View File

@ -127,7 +127,7 @@ int sdk(Target*, char **argv) {
// Ignore empty argument. // Ignore empty argument.
if (SDK[0]) { if (SDK[0]) {
err << "xcrun: '-sdk': expected Mac OS X SDK" << err.endl(); err << "xcrun: '-sdk': expected macOS SDK" << err.endl();
return 1; return 1;
} }

View File

@ -158,7 +158,7 @@ bool Target::getSDKPath(std::string &path, bool MacOSX10_16Fix) const {
if (SDKVer == OSVersion(11, 0) && !MacOSX10_16Fix) if (SDKVer == OSVersion(11, 0) && !MacOSX10_16Fix)
return getSDKPath(path, true); return getSDKPath(path, true);
err << "cannot find Mac OS X SDK (expected in: " << path << ")" err << "cannot find macOS SDK (expected in: " << path << ")"
<< err.endl(); << err.endl();
return false; return false;
@ -531,14 +531,14 @@ bool Target::setup() {
if (RequiredSDK.lower) { if (RequiredSDK.lower) {
if (SDKOSNum > RequiredSDK.SDKVer) { if (SDKOSNum > RequiredSDK.SDKVer) {
err << "Architecture '" << getArchName(RequiredSDK.arch) << "' requires " err << "Architecture '" << getArchName(RequiredSDK.arch) << "' requires "
<< "Mac OS X <= '" << RequiredSDK.SDKVer.shortStr() << "' SDK" << "macOS " << RequiredSDK.SDKVer.shortStr() << " SDK (or earlier)"
<< err.endl(); << err.endl();
return false; return false;
} }
} else { } else {
if (SDKOSNum < RequiredSDK.SDKVer) { if (SDKOSNum < RequiredSDK.SDKVer) {
err << "Architecture '" << getArchName(RequiredSDK.arch) << "' requires " err << "Architecture '" << getArchName(RequiredSDK.arch) << "' requires "
<< "Mac OS X >= '" << RequiredSDK.SDKVer.shortStr() << "' SDK" << "macOS " << RequiredSDK.SDKVer.shortStr() << " SDK (or later)"
<< err.endl(); << err.endl();
return false; return false;
} }
@ -577,7 +577,7 @@ bool Target::setup() {
} }
} else if (stdlib == StdLib::libcxx) { } else if (stdlib == StdLib::libcxx) {
if (!hasLibCXX()) { if (!hasLibCXX()) {
err << "libc++ requires Mac OS X SDK 10.7 (or later)" << err.endl(); err << "libc++ requires macOS SDK 10.7 (or later)" << err.endl();
return false; return false;
} }
@ -590,24 +590,24 @@ bool Target::setup() {
if (SDKOSNum >= OSVersion(10, 14)) { if (SDKOSNum >= OSVersion(10, 14)) {
if (!isGCC() && !usegcclibs && stdlib == StdLib::libstdcxx) { if (!isGCC() && !usegcclibs && stdlib == StdLib::libstdcxx) {
err << "Mac OS X SDK '>= 10.14' does not support libstdc++ anymore" err << "macOS SDK '>= 10.14' does not support libstdc++ anymore"
<< err.endl(); << err.endl();
return false; return false;
} }
if (haveArch(Arch::i386)) { if (haveArch(Arch::i386)) {
err << "Mac OS X SDK '>= 10.14' does not support i386 anymore" err << "macOS SDK '>= 10.14' does not support i386 anymore"
<< err.endl(); << err.endl();
return false; return false;
} }
} }
if (OSNum > SDKOSNum) { if (OSNum > SDKOSNum) {
err << "targeted OS X version must be <= " << SDKOSNum.Str() << " (SDK)" err << "targeted macOS version must be <= " << SDKOSNum.Str() << " (SDK)"
<< err.endl(); << err.endl();
return false; return false;
} else if (OSNum < OSVersion(10, 4)) { } else if (OSNum < OSVersion(10, 4)) {
err << "targeted OS X version must be >= 10.4" << err.endl(); err << "targeted macOS version must be >= 10.4" << err.endl();
return false; return false;
} }
@ -899,13 +899,13 @@ bool Target::setup() {
bool nowarning = false; bool nowarning = false;
if (isgcclibstdcxx) { if (isgcclibstdcxx) {
err << "building for OS X '<= 10.5' with GCC (or clang++-gstdc++) " err << "building for macOS '<= 10.5' with GCC (or clang++-gstdc++) "
"is no longer supported" << err.endl(); "is no longer supported" << err.endl();
error = true; error = true;
} else if (isClang()) { } else if (isClang()) {
nowarning = !!getenv("OSXCROSS_NO_10_5_DEPRECATION_WARNING"); nowarning = !!getenv("OSXCROSS_NO_10_5_DEPRECATION_WARNING");
if (!nowarning) if (!nowarning)
warn << "building for OS X '<= 10.5' " warn << "building for macOS '<= 10.5' "
"is no longer supported" << warn.endl(); "is no longer supported" << warn.endl();
} }