Unusual workaround required to get Ada programs to build on an M1 Mac running macOS Tahoe 26.3.1

I installed alr 2.1.0 then ran alr toolchain –-select and installed the latest gnat_native listed:

wkh@mayhem ~/c/learning_ada> alr toolchain
CRATE       VERSION STATUS  NOTES
gprbuild    25.0.1  Default
gnat_native 15.1.2  Default

. I then ran alr init learning_ada. When I ran alr build in that directory, I got a strange error that seems to have been caused by the gcc being used having a hardcoded sysroot of a MacOSX14.sdk directory that did not exist on my machine. So I got:

wkh@mayhem ~/c/learning_ada> alr build
β“˜ Building learning_ada=0.1.0-dev/learning_ada.gpr...
Link
   [link]         learning_ada.adb
ld: library not found for -lSystem
collect2: error: ld returned 1 exit status
gprbuild: link of learning_ada.adb failed
gprbuild: failed command was: /users/wkh/.local/share/alire/toolchains/gnat_native_15.1.2_60748c54/bin/gcc learning_ada.o b__learning_ada.o -L/Users/wkh/code/learning_ada/obj/development/ -L/Users/wkh/code/learning_ada/obj/development/ -L/users/wkh/.local/share/alire/toolchains/gnat_native_15.1.2_60748c54/lib/gcc/aarch64-apple-darwin23.6.0/15.0.1/adalib/ -static-libgcc /users/wkh/.local/share/alire/toolchains/gnat_native_15.1.2_60748c54/lib/gcc/aarch64-apple-darwin23.6.0/15.0.1/adalib/libgnat.a -Wl,-rpath,@executable_path/..//obj/development -Wl,-rpath,@executable_path/../../..//.local/share/alire/toolchains/gnat_native_15.1.2_60748c54/lib/gcc/aarch64-apple-darwin23.6.0/15.0.1/adalib -o /Users/wkh/code/learning_ada/bin//learning_ada
error: Command ["gprbuild", "-s", "-j0", "-p", "-P", "/Users/wkh/code/learning_ada/learning_ada.gpr"] exited with code 4
error: Compilation failed.

I tried seeing what the gcc it was using was configured to run and compared that against what existed:

wkh@mayhem ~/c/learning_ada [1]> /Users/wkh/.local/share/alire/toolchains/gnat_native_15.1.2_60748c54/bin/gcc -v

Using built-in specs.
COLLECT_GCC=/Users/wkh/.local/share/alire/toolchains/gnat_native_15.1.2_60748c54/bin/gcc
COLLECT_LTO_WRAPPER=/Users/wkh/.local/share/alire/toolchains/gnat_native_15.1.2_60748c54/bin/../libexec/gcc/aarch64-apple-darwin23.6.0/15.0.1/lto-wrapper
Target: aarch64-apple-darwin23.6.0
Configured with: ../src/configure --prefix=/Users/runner/work/GNAT-FSF-builds/GNAT-FSF-builds/sbx/aarch64-darwin/gcc/install --enable-languages=c,ada,c++ --enable-libstdcxx --enable-libstdcxx-threads --enable-libada --disable-nls --without-libiconv-prefix --disable-libstdcxx-pch --enable-lto --disable-multilib --disable-libcilkrts --with-build-sysroot=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.sdk --with-specs='%{!sysroot=*:--sysroot=%:if-exists-else(/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.sdk /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk)}' --with-mpfr=/Users/runner/work/GNAT-FSF-builds/GNAT-FSF-builds/sbx/aarch64-darwin/mpfr/install --with-gmp=/Users/runner/work/GNAT-FSF-builds/GNAT-FSF-builds/sbx/aarch64-darwin/gmp/install --with-mpc=/Users/runner/work/GNAT-FSF-builds/GNAT-FSF-builds/sbx/aarch64-darwin/mpc/install --build=aarch64-apple-darwin23.6.0
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 15.0.1 20250418 (prerelease) (GCC)

wkh@mayhem ~/c/learning_ada> ls -l /Library/Developer/CommandLineTools/SDKs/
total 0
lrwxr-xr-x  1 root  wheel   14 Feb 27 18:14 MacOSX.sdk@ -> MacOSX26.2.sdk
drwxr-xr-x  7 root  wheel  224 Nov 19  2021 MacOSX12.1.sdk/
drwxr-xr-x  7 root  wheel  224 Nov 12  2022 MacOSX13.1.sdk/
drwxr-xr-x  7 root  wheel  224 Feb 27 18:15 MacOSX15.4.sdk/
lrwxr-xr-x  1 root  wheel   14 Feb 27 18:14 MacOSX15.sdk@ -> MacOSX15.4.sdk
drwxr-xr-x  7 root  wheel  224 Feb 27 18:15 MacOSX26.2.sdk/
lrwxr-xr-x  1 root  wheel   14 Feb 27 18:14 MacOSX26.sdk@ -> MacOSX26.2.sdk

The above output dump’s horizontal scrolling makes it not immediately clear, but MacOSX14.sdk is listed there. I was able to work around this issue by running

sudo ln -s /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk \
                                   /Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk

At which point alr build built without issue.

Is this a known issue? Is my workaround acceptable? Is there a better way to fix this issue? Thanks.

Hey, yes, known issue:

1 Like