-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
RTS build is different depending on the OS? Toolchain? #6
Comments
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
"<toolchain_name>-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
<#6>, or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AUA6WLOWLZPGXOFIKMPZYX3WQXQQNANCNFSM6AAAAAATRG5RMI>
.
You are receiving this because you are subscribed to this thread.Message
ID: ***@***.***>
|
Thank you for your time. Here is the output from the GCC 12.2 (host-aarch64, target-riscv64) assembler:
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 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. Best regards, |
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):
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):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
The text was updated successfully, but these errors were encountered: