Code Monkey home page Code Monkey logo

sweetada's Introduction

alt text

SweetAda overview

Welcome to SweetAda.

SweetAda is a lightweight development framework whose purpose is the implementation of Ada-based software systems.

The code produced by SweetAda is able to run on a wide range of machines, from ARM® embedded boards up to x86-64-class machines, as well as MIPS® machines and Virtex®/Spartan® PowerPC®/MicroBlaze® FPGAs. It could theoretically run even on System/390® IBM® mainframes (indeed it runs on the Hercules emulator). SweetAda is not an operating system, however it includes a set of both low- and high-level primitives and kernel services, like memory management, PCI bus handling, FAT mass-storage handling, which could be used as building blocks in the construction of complex software-controlled devices.

SweetAda has some distinctive characteristics, like:

  • is ROMable
  • could use a ZFP run-time
  • has no dependencies; neither external libraries nor underlying code are needed

SweetAda uses standard GNU toolchains, GNU Make and a decent POSIX® shell environment. In a Linux® workstation the latter is quite standard, while for a Windows® machine you can download and install either MSYS2 (preferred) or Cygwin®. Anyway, SweetAda comes with a port of Make and support for CMD/PowerShell CLI. Being completely makefile- and script- driven, SweetAda has many hooks which allow a nicely integration in a GUI environment such as, e.g., Eclipse, Kate or Visual Studio Code.

To make SweetAda generic and, at the same time, reliable, it is regularly tested against an heterogeneous set of machines which are able to succesfully execute the system code; a brief list could be given, e.g.:

  • PC-style PIIX3/PIIX4 motherboards (ROM-boot)
  • Cobalt RaQ 2 router MIPS RM5231 (ROM-boot)
  • DECstation 5000/133 MIPS R3000 (ROM-boot)
  • Memec FX12 Virtex-4 PPC405 (JTAG-boot)
  • DigiNS7520 board ARM7TDMI (JTAG-boot)
  • Terasic DE10-Lite Nios®II softcore (JTAG-boot)
  • MVME1600-011 PPC603 VME board (JTAG-boot)
  • Force SPARC®/CPU-3CE VME board (ROM-boot)
  • Malta™ MIPS (ROM-boot)
  • M5235BCC ColdFire development board (ROM-boot)
  • SPARCstation™ 5 (ROM-boot)
  • Spartan 3E MicroBlaze softcore (JTAG-boot)
  • Raspberry Pi™ 3 ARMv8 (microSD-boot)

Some machines are supported through a virtual emulator like QEMU(TM), and as an option, a virtual IOEMU physical I/O system could be used, which allows software code to interact with a visual environment.

Great care has been put in the design and development of SweetAda. The software code is logically organized, written with aesthetically precise guidelines, and is compiled by a build machinery which enforces a very high severity level. Usefulness, simplicity and expandability rather than extreme or obscure optimizations are the key features behind the project. Nevertheless, SweetAda grants the implementation of appropriate customizations, down to machine code level, to satisfy specific needs.

SweetAda is in a state of steady growth. BSPs, device drivers, a TLSF memory allocator, TCP/IP basic functionalities, as well as low-level CAN primitives are under heavy development. More target machines and additional feautures/modules such as a tiny Python bytecode interpreter and expanded SFP runtimes are scheduled in future releases.

Please note that much of the platform-specific code provided is given as an example. The emphasis of SweetAda is not about operating system design but rather on exploiting Ada language everywhere.

NEWS

21/06/2023

Thanks to the work of Fernando Oleo Blanco (https://irvise.xyz/), SweetAda got displayed in the real world, running on a RISC-V SiFive(R) HiFive1 board.

The Ada-based system was shown at the FOSDEM '23 recently held in Brussels.

alt text

sweetada's People

Contributors

gabriele-galeotti avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sweetada's Issues

Documentation - installation instructions?

The documentation does not appear to include instructions for installation of SweetAda; a "getting started" section would be very helpful.

For example, does one simply download and unpack the toolchain and add "<unpack_dir>/SweetAda/bin" to the PATH, or is there more to it than that? It looks like perhaps one needs to download the SweetAda snapshot, unpack it into a directory on the host system, change the name of the top level SweetAda directory to "SweetAda", then unpack the toolchain(s) over top of that.

gprconfig?

Is it possible to use the SweetAda toolchains with gprconfig / gprbuild?

I've been wanting a good AArch64 Ada toolchain for some time - and this looks like it could work great.

It looks like gprconfig (at least installed on Debian unstable) doesn't understand it:

rroland@booker:~$ gprconfig --target=aarch64-sweetada-elf
No compilers found for target aarch64-sweetada-elf

Question/proposal: LibC in Ada

Hi Gabriele,

I was taking a deeper look into the project. I found that the C library is implemented in C. That is no surprise. But I was wondering whether you would consider/allow a PR (pull request) for it to be changed into Ada.

As far as I know, @Lucretia already implemented one in Ada (or part of it). I am pinging him to see if he has more insight into the matter. Maybe there is an already MIT compatible C library implemented in Ada out there.

I think SweetAda could be a wonderful showcase/base for Ada projects, and having the C library written in Ada would be the cherry on top.

Regards,

Fer

RTS build is different depending on the OS? Toolchain?

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

Add SweetAda to Alire

Hi Gabriele,

I have already talked to you about this, but I want to make it a bit more official. I would like to see SweetAda added to Alire. Now, what does that mean?

Alire and the new version 1.1.0

Alire is the "new" "shinny" "great" official package manager for Ada from AdaCore. I am not a great fan of package managers, but they to help with project management and quick testing/sandboxing.

With the new version, which is still not out, it is in RC phase, Alire will have binary releases of toolchains (FSF as announced). That is great. And I think SweetAda can capitalise on this. Since SweetAda deploys Ada in anything that can be supported by GCC and you yourself, having it in Alire, with binary toolchains would be a terrific thing.

Explain me more, how and who will do this?

Long story short, I think it would be great to have the entire SweetAda project and toolchains available in Alire. This would make working with SweetAda a seamless experience. No need of several downloads, of complex setups. In theory, a user would be able to simply say: "My project requires support for the Raspberry Pi 3, I will add SweetAda to my project:,

Sooo... how can this be done?

I have been thinking about this, and this is my proposal:

  • If there are any common files to the different architectures, have a root package named "sweetada". All other packages will depend on it.
  • Create a different package for each architecture. For example: "sweetada_riscv", the will depend on "sweetada".
  • For board specific files, another package could be added, such as "sweetada_raspberry".

For the binary releases of the toolchains, I am not knowledgeable enough to comment.

That is a lot of work, who will do this?

I hope I will have some free time in the coming weeks and I would like to try my hand at it. I am currently learning Alire myself.

Closing thoughts

What I just wrote is, obviously, dependent on your comments and your indications.

@Fabien-Chouteau what is your opinion about my proposal? I am specially interested in your opinion about the toolchains.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.