Using newer SDK on older macOS

Chris Jones jonesc at hep.phy.cam.ac.uk
Tue Dec 3 17:20:32 UTC 2024


Hi,

It could be the linker version(ld) is also too old in this case. If you 
are using the system provided one try with a newer one.

Chris

On 03/12/2024 4:45 pm, Ryan Carsten Schmidt wrote:
> I'm trying to make a port (Aseprite) use the newer macOS 10.13 SDK on older macOS versions like 10.9, like this:
> 
> 
> set min_sdk_version         10.13
> if {${os.platform} eq "darwin" && [vercmp ${configure.sdk_version} < ${min_sdk_version}]} {
>      configure.sdk_version   ${min_sdk_version}
>      configure.sdkroot       ${prefix}/Developer/SDKs/MacOSX${configure.sdk_version}.sdk
>      depends_build-append    port:MacOSX${configure.sdk_version}.sdk
> }
> 
> 
> The port uses C++17 so it needs a newer MacPorts clang. MacPorts picks clang-17.
> 
> The port uses cmake and ninja and it fails:
> 
> 
> -- Check for working C compiler: /opt/local/bin/clang-mp-17
> -- Check for working C compiler: /opt/local/bin/clang-mp-17 - broken
> CMake Error at /opt/local/share/cmake-3.29/Modules/CMakeTestCCompiler.cmake:67 (message):
>    The C compiler
>      "/opt/local/bin/clang-mp-17"
>    is not able to compile a simple test program.
>    It fails with the following output:
> ...
>      ld: unexpected token: !tapi-tbd-v3 file '/opt/local/Developer/SDKs/MacOSX10.13.sdk/usr/lib/libSystem.tbd' for architecture x86_64
>      clang: error: linker command failed with exit code 1 (use -v to see invocation)
>      ninja: build stopped: subcommand failed.
> 
> 
> The fact that we have a libtapi port made me think our toolchains supported this. Does anyone know how to make this work?
> 
> 



More information about the macports-dev mailing list