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.