gabriele-galeotti / SweetAda

Ada-language framework
https://sweetada.org
Other
38 stars 4 forks source link

RTS build is different depending on the OS? Toolchain? #6

Open Irvise opened 1 year ago

Irvise commented 1 year ago

I found a rather interesting/intriguing disparity between two systems when working with SweetAda and building the RTS.

Here is a clean SweetAda clone (master) running on Debian/aarch64 with the system's provided GCC/GNAT (v12.2):

make RTS=zfp CPU=RISC-V TOOLCHAIN_NAME=riscv64-linux-gnu PLATFORM=HiFive1 TOOLCHAIN_PREFIX=/usr rts      

RISC-V: RTS = zfp, multilib = .;

make[1]: Entering directory '/home/fernando/Build/SweetAda-new/SweetAda/rts'
rm -f -r ./zfp/riscv64-linux-gnu/./adainclude
mkdir -p ./zfp/riscv64-linux-gnu/./adainclude
rm -f -r ./zfp/riscv64-linux-gnu/./adalib
mkdir -p ./zfp/riscv64-linux-gnu/./adalib
cp -f ./src/zfp/*.ads ./zfp/riscv64-linux-gnu/./adainclude/
cp -f ./src/zfp/*.adb ./zfp/riscv64-linux-gnu/./adainclude/
processcfg.sh ./src/targets/RISC-V/system.ads.in ./zfp/riscv64-linux-gnu/./adainclude/system.ads
processcfg.sh: ./zfp/riscv64-linux-gnu/./adainclude/system.ads: done.
cp -f ./src/targets/RISC-V/Makefile.rts.in ./zfp/riscv64-linux-gnu/
make[1]: Leaving directory '/home/fernando/Build/SweetAda-new/SweetAda/rts'
make[1]: Entering directory '/home/fernando/Build/SweetAda-new/SweetAda/rts'
riscv64-linux-gnu-gcc -x ada -gnat2022 -o zfp/riscv64-linux-gnu/./adalib/a-charac.o -c -g -O2 --RTS="/home/fernando/Build/SweetAda-new/SweetAda"/rts/zfp/riscv64-linux-gnu/. -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage zfp/riscv64-linux-gnu/./adainclude/a-charac.ads
riscv64-linux-gnu-gcc -x ada -gnat2022 -o zfp/riscv64-linux-gnu/./adalib/a-chlat1.o -c -g -O2 --RTS="/home/fernando/Build/SweetAda-new/SweetAda"/rts/zfp/riscv64-linux-gnu/. -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage zfp/riscv64-linux-gnu/./adainclude/a-chlat1.ads
riscv64-linux-gnu-gcc -x ada -gnat2022 -o zfp/riscv64-linux-gnu/./adalib/a-unccon.o -c -g -O2 --RTS="/home/fernando/Build/SweetAda-new/SweetAda"/rts/zfp/riscv64-linux-gnu/. -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage zfp/riscv64-linux-gnu/./adainclude/a-unccon.ads
riscv64-linux-gnu-gcc -x ada -gnat2022 -o zfp/riscv64-linux-gnu/./adalib/a-uncdea.o -c -g -O2 --RTS="/home/fernando/Build/SweetAda-new/SweetAda"/rts/zfp/riscv64-linux-gnu/. -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage zfp/riscv64-linux-gnu/./adainclude/a-uncdea.ads
riscv64-linux-gnu-gcc -x ada -gnat2022 -o zfp/riscv64-linux-gnu/./adalib/ada.o -c -g -O2 --RTS="/home/fernando/Build/SweetAda-new/SweetAda"/rts/zfp/riscv64-linux-gnu/. -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage zfp/riscv64-linux-gnu/./adainclude/ada.ads
riscv64-linux-gnu-gcc -x ada -gnat2022 -o zfp/riscv64-linux-gnu/./adalib/i-c.o -c -g -O2 --RTS="/home/fernando/Build/SweetAda-new/SweetAda"/rts/zfp/riscv64-linux-gnu/. -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage zfp/riscv64-linux-gnu/./adainclude/i-c.ads
riscv64-linux-gnu-gcc -x ada -gnat2022 -o zfp/riscv64-linux-gnu/./adalib/i-cexten.o -c -g -O2 --RTS="/home/fernando/Build/SweetAda-new/SweetAda"/rts/zfp/riscv64-linux-gnu/. -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage zfp/riscv64-linux-gnu/./adainclude/i-cexten.ads
riscv64-linux-gnu-gcc -x ada -gnat2022 -o zfp/riscv64-linux-gnu/./adalib/interfac.o -c -g -O2 --RTS="/home/fernando/Build/SweetAda-new/SweetAda"/rts/zfp/riscv64-linux-gnu/. -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage zfp/riscv64-linux-gnu/./adainclude/interfac.ads
riscv64-linux-gnu-gcc -x ada -gnat2022 -o zfp/riscv64-linux-gnu/./adalib/s-atacco.o -c -g -O2 --RTS="/home/fernando/Build/SweetAda-new/SweetAda"/rts/zfp/riscv64-linux-gnu/. -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage zfp/riscv64-linux-gnu/./adainclude/s-atacco.adb
riscv64-linux-gnu-gcc -x ada -gnat2022 -o zfp/riscv64-linux-gnu/./adalib/s-maccod.o -c -g -O2 --RTS="/home/fernando/Build/SweetAda-new/SweetAda"/rts/zfp/riscv64-linux-gnu/. -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage zfp/riscv64-linux-gnu/./adainclude/s-maccod.ads
riscv64-linux-gnu-gcc -x ada -gnat2022 -o zfp/riscv64-linux-gnu/./adalib/s-stoele.o -c -g -O2 --RTS="/home/fernando/Build/SweetAda-new/SweetAda"/rts/zfp/riscv64-linux-gnu/. -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage zfp/riscv64-linux-gnu/./adainclude/s-stoele.adb
riscv64-linux-gnu-gcc -x ada -gnat2022 -o zfp/riscv64-linux-gnu/./adalib/s-unstyp.o -c -g -O2 --RTS="/home/fernando/Build/SweetAda-new/SweetAda"/rts/zfp/riscv64-linux-gnu/. -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage zfp/riscv64-linux-gnu/./adainclude/s-unstyp.ads
riscv64-linux-gnu-gcc -x ada -gnat2022 -o zfp/riscv64-linux-gnu/./adalib/system.o -c -g -O2 --RTS="/home/fernando/Build/SweetAda-new/SweetAda"/rts/zfp/riscv64-linux-gnu/. -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage zfp/riscv64-linux-gnu/./adainclude/system.ads
riscv64-linux-gnu-ar cr zfp/riscv64-linux-gnu/./adalib/libgnat.a ./zfp/riscv64-linux-gnu/./adalib/a-charac.o ./zfp/riscv64-linux-gnu/./adalib/a-chlat1.o ./zfp/riscv64-linux-gnu/./adalib/a-unccon.o ./zfp/riscv64-linux-gnu/./adalib/a-uncdea.o ./zfp/riscv64-linux-gnu/./adalib/ada.o ./zfp/riscv64-linux-gnu/./adalib/i-c.o ./zfp/riscv64-linux-gnu/./adalib/i-cexten.o ./zfp/riscv64-linux-gnu/./adalib/interfac.o ./zfp/riscv64-linux-gnu/./adalib/s-atacco.o ./zfp/riscv64-linux-gnu/./adalib/s-maccod.o ./zfp/riscv64-linux-gnu/./adalib/s-stoele.o ./zfp/riscv64-linux-gnu/./adalib/s-unstyp.o ./zfp/riscv64-linux-gnu/./adalib/system.o
riscv64-linux-gnu-ranlib zfp/riscv64-linux-gnu/./adalib/libgnat.a
riscv64-linux-gnu-ar cr zfp/riscv64-linux-gnu/./adalib/libgnarl.a 
riscv64-linux-gnu-ranlib zfp/riscv64-linux-gnu/./adalib/libgnarl.a
make[1]: Leaving directory '/home/fernando/Build/SweetAda-new/SweetAda/rts'

Okay... It builds the RTS as expected.

But there is a very similar make command on my main OpenSUSE/x86_64 machine using the GCC/GNAT provided by Alire (v12.1, for embedded devices):

make TOOLCHAIN_NAME=riscv64-elf RTS=sfp PROFILE=sfp CPU=RISC-V PLATFORM=HiFive1 TOOLCHAIN_PREFIX=/home/fernando/bin/gnat-riscv64-elf-linux64-12.1.0-2/ rts

RISC-V: RTS = sfp, multilib = .;

make[1]: Verzeichnis „/home/fernando/Builds/SweetAda/rts“ wird betreten
rm -f -r ./sfp/riscv64-elf/./adainclude
mkdir -p ./sfp/riscv64-elf/./adainclude
rm -f -r ./sfp/riscv64-elf/./adalib
mkdir -p ./sfp/riscv64-elf/./adalib
cp -f ./src/sfp/*.ads ./sfp/riscv64-elf/./adainclude/
cp -f ./src/sfp/*.adb ./sfp/riscv64-elf/./adainclude/
processcfg.sh ./src/sfp/s-parame.ads.in ./sfp/riscv64-elf/./adainclude/s-parame.ads
processcfg.sh: ./sfp/riscv64-elf/./adainclude/s-parame.ads: done.
processcfg.sh ./src/targets/RISC-V/system.ads.in ./sfp/riscv64-elf/./adainclude/system.ads
processcfg.sh: ./sfp/riscv64-elf/./adainclude/system.ads: done.
cp -f ./src/targets/RISC-V/Makefile.rts.in ./sfp/riscv64-elf/
make[1]: Verzeichnis „/home/fernando/Builds/SweetAda/rts“ wird verlassen
make[1]: Verzeichnis „/home/fernando/Builds/SweetAda/rts“ wird betreten
riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/./adalib/a-assert.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/. -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage sfp/riscv64-elf/./adainclude/a-assert.adb
riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/./adalib/a-charac.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/. -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage sfp/riscv64-elf/./adainclude/a-charac.ads
riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/./adalib/a-chlat1.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/. -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage sfp/riscv64-elf/./adainclude/a-chlat1.ads
riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/./adalib/a-except.o -c -g -O1 -fno-inline -fno-toplevel-reorder --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/. -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage sfp/riscv64-elf/./adainclude/a-except.adb
riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/./adalib/a-tags.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/. -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage sfp/riscv64-elf/./adainclude/a-tags.adb
riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/./adalib/a-unccon.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/. -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage sfp/riscv64-elf/./adainclude/a-unccon.ads
riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/./adalib/a-uncdea.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/. -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage sfp/riscv64-elf/./adainclude/a-uncdea.ads
riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/./adalib/ada.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/. -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage sfp/riscv64-elf/./adainclude/ada.ads
riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/./adalib/g-souinf.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/. -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage sfp/riscv64-elf/./adainclude/g-souinf.ads
riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/./adalib/gnat.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/. -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage sfp/riscv64-elf/./adainclude/gnat.ads
riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/./adalib/i-c.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/. -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage sfp/riscv64-elf/./adainclude/i-c.adb
riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/./adalib/i-cexten.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/. -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage sfp/riscv64-elf/./adainclude/i-cexten.ads
riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/./adalib/interfac.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/. -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage sfp/riscv64-elf/./adainclude/interfac.ads
riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/./adalib/s-assert.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/. -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage sfp/riscv64-elf/./adainclude/s-assert.adb
riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/./adalib/s-atacco.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/. -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage sfp/riscv64-elf/./adainclude/s-atacco.adb
riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/./adalib/s-exctab.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/. -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage sfp/riscv64-elf/./adainclude/s-exctab.adb
riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/./adalib/s-fatflt.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/. -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage sfp/riscv64-elf/./adainclude/s-fatflt.ads
riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/./adalib/s-fatgen.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/. -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage sfp/riscv64-elf/./adainclude/s-fatgen.adb
riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/./adalib/s-fatlfl.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/. -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage sfp/riscv64-elf/./adainclude/s-fatlfl.ads
riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/./adalib/s-fatllf.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/. -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage sfp/riscv64-elf/./adainclude/s-fatllf.ads
riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/./adalib/s-maccod.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/. -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage sfp/riscv64-elf/./adainclude/s-maccod.ads
riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/./adalib/s-parame.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/. -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage sfp/riscv64-elf/./adainclude/s-parame.ads
riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/./adalib/s-secsta.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/. -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage sfp/riscv64-elf/./adainclude/s-secsta.adb
riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/./adalib/s-scaval.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/. -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage sfp/riscv64-elf/./adainclude/s-scaval.adb
riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/./adalib/s-stalib.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/. -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage sfp/riscv64-elf/./adainclude/s-stalib.ads
riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/./adalib/s-stoele.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/. -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage sfp/riscv64-elf/./adainclude/s-stoele.adb
riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/./adalib/s-unstyp.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/. -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage sfp/riscv64-elf/./adainclude/s-unstyp.ads
riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/./adalib/system.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/. -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage sfp/riscv64-elf/./adainclude/system.ads
riscv64-elf-ar cr sfp/riscv64-elf/./adalib/libgnat.a ./sfp/riscv64-elf/./adalib/a-assert.o ./sfp/riscv64-elf/./adalib/a-charac.o ./sfp/riscv64-elf/./adalib/a-chlat1.o ./sfp/riscv64-elf/./adalib/a-except.o ./sfp/riscv64-elf/./adalib/a-tags.o ./sfp/riscv64-elf/./adalib/a-unccon.o ./sfp/riscv64-elf/./adalib/a-uncdea.o ./sfp/riscv64-elf/./adalib/ada.o ./sfp/riscv64-elf/./adalib/g-souinf.o ./sfp/riscv64-elf/./adalib/gnat.o ./sfp/riscv64-elf/./adalib/i-c.o ./sfp/riscv64-elf/./adalib/i-cexten.o ./sfp/riscv64-elf/./adalib/interfac.o ./sfp/riscv64-elf/./adalib/s-assert.o ./sfp/riscv64-elf/./adalib/s-atacco.o ./sfp/riscv64-elf/./adalib/s-exctab.o ./sfp/riscv64-elf/./adalib/s-fatflt.o ./sfp/riscv64-elf/./adalib/s-fatgen.o ./sfp/riscv64-elf/./adalib/s-fatlfl.o ./sfp/riscv64-elf/./adalib/s-fatllf.o ./sfp/riscv64-elf/./adalib/s-maccod.o ./sfp/riscv64-elf/./adalib/s-parame.o ./sfp/riscv64-elf/./adalib/s-secsta.o ./sfp/riscv64-elf/./adalib/s-scaval.o ./sfp/riscv64-elf/./adalib/s-stalib.o ./sfp/riscv64-elf/./adalib/s-stoele.o ./sfp/riscv64-elf/./adalib/s-unstyp.o ./sfp/riscv64-elf/./adalib/system.o
riscv64-elf-ranlib sfp/riscv64-elf/./adalib/libgnat.a
riscv64-elf-ar cr sfp/riscv64-elf/./adalib/libgnarl.a 
riscv64-elf-ranlib sfp/riscv64-elf/./adalib/libgnarl.a
make[1]: Verzeichnis „/home/fernando/Builds/SweetAda/rts“ wird verlassen

RISC-V: RTS = sfp, multilib = rv32i/ilp32;@march=rv32i@mabi=ilp32

make[1]: Verzeichnis „/home/fernando/Builds/SweetAda/rts“ wird betreten
rm -f -r ./sfp/riscv64-elf/rv32i/ilp32/adainclude
mkdir -p ./sfp/riscv64-elf/rv32i/ilp32/adainclude
rm -f -r ./sfp/riscv64-elf/rv32i/ilp32/adalib
mkdir -p ./sfp/riscv64-elf/rv32i/ilp32/adalib
cp -f ./src/sfp/*.ads ./sfp/riscv64-elf/rv32i/ilp32/adainclude/
cp -f ./src/sfp/*.adb ./sfp/riscv64-elf/rv32i/ilp32/adainclude/
processcfg.sh ./src/sfp/s-parame.ads.in ./sfp/riscv64-elf/rv32i/ilp32/adainclude/s-parame.ads
processcfg.sh: ./sfp/riscv64-elf/rv32i/ilp32/adainclude/s-parame.ads: done.
processcfg.sh ./src/targets/RISC-V/system.ads.in ./sfp/riscv64-elf/rv32i/ilp32/adainclude/system.ads
processcfg.sh: ./sfp/riscv64-elf/rv32i/ilp32/adainclude/system.ads: done.
cp -f ./src/targets/RISC-V/Makefile.rts.in ./sfp/riscv64-elf/
make[1]: Verzeichnis „/home/fernando/Builds/SweetAda/rts“ wird verlassen
make[1]: Verzeichnis „/home/fernando/Builds/SweetAda/rts“ wird betreten
riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/rv32i/ilp32/adalib/a-assert.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/rv32i/ilp32 -march=rv32i -mabi=ilp32 -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage sfp/riscv64-elf/rv32i/ilp32/adainclude/a-assert.adb
riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/rv32i/ilp32/adalib/a-charac.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/rv32i/ilp32 -march=rv32i -mabi=ilp32 -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage sfp/riscv64-elf/rv32i/ilp32/adainclude/a-charac.ads
riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/rv32i/ilp32/adalib/a-chlat1.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/rv32i/ilp32 -march=rv32i -mabi=ilp32 -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage sfp/riscv64-elf/rv32i/ilp32/adainclude/a-chlat1.ads
riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/rv32i/ilp32/adalib/a-except.o -c -g -O1 -fno-inline -fno-toplevel-reorder --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/rv32i/ilp32 -march=rv32i -mabi=ilp32 -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage sfp/riscv64-elf/rv32i/ilp32/adainclude/a-except.adb
riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/rv32i/ilp32/adalib/a-tags.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/rv32i/ilp32 -march=rv32i -mabi=ilp32 -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage sfp/riscv64-elf/rv32i/ilp32/adainclude/a-tags.adb
riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/rv32i/ilp32/adalib/a-unccon.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/rv32i/ilp32 -march=rv32i -mabi=ilp32 -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage sfp/riscv64-elf/rv32i/ilp32/adainclude/a-unccon.ads
riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/rv32i/ilp32/adalib/a-uncdea.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/rv32i/ilp32 -march=rv32i -mabi=ilp32 -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage sfp/riscv64-elf/rv32i/ilp32/adainclude/a-uncdea.ads
riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/rv32i/ilp32/adalib/ada.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/rv32i/ilp32 -march=rv32i -mabi=ilp32 -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage sfp/riscv64-elf/rv32i/ilp32/adainclude/ada.ads
riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/rv32i/ilp32/adalib/g-souinf.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/rv32i/ilp32 -march=rv32i -mabi=ilp32 -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage sfp/riscv64-elf/rv32i/ilp32/adainclude/g-souinf.ads
riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/rv32i/ilp32/adalib/gnat.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/rv32i/ilp32 -march=rv32i -mabi=ilp32 -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage sfp/riscv64-elf/rv32i/ilp32/adainclude/gnat.ads
riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/rv32i/ilp32/adalib/i-c.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/rv32i/ilp32 -march=rv32i -mabi=ilp32 -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage sfp/riscv64-elf/rv32i/ilp32/adainclude/i-c.adb
riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/rv32i/ilp32/adalib/i-cexten.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/rv32i/ilp32 -march=rv32i -mabi=ilp32 -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage sfp/riscv64-elf/rv32i/ilp32/adainclude/i-cexten.ads
riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/rv32i/ilp32/adalib/interfac.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/rv32i/ilp32 -march=rv32i -mabi=ilp32 -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage sfp/riscv64-elf/rv32i/ilp32/adainclude/interfac.ads
riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/rv32i/ilp32/adalib/s-assert.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/rv32i/ilp32 -march=rv32i -mabi=ilp32 -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage sfp/riscv64-elf/rv32i/ilp32/adainclude/s-assert.adb
riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/rv32i/ilp32/adalib/s-atacco.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/rv32i/ilp32 -march=rv32i -mabi=ilp32 -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage sfp/riscv64-elf/rv32i/ilp32/adainclude/s-atacco.adb
riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/rv32i/ilp32/adalib/s-exctab.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/rv32i/ilp32 -march=rv32i -mabi=ilp32 -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage sfp/riscv64-elf/rv32i/ilp32/adainclude/s-exctab.adb
riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/rv32i/ilp32/adalib/s-fatflt.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/rv32i/ilp32 -march=rv32i -mabi=ilp32 -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage sfp/riscv64-elf/rv32i/ilp32/adainclude/s-fatflt.ads
riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/rv32i/ilp32/adalib/s-fatgen.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/rv32i/ilp32 -march=rv32i -mabi=ilp32 -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage sfp/riscv64-elf/rv32i/ilp32/adainclude/s-fatgen.adb
riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/rv32i/ilp32/adalib/s-fatlfl.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/rv32i/ilp32 -march=rv32i -mabi=ilp32 -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage sfp/riscv64-elf/rv32i/ilp32/adainclude/s-fatlfl.ads
riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/rv32i/ilp32/adalib/s-fatllf.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/rv32i/ilp32 -march=rv32i -mabi=ilp32 -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage sfp/riscv64-elf/rv32i/ilp32/adainclude/s-fatllf.ads
riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/rv32i/ilp32/adalib/s-maccod.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/rv32i/ilp32 -march=rv32i -mabi=ilp32 -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage sfp/riscv64-elf/rv32i/ilp32/adainclude/s-maccod.ads
riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/rv32i/ilp32/adalib/s-parame.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/rv32i/ilp32 -march=rv32i -mabi=ilp32 -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage sfp/riscv64-elf/rv32i/ilp32/adainclude/s-parame.ads
riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/rv32i/ilp32/adalib/s-secsta.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/rv32i/ilp32 -march=rv32i -mabi=ilp32 -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage sfp/riscv64-elf/rv32i/ilp32/adainclude/s-secsta.adb
riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/rv32i/ilp32/adalib/s-scaval.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/rv32i/ilp32 -march=rv32i -mabi=ilp32 -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage sfp/riscv64-elf/rv32i/ilp32/adainclude/s-scaval.adb
riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/rv32i/ilp32/adalib/s-stalib.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/rv32i/ilp32 -march=rv32i -mabi=ilp32 -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage sfp/riscv64-elf/rv32i/ilp32/adainclude/s-stalib.ads
riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/rv32i/ilp32/adalib/s-stoele.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/rv32i/ilp32 -march=rv32i -mabi=ilp32 -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage sfp/riscv64-elf/rv32i/ilp32/adainclude/s-stoele.adb
riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/rv32i/ilp32/adalib/s-unstyp.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/rv32i/ilp32 -march=rv32i -mabi=ilp32 -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage sfp/riscv64-elf/rv32i/ilp32/adainclude/s-unstyp.ads
riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/rv32i/ilp32/adalib/system.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/rv32i/ilp32 -march=rv32i -mabi=ilp32 -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage sfp/riscv64-elf/rv32i/ilp32/adainclude/system.ads
riscv64-elf-ar cr sfp/riscv64-elf/rv32i/ilp32/adalib/libgnat.a ./sfp/riscv64-elf/rv32i/ilp32/adalib/a-assert.o ./sfp/riscv64-elf/rv32i/ilp32/adalib/a-charac.o ./sfp/riscv64-elf/rv32i/ilp32/adalib/a-chlat1.o ./sfp/riscv64-elf/rv32i/ilp32/adalib/a-except.o ./sfp/riscv64-elf/rv32i/ilp32/adalib/a-tags.o ./sfp/riscv64-elf/rv32i/ilp32/adalib/a-unccon.o ./sfp/riscv64-elf/rv32i/ilp32/adalib/a-uncdea.o ./sfp/riscv64-elf/rv32i/ilp32/adalib/ada.o ./sfp/riscv64-elf/rv32i/ilp32/adalib/g-souinf.o ./sfp/riscv64-elf/rv32i/ilp32/adalib/gnat.o ./sfp/riscv64-elf/rv32i/ilp32/adalib/i-c.o ./sfp/riscv64-elf/rv32i/ilp32/adalib/i-cexten.o ./sfp/riscv64-elf/rv32i/ilp32/adalib/interfac.o ./sfp/riscv64-elf/rv32i/ilp32/adalib/s-assert.o ./sfp/riscv64-elf/rv32i/ilp32/adalib/s-atacco.o ./sfp/riscv64-elf/rv32i/ilp32/adalib/s-exctab.o ./sfp/riscv64-elf/rv32i/ilp32/adalib/s-fatflt.o ./sfp/riscv64-elf/rv32i/ilp32/adalib/s-fatgen.o ./sfp/riscv64-elf/rv32i/ilp32/adalib/s-fatlfl.o ./sfp/riscv64-elf/rv32i/ilp32/adalib/s-fatllf.o ./sfp/riscv64-elf/rv32i/ilp32/adalib/s-maccod.o ./sfp/riscv64-elf/rv32i/ilp32/adalib/s-parame.o ./sfp/riscv64-elf/rv32i/ilp32/adalib/s-secsta.o ./sfp/riscv64-elf/rv32i/ilp32/adalib/s-scaval.o ./sfp/riscv64-elf/rv32i/ilp32/adalib/s-stalib.o ./sfp/riscv64-elf/rv32i/ilp32/adalib/s-stoele.o ./sfp/riscv64-elf/rv32i/ilp32/adalib/s-unstyp.o ./sfp/riscv64-elf/rv32i/ilp32/adalib/system.o
riscv64-elf-ranlib sfp/riscv64-elf/rv32i/ilp32/adalib/libgnat.a
riscv64-elf-ar cr sfp/riscv64-elf/rv32i/ilp32/adalib/libgnarl.a 
riscv64-elf-ranlib sfp/riscv64-elf/rv32i/ilp32/adalib/libgnarl.a
make[1]: Verzeichnis „/home/fernando/Builds/SweetAda/rts“ wird verlassen

RISC-V: RTS = sfp, multilib = rv32im/ilp32;@march=rv32im@mabi=ilp32

make[1]: Verzeichnis „/home/fernando/Builds/SweetAda/rts“ wird betreten
rm -f -r ./sfp/riscv64-elf/rv32im/ilp32/adainclude
mkdir -p ./sfp/riscv64-elf/rv32im/ilp32/adainclude
rm -f -r ./sfp/riscv64-elf/rv32im/ilp32/adalib
mkdir -p ./sfp/riscv64-elf/rv32im/ilp32/adalib
cp -f ./src/sfp/*.ads ./sfp/riscv64-elf/rv32im/ilp32/adainclude/
cp -f ./src/sfp/*.adb ./sfp/riscv64-elf/rv32im/ilp32/adainclude/
processcfg.sh ./src/sfp/s-parame.ads.in ./sfp/riscv64-elf/rv32im/ilp32/adainclude/s-parame.ads
processcfg.sh: ./sfp/riscv64-elf/rv32im/ilp32/adainclude/s-parame.ads: done.
processcfg.sh ./src/targets/RISC-V/system.ads.in ./sfp/riscv64-elf/rv32im/ilp32/adainclude/system.ads
processcfg.sh: ./sfp/riscv64-elf/rv32im/ilp32/adainclude/system.ads: done.
cp -f ./src/targets/RISC-V/Makefile.rts.in ./sfp/riscv64-elf/
make[1]: Verzeichnis „/home/fernando/Builds/SweetAda/rts“ wird verlassen
make[1]: Verzeichnis „/home/fernando/Builds/SweetAda/rts“ wird betreten
riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/rv32im/ilp32/adalib/a-assert.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/rv32im/ilp32 -march=rv32im -mabi=ilp32 -nostdinc -gnatwa -gnatg        -gnatp        -gnatyN       -Wextra -Wall -fstack-usage sfp/riscv64-elf/rv32im/ilp32/adainclude/a-assert.adb

[...]

This system builds several "flavours" for the RTS. It builds the 32-bit one several times (with different -march options) and several 64-bit ones... That is very strange!

Is the toolchain automatically selecting which variants to use? Is SweetAda not launching the correct builds when running on Debian/aarch64?

I am just opening this issue for documentation porpuses. I do not want to overwhelm you with trouble! Take your time. I am open for testing things out!

Best, Fer

gabriele-galeotti commented 1 year ago

I think it's a problem I've documented in those last commits, have a look at the repo about the startup.S and riscv.adb files. Anyway it's still under investigation.

1) Firstly, the first build is with RTS=zfp. Then, the compiler is a new 12.2. It seems (not 100% sure though) that exist serious problems in the interface between GCC and Binutils when recognizing the RISC-V ISA privileged instructions. It's too complicated to explain, but GCC have problems when selecting the proper multilib -- it selects only the default one, and the Binutils barfs on some assembler directives built by the compiler. It's difficult to end up with a working environment, I had to encode binary instructions for that because I also have problem with my own-built 12.2 GCC. Try to report "-as -v".

2) The second build is with RTS=sfp. Then, the compiler is an "old" 12.1, and perhaps it doesn't suffer from such kind of problems. Indeed, every multilib seems correctly built.

That being said, I think it's not a sweetada fault, this problem seems present only with RISC-V machines -- and just after a change of ISA specifications in GCC/Binutils.

But I cannot be 100% sure, maybe I'm wrong. Personally, I will stay in the 12.1 environment.

Again, I'm still investigating, if you have further info, let me know, and maybe we can arrange an IRC chat in the next days (even if I ain't skilled with this kind of communication media).

Bye.

On Wed, Jan 4, 2023 at 10:03 PM Fernando Oleo Blanco < @.***> wrote:

I found a rather interesting/intriguing disparity between two systems when working with SweetAda and building the RTS.

Here is a clean SweetAda clone (master) running on Debian/aarch64 with the system's provided GCC/GNAT (v12.2):

make RTS=zfp CPU=RISC-V TOOLCHAIN_NAME=riscv64-linux-gnu PLATFORM=HiFive1 TOOLCHAIN_PREFIX=/usr rts

RISC-V: RTS = zfp, multilib = .;

make[1]: Entering directory '/home/fernando/Build/SweetAda-new/SweetAda/rts'

rm -f -r ./zfp/riscv64-linux-gnu/./adainclude

mkdir -p ./zfp/riscv64-linux-gnu/./adainclude

rm -f -r ./zfp/riscv64-linux-gnu/./adalib

mkdir -p ./zfp/riscv64-linux-gnu/./adalib

cp -f ./src/zfp/*.ads ./zfp/riscv64-linux-gnu/./adainclude/

cp -f ./src/zfp/*.adb ./zfp/riscv64-linux-gnu/./adainclude/

processcfg.sh ./src/targets/RISC-V/system.ads.in ./zfp/riscv64-linux-gnu/./adainclude/system.ads

processcfg.sh: ./zfp/riscv64-linux-gnu/./adainclude/system.ads: done.

cp -f ./src/targets/RISC-V/Makefile.rts.in ./zfp/riscv64-linux-gnu/

make[1]: Leaving directory '/home/fernando/Build/SweetAda-new/SweetAda/rts'

make[1]: Entering directory '/home/fernando/Build/SweetAda-new/SweetAda/rts'

riscv64-linux-gnu-gcc -x ada -gnat2022 -o zfp/riscv64-linux-gnu/./adalib/a-charac.o -c -g -O2 --RTS="/home/fernando/Build/SweetAda-new/SweetAda"/rts/zfp/riscv64-linux-gnu/. -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage zfp/riscv64-linux-gnu/./adainclude/a-charac.ads

riscv64-linux-gnu-gcc -x ada -gnat2022 -o zfp/riscv64-linux-gnu/./adalib/a-chlat1.o -c -g -O2 --RTS="/home/fernando/Build/SweetAda-new/SweetAda"/rts/zfp/riscv64-linux-gnu/. -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage zfp/riscv64-linux-gnu/./adainclude/a-chlat1.ads

riscv64-linux-gnu-gcc -x ada -gnat2022 -o zfp/riscv64-linux-gnu/./adalib/a-unccon.o -c -g -O2 --RTS="/home/fernando/Build/SweetAda-new/SweetAda"/rts/zfp/riscv64-linux-gnu/. -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage zfp/riscv64-linux-gnu/./adainclude/a-unccon.ads

riscv64-linux-gnu-gcc -x ada -gnat2022 -o zfp/riscv64-linux-gnu/./adalib/a-uncdea.o -c -g -O2 --RTS="/home/fernando/Build/SweetAda-new/SweetAda"/rts/zfp/riscv64-linux-gnu/. -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage zfp/riscv64-linux-gnu/./adainclude/a-uncdea.ads

riscv64-linux-gnu-gcc -x ada -gnat2022 -o zfp/riscv64-linux-gnu/./adalib/ada.o -c -g -O2 --RTS="/home/fernando/Build/SweetAda-new/SweetAda"/rts/zfp/riscv64-linux-gnu/. -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage zfp/riscv64-linux-gnu/./adainclude/ada.ads

riscv64-linux-gnu-gcc -x ada -gnat2022 -o zfp/riscv64-linux-gnu/./adalib/i-c.o -c -g -O2 --RTS="/home/fernando/Build/SweetAda-new/SweetAda"/rts/zfp/riscv64-linux-gnu/. -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage zfp/riscv64-linux-gnu/./adainclude/i-c.ads

riscv64-linux-gnu-gcc -x ada -gnat2022 -o zfp/riscv64-linux-gnu/./adalib/i-cexten.o -c -g -O2 --RTS="/home/fernando/Build/SweetAda-new/SweetAda"/rts/zfp/riscv64-linux-gnu/. -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage zfp/riscv64-linux-gnu/./adainclude/i-cexten.ads

riscv64-linux-gnu-gcc -x ada -gnat2022 -o zfp/riscv64-linux-gnu/./adalib/interfac.o -c -g -O2 --RTS="/home/fernando/Build/SweetAda-new/SweetAda"/rts/zfp/riscv64-linux-gnu/. -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage zfp/riscv64-linux-gnu/./adainclude/interfac.ads

riscv64-linux-gnu-gcc -x ada -gnat2022 -o zfp/riscv64-linux-gnu/./adalib/s-atacco.o -c -g -O2 --RTS="/home/fernando/Build/SweetAda-new/SweetAda"/rts/zfp/riscv64-linux-gnu/. -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage zfp/riscv64-linux-gnu/./adainclude/s-atacco.adb

riscv64-linux-gnu-gcc -x ada -gnat2022 -o zfp/riscv64-linux-gnu/./adalib/s-maccod.o -c -g -O2 --RTS="/home/fernando/Build/SweetAda-new/SweetAda"/rts/zfp/riscv64-linux-gnu/. -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage zfp/riscv64-linux-gnu/./adainclude/s-maccod.ads

riscv64-linux-gnu-gcc -x ada -gnat2022 -o zfp/riscv64-linux-gnu/./adalib/s-stoele.o -c -g -O2 --RTS="/home/fernando/Build/SweetAda-new/SweetAda"/rts/zfp/riscv64-linux-gnu/. -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage zfp/riscv64-linux-gnu/./adainclude/s-stoele.adb

riscv64-linux-gnu-gcc -x ada -gnat2022 -o zfp/riscv64-linux-gnu/./adalib/s-unstyp.o -c -g -O2 --RTS="/home/fernando/Build/SweetAda-new/SweetAda"/rts/zfp/riscv64-linux-gnu/. -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage zfp/riscv64-linux-gnu/./adainclude/s-unstyp.ads

riscv64-linux-gnu-gcc -x ada -gnat2022 -o zfp/riscv64-linux-gnu/./adalib/system.o -c -g -O2 --RTS="/home/fernando/Build/SweetAda-new/SweetAda"/rts/zfp/riscv64-linux-gnu/. -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage zfp/riscv64-linux-gnu/./adainclude/system.ads

riscv64-linux-gnu-ar cr zfp/riscv64-linux-gnu/./adalib/libgnat.a ./zfp/riscv64-linux-gnu/./adalib/a-charac.o ./zfp/riscv64-linux-gnu/./adalib/a-chlat1.o ./zfp/riscv64-linux-gnu/./adalib/a-unccon.o ./zfp/riscv64-linux-gnu/./adalib/a-uncdea.o ./zfp/riscv64-linux-gnu/./adalib/ada.o ./zfp/riscv64-linux-gnu/./adalib/i-c.o ./zfp/riscv64-linux-gnu/./adalib/i-cexten.o ./zfp/riscv64-linux-gnu/./adalib/interfac.o ./zfp/riscv64-linux-gnu/./adalib/s-atacco.o ./zfp/riscv64-linux-gnu/./adalib/s-maccod.o ./zfp/riscv64-linux-gnu/./adalib/s-stoele.o ./zfp/riscv64-linux-gnu/./adalib/s-unstyp.o ./zfp/riscv64-linux-gnu/./adalib/system.o

riscv64-linux-gnu-ranlib zfp/riscv64-linux-gnu/./adalib/libgnat.a

riscv64-linux-gnu-ar cr zfp/riscv64-linux-gnu/./adalib/libgnarl.a

riscv64-linux-gnu-ranlib zfp/riscv64-linux-gnu/./adalib/libgnarl.a

make[1]: Leaving directory '/home/fernando/Build/SweetAda-new/SweetAda/rts'

Okay... It builds the RTS as expected.

But there is a very similar make command on my main OpenSUSE/x86_64 machine using the GCC/GNAT provided by Alire (v12.1, for embedded devices):

make TOOLCHAIN_NAME=riscv64-elf RTS=sfp PROFILE=sfp CPU=RISC-V PLATFORM=HiFive1 TOOLCHAIN_PREFIX=/home/fernando/bin/gnat-riscv64-elf-linux64-12.1.0-2/ rts

RISC-V: RTS = sfp, multilib = .;

make[1]: Verzeichnis „/home/fernando/Builds/SweetAda/rts“ wird betreten

rm -f -r ./sfp/riscv64-elf/./adainclude

mkdir -p ./sfp/riscv64-elf/./adainclude

rm -f -r ./sfp/riscv64-elf/./adalib

mkdir -p ./sfp/riscv64-elf/./adalib

cp -f ./src/sfp/*.ads ./sfp/riscv64-elf/./adainclude/

cp -f ./src/sfp/*.adb ./sfp/riscv64-elf/./adainclude/

processcfg.sh ./src/sfp/s-parame.ads.in ./sfp/riscv64-elf/./adainclude/s-parame.ads

processcfg.sh: ./sfp/riscv64-elf/./adainclude/s-parame.ads: done.

processcfg.sh ./src/targets/RISC-V/system.ads.in ./sfp/riscv64-elf/./adainclude/system.ads

processcfg.sh: ./sfp/riscv64-elf/./adainclude/system.ads: done.

cp -f ./src/targets/RISC-V/Makefile.rts.in ./sfp/riscv64-elf/

make[1]: Verzeichnis „/home/fernando/Builds/SweetAda/rts“ wird verlassen

make[1]: Verzeichnis „/home/fernando/Builds/SweetAda/rts“ wird betreten

riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/./adalib/a-assert.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/. -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage sfp/riscv64-elf/./adainclude/a-assert.adb

riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/./adalib/a-charac.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/. -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage sfp/riscv64-elf/./adainclude/a-charac.ads

riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/./adalib/a-chlat1.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/. -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage sfp/riscv64-elf/./adainclude/a-chlat1.ads

riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/./adalib/a-except.o -c -g -O1 -fno-inline -fno-toplevel-reorder --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/. -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage sfp/riscv64-elf/./adainclude/a-except.adb

riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/./adalib/a-tags.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/. -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage sfp/riscv64-elf/./adainclude/a-tags.adb

riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/./adalib/a-unccon.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/. -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage sfp/riscv64-elf/./adainclude/a-unccon.ads

riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/./adalib/a-uncdea.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/. -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage sfp/riscv64-elf/./adainclude/a-uncdea.ads

riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/./adalib/ada.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/. -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage sfp/riscv64-elf/./adainclude/ada.ads

riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/./adalib/g-souinf.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/. -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage sfp/riscv64-elf/./adainclude/g-souinf.ads

riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/./adalib/gnat.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/. -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage sfp/riscv64-elf/./adainclude/gnat.ads

riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/./adalib/i-c.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/. -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage sfp/riscv64-elf/./adainclude/i-c.adb

riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/./adalib/i-cexten.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/. -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage sfp/riscv64-elf/./adainclude/i-cexten.ads

riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/./adalib/interfac.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/. -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage sfp/riscv64-elf/./adainclude/interfac.ads

riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/./adalib/s-assert.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/. -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage sfp/riscv64-elf/./adainclude/s-assert.adb

riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/./adalib/s-atacco.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/. -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage sfp/riscv64-elf/./adainclude/s-atacco.adb

riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/./adalib/s-exctab.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/. -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage sfp/riscv64-elf/./adainclude/s-exctab.adb

riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/./adalib/s-fatflt.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/. -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage sfp/riscv64-elf/./adainclude/s-fatflt.ads

riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/./adalib/s-fatgen.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/. -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage sfp/riscv64-elf/./adainclude/s-fatgen.adb

riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/./adalib/s-fatlfl.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/. -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage sfp/riscv64-elf/./adainclude/s-fatlfl.ads

riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/./adalib/s-fatllf.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/. -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage sfp/riscv64-elf/./adainclude/s-fatllf.ads

riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/./adalib/s-maccod.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/. -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage sfp/riscv64-elf/./adainclude/s-maccod.ads

riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/./adalib/s-parame.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/. -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage sfp/riscv64-elf/./adainclude/s-parame.ads

riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/./adalib/s-secsta.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/. -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage sfp/riscv64-elf/./adainclude/s-secsta.adb

riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/./adalib/s-scaval.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/. -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage sfp/riscv64-elf/./adainclude/s-scaval.adb

riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/./adalib/s-stalib.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/. -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage sfp/riscv64-elf/./adainclude/s-stalib.ads

riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/./adalib/s-stoele.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/. -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage sfp/riscv64-elf/./adainclude/s-stoele.adb

riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/./adalib/s-unstyp.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/. -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage sfp/riscv64-elf/./adainclude/s-unstyp.ads

riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/./adalib/system.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/. -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage sfp/riscv64-elf/./adainclude/system.ads

riscv64-elf-ar cr sfp/riscv64-elf/./adalib/libgnat.a ./sfp/riscv64-elf/./adalib/a-assert.o ./sfp/riscv64-elf/./adalib/a-charac.o ./sfp/riscv64-elf/./adalib/a-chlat1.o ./sfp/riscv64-elf/./adalib/a-except.o ./sfp/riscv64-elf/./adalib/a-tags.o ./sfp/riscv64-elf/./adalib/a-unccon.o ./sfp/riscv64-elf/./adalib/a-uncdea.o ./sfp/riscv64-elf/./adalib/ada.o ./sfp/riscv64-elf/./adalib/g-souinf.o ./sfp/riscv64-elf/./adalib/gnat.o ./sfp/riscv64-elf/./adalib/i-c.o ./sfp/riscv64-elf/./adalib/i-cexten.o ./sfp/riscv64-elf/./adalib/interfac.o ./sfp/riscv64-elf/./adalib/s-assert.o ./sfp/riscv64-elf/./adalib/s-atacco.o ./sfp/riscv64-elf/./adalib/s-exctab.o ./sfp/riscv64-elf/./adalib/s-fatflt.o ./sfp/riscv64-elf/./adalib/s-fatgen.o ./sfp/riscv64-elf/./adalib/s-fatlfl.o ./sfp/riscv64-elf/./adalib/s-fatllf.o ./sfp/riscv64-elf/./adalib/s-maccod.o ./sfp/riscv64-elf/./adalib/s-parame.o ./sfp/riscv64-elf/./adalib/s-secsta.o ./sfp/riscv64-elf/./adalib/s-scaval.o ./sfp/riscv64-elf/./adalib/s-stalib.o ./sfp/riscv64-elf/./adalib/s-stoele.o ./sfp/riscv64-elf/./adalib/s-unstyp.o ./sfp/riscv64-elf/./adalib/system.o

riscv64-elf-ranlib sfp/riscv64-elf/./adalib/libgnat.a

riscv64-elf-ar cr sfp/riscv64-elf/./adalib/libgnarl.a

riscv64-elf-ranlib sfp/riscv64-elf/./adalib/libgnarl.a

make[1]: Verzeichnis „/home/fernando/Builds/SweetAda/rts“ wird verlassen

RISC-V: RTS = sfp, multilib = @.**@.=ilp32

make[1]: Verzeichnis „/home/fernando/Builds/SweetAda/rts“ wird betreten

rm -f -r ./sfp/riscv64-elf/rv32i/ilp32/adainclude

mkdir -p ./sfp/riscv64-elf/rv32i/ilp32/adainclude

rm -f -r ./sfp/riscv64-elf/rv32i/ilp32/adalib

mkdir -p ./sfp/riscv64-elf/rv32i/ilp32/adalib

cp -f ./src/sfp/*.ads ./sfp/riscv64-elf/rv32i/ilp32/adainclude/

cp -f ./src/sfp/*.adb ./sfp/riscv64-elf/rv32i/ilp32/adainclude/

processcfg.sh ./src/sfp/s-parame.ads.in ./sfp/riscv64-elf/rv32i/ilp32/adainclude/s-parame.ads

processcfg.sh: ./sfp/riscv64-elf/rv32i/ilp32/adainclude/s-parame.ads: done.

processcfg.sh ./src/targets/RISC-V/system.ads.in ./sfp/riscv64-elf/rv32i/ilp32/adainclude/system.ads

processcfg.sh: ./sfp/riscv64-elf/rv32i/ilp32/adainclude/system.ads: done.

cp -f ./src/targets/RISC-V/Makefile.rts.in ./sfp/riscv64-elf/

make[1]: Verzeichnis „/home/fernando/Builds/SweetAda/rts“ wird verlassen

make[1]: Verzeichnis „/home/fernando/Builds/SweetAda/rts“ wird betreten

riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/rv32i/ilp32/adalib/a-assert.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/rv32i/ilp32 -march=rv32i -mabi=ilp32 -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage sfp/riscv64-elf/rv32i/ilp32/adainclude/a-assert.adb

riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/rv32i/ilp32/adalib/a-charac.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/rv32i/ilp32 -march=rv32i -mabi=ilp32 -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage sfp/riscv64-elf/rv32i/ilp32/adainclude/a-charac.ads

riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/rv32i/ilp32/adalib/a-chlat1.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/rv32i/ilp32 -march=rv32i -mabi=ilp32 -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage sfp/riscv64-elf/rv32i/ilp32/adainclude/a-chlat1.ads

riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/rv32i/ilp32/adalib/a-except.o -c -g -O1 -fno-inline -fno-toplevel-reorder --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/rv32i/ilp32 -march=rv32i -mabi=ilp32 -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage sfp/riscv64-elf/rv32i/ilp32/adainclude/a-except.adb

riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/rv32i/ilp32/adalib/a-tags.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/rv32i/ilp32 -march=rv32i -mabi=ilp32 -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage sfp/riscv64-elf/rv32i/ilp32/adainclude/a-tags.adb

riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/rv32i/ilp32/adalib/a-unccon.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/rv32i/ilp32 -march=rv32i -mabi=ilp32 -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage sfp/riscv64-elf/rv32i/ilp32/adainclude/a-unccon.ads

riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/rv32i/ilp32/adalib/a-uncdea.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/rv32i/ilp32 -march=rv32i -mabi=ilp32 -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage sfp/riscv64-elf/rv32i/ilp32/adainclude/a-uncdea.ads

riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/rv32i/ilp32/adalib/ada.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/rv32i/ilp32 -march=rv32i -mabi=ilp32 -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage sfp/riscv64-elf/rv32i/ilp32/adainclude/ada.ads

riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/rv32i/ilp32/adalib/g-souinf.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/rv32i/ilp32 -march=rv32i -mabi=ilp32 -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage sfp/riscv64-elf/rv32i/ilp32/adainclude/g-souinf.ads

riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/rv32i/ilp32/adalib/gnat.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/rv32i/ilp32 -march=rv32i -mabi=ilp32 -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage sfp/riscv64-elf/rv32i/ilp32/adainclude/gnat.ads

riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/rv32i/ilp32/adalib/i-c.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/rv32i/ilp32 -march=rv32i -mabi=ilp32 -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage sfp/riscv64-elf/rv32i/ilp32/adainclude/i-c.adb

riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/rv32i/ilp32/adalib/i-cexten.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/rv32i/ilp32 -march=rv32i -mabi=ilp32 -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage sfp/riscv64-elf/rv32i/ilp32/adainclude/i-cexten.ads

riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/rv32i/ilp32/adalib/interfac.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/rv32i/ilp32 -march=rv32i -mabi=ilp32 -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage sfp/riscv64-elf/rv32i/ilp32/adainclude/interfac.ads

riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/rv32i/ilp32/adalib/s-assert.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/rv32i/ilp32 -march=rv32i -mabi=ilp32 -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage sfp/riscv64-elf/rv32i/ilp32/adainclude/s-assert.adb

riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/rv32i/ilp32/adalib/s-atacco.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/rv32i/ilp32 -march=rv32i -mabi=ilp32 -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage sfp/riscv64-elf/rv32i/ilp32/adainclude/s-atacco.adb

riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/rv32i/ilp32/adalib/s-exctab.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/rv32i/ilp32 -march=rv32i -mabi=ilp32 -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage sfp/riscv64-elf/rv32i/ilp32/adainclude/s-exctab.adb

riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/rv32i/ilp32/adalib/s-fatflt.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/rv32i/ilp32 -march=rv32i -mabi=ilp32 -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage sfp/riscv64-elf/rv32i/ilp32/adainclude/s-fatflt.ads

riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/rv32i/ilp32/adalib/s-fatgen.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/rv32i/ilp32 -march=rv32i -mabi=ilp32 -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage sfp/riscv64-elf/rv32i/ilp32/adainclude/s-fatgen.adb

riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/rv32i/ilp32/adalib/s-fatlfl.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/rv32i/ilp32 -march=rv32i -mabi=ilp32 -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage sfp/riscv64-elf/rv32i/ilp32/adainclude/s-fatlfl.ads

riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/rv32i/ilp32/adalib/s-fatllf.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/rv32i/ilp32 -march=rv32i -mabi=ilp32 -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage sfp/riscv64-elf/rv32i/ilp32/adainclude/s-fatllf.ads

riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/rv32i/ilp32/adalib/s-maccod.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/rv32i/ilp32 -march=rv32i -mabi=ilp32 -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage sfp/riscv64-elf/rv32i/ilp32/adainclude/s-maccod.ads

riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/rv32i/ilp32/adalib/s-parame.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/rv32i/ilp32 -march=rv32i -mabi=ilp32 -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage sfp/riscv64-elf/rv32i/ilp32/adainclude/s-parame.ads

riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/rv32i/ilp32/adalib/s-secsta.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/rv32i/ilp32 -march=rv32i -mabi=ilp32 -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage sfp/riscv64-elf/rv32i/ilp32/adainclude/s-secsta.adb

riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/rv32i/ilp32/adalib/s-scaval.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/rv32i/ilp32 -march=rv32i -mabi=ilp32 -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage sfp/riscv64-elf/rv32i/ilp32/adainclude/s-scaval.adb

riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/rv32i/ilp32/adalib/s-stalib.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/rv32i/ilp32 -march=rv32i -mabi=ilp32 -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage sfp/riscv64-elf/rv32i/ilp32/adainclude/s-stalib.ads

riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/rv32i/ilp32/adalib/s-stoele.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/rv32i/ilp32 -march=rv32i -mabi=ilp32 -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage sfp/riscv64-elf/rv32i/ilp32/adainclude/s-stoele.adb

riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/rv32i/ilp32/adalib/s-unstyp.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/rv32i/ilp32 -march=rv32i -mabi=ilp32 -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage sfp/riscv64-elf/rv32i/ilp32/adainclude/s-unstyp.ads

riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/rv32i/ilp32/adalib/system.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/rv32i/ilp32 -march=rv32i -mabi=ilp32 -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage sfp/riscv64-elf/rv32i/ilp32/adainclude/system.ads

riscv64-elf-ar cr sfp/riscv64-elf/rv32i/ilp32/adalib/libgnat.a ./sfp/riscv64-elf/rv32i/ilp32/adalib/a-assert.o ./sfp/riscv64-elf/rv32i/ilp32/adalib/a-charac.o ./sfp/riscv64-elf/rv32i/ilp32/adalib/a-chlat1.o ./sfp/riscv64-elf/rv32i/ilp32/adalib/a-except.o ./sfp/riscv64-elf/rv32i/ilp32/adalib/a-tags.o ./sfp/riscv64-elf/rv32i/ilp32/adalib/a-unccon.o ./sfp/riscv64-elf/rv32i/ilp32/adalib/a-uncdea.o ./sfp/riscv64-elf/rv32i/ilp32/adalib/ada.o ./sfp/riscv64-elf/rv32i/ilp32/adalib/g-souinf.o ./sfp/riscv64-elf/rv32i/ilp32/adalib/gnat.o ./sfp/riscv64-elf/rv32i/ilp32/adalib/i-c.o ./sfp/riscv64-elf/rv32i/ilp32/adalib/i-cexten.o ./sfp/riscv64-elf/rv32i/ilp32/adalib/interfac.o ./sfp/riscv64-elf/rv32i/ilp32/adalib/s-assert.o ./sfp/riscv64-elf/rv32i/ilp32/adalib/s-atacco.o ./sfp/riscv64-elf/rv32i/ilp32/adalib/s-exctab.o ./sfp/riscv64-elf/rv32i/ilp32/adalib/s-fatflt.o ./sfp/riscv64-elf/rv32i/ilp32/adalib/s-fatgen.o ./sfp/riscv64-elf/rv32i/ilp32/adalib/s-fatlfl.o ./sfp/riscv64-elf/rv32i/ilp32/adalib/s-fatllf.o ./sfp/riscv64-elf/rv32i/ilp32/adalib/s-maccod.o ./sfp/riscv64-elf/rv32i/ilp32/adalib/s-parame.o ./sfp/riscv64-elf/rv32i/ilp32/adalib/s-secsta.o ./sfp/riscv64-elf/rv32i/ilp32/adalib/s-scaval.o ./sfp/riscv64-elf/rv32i/ilp32/adalib/s-stalib.o ./sfp/riscv64-elf/rv32i/ilp32/adalib/s-stoele.o ./sfp/riscv64-elf/rv32i/ilp32/adalib/s-unstyp.o ./sfp/riscv64-elf/rv32i/ilp32/adalib/system.o

riscv64-elf-ranlib sfp/riscv64-elf/rv32i/ilp32/adalib/libgnat.a

riscv64-elf-ar cr sfp/riscv64-elf/rv32i/ilp32/adalib/libgnarl.a

riscv64-elf-ranlib sfp/riscv64-elf/rv32i/ilp32/adalib/libgnarl.a

make[1]: Verzeichnis „/home/fernando/Builds/SweetAda/rts“ wird verlassen

RISC-V: RTS = sfp, multilib = @.**@.=ilp32

make[1]: Verzeichnis „/home/fernando/Builds/SweetAda/rts“ wird betreten

rm -f -r ./sfp/riscv64-elf/rv32im/ilp32/adainclude

mkdir -p ./sfp/riscv64-elf/rv32im/ilp32/adainclude

rm -f -r ./sfp/riscv64-elf/rv32im/ilp32/adalib

mkdir -p ./sfp/riscv64-elf/rv32im/ilp32/adalib

cp -f ./src/sfp/*.ads ./sfp/riscv64-elf/rv32im/ilp32/adainclude/

cp -f ./src/sfp/*.adb ./sfp/riscv64-elf/rv32im/ilp32/adainclude/

processcfg.sh ./src/sfp/s-parame.ads.in ./sfp/riscv64-elf/rv32im/ilp32/adainclude/s-parame.ads

processcfg.sh: ./sfp/riscv64-elf/rv32im/ilp32/adainclude/s-parame.ads: done.

processcfg.sh ./src/targets/RISC-V/system.ads.in ./sfp/riscv64-elf/rv32im/ilp32/adainclude/system.ads

processcfg.sh: ./sfp/riscv64-elf/rv32im/ilp32/adainclude/system.ads: done.

cp -f ./src/targets/RISC-V/Makefile.rts.in ./sfp/riscv64-elf/

make[1]: Verzeichnis „/home/fernando/Builds/SweetAda/rts“ wird verlassen

make[1]: Verzeichnis „/home/fernando/Builds/SweetAda/rts“ wird betreten

riscv64-elf-gcc -x ada -gnat2022 -o sfp/riscv64-elf/rv32im/ilp32/adalib/a-assert.o -c -g -O2 --RTS="/home/fernando/Builds/SweetAda"/rts/sfp/riscv64-elf/rv32im/ilp32 -march=rv32im -mabi=ilp32 -nostdinc -gnatwa -gnatg -gnatp -gnatyN -Wextra -Wall -fstack-usage sfp/riscv64-elf/rv32im/ilp32/adainclude/a-assert.adb

[...]

This system builds several "flavours" for the RTS. It builds the 32-bit one several times (with different -march options) and several 64-bit ones... That is very strange!

Is the toolchain automatically selecting which variants to use? Is SweetAda not launching the correct builds when running on Debian/aarch64?

I am just opening this issue for documentation porpuses. I do not want to overwhelm you with trouble! Take your time. I am open for testing things out!

Best, Fer

— Reply to this email directly, view it on GitHub https://github.com/gabriele-galeotti/SweetAda/issues/6, or unsubscribe https://github.com/notifications/unsubscribe-auth/AUA6WLOWLZPGXOFIKMPZYX3WQXQQNANCNFSM6AAAAAATRG5RMI . You are receiving this because you are subscribed to this thread.Message ID: @.***>

Irvise commented 1 year ago

Thank you for your time.

Here is the output from the GCC 12.2 (host-aarch64, target-riscv64) assembler:

GNU assembler version 2.39.90 (riscv64-linux-gnu) using BFD version (GNU Binutils for Debian) 2.39.90.20221231

I am going to try to use GCC 12.1 in aarch64 built from Alire, hopefully that fixes things up.

Oh, true, I was using a different RTS in the second example, however, the results are the same for zfp. I have had some problems with sfp which I will report in another issue (missing symbols during kernel linking).

Since I will get back to my work next week, I think email communication is the easiest one for the two of us. Or Github posts like these ones. The problem with IRC is that it is designed for near real-time communications, and I will not really have much free time starting next week. I sent you an email to @sweetada.org a few days ago. We can use that thread for discussions if you want.

Best regards, Fer