Use a fixed SDK for Mac OS X builds
Apple releases new systems with new SDK versions. Official documentation says that it is enough to use newest SDK with MACOSX_TARGET set to lowest supported version of Mac OS X. This is not always true, as they try to keep all new features conditionally included, but they sometimes fail.
For example /usr/include/sys/mman.h
file has been changed between SDK10.10 and SDK10.11 without any compatibility flags and resulted in #13005 (closed) (Mac OSX uses MAP_ANON
in place of MAP_ANONYMOUS
).
The solution is:
- download the lowest supported SDK from https://github.com/phracker/MacOSX-SDKs
- set the path using -isysroot param to gcc
Overall would be best to compile using all supported SDKs, but given lack of CI machines I think it is better to build with minimum version. Apple is pretty good at keeping backward compatibility on source level.
Trac metadata
Trac field | Value |
---|---|
Version | 8.0.1 |
Type | Task |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Compiler |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | |
Architecture |