This is a set of build scripts to enable you to build the FSF Ada compiler with AdaCore's GPL'd tools. This is the FSF version of GCC, not AdaCore's GPL'd version which cannot be used for commercial closed source use!
GCC is a bitch to build and worse still are AdaCore's GPL'd (extra) projects. Having scripts to do it is a lot easier.
- FSF GCC
- Binutils
- GDB
The following are AdaCore GPL-2018 versions:
- XML/Ada
- GPRBuild
- GNATColl
- GNATColl-Bindings
- GNATColl-DB
- LibAdaLang
- LibAdaLang-Tools
- AUnit
To find out what versions are built, see the config-master.inc.sh
file.
I have the following branches I will develop on and changes in the latest branch will go into master.
- gcc-9.x - As of 06/11/2019, this branch has been merged into master.
- gcc-8.x - As of 06/11/2019, this is up to date with gcc-9.x, there will be no more updates on this branch unless deemed necessary.
- gcc-7.x - Deprecated as of 06/11/2019, cannot support the current libadalang.
I will be focussing on the latest GCC build's keeping the previous going as long as I can. I will note here the branches and what is deprecated and what isn't. When GCC-10.x is released I will add a new branch for that.
You can try Alire to handle the installation of Ada packages.
Get help with the scripts and what can be built so far:
$ ./build-tools.sh -h
To get a native toolchain, use the following instructions:
cp config-master.inc.sh config.inc.sh
# modify config.inc as required
./download.sh
./build-tools.sh -t 1
If you leave everything as default, you will have a bunch of archives in a packages directory and the toolchain installed
to $HOME/opt/free-ada-new
$ emerge -av dev-util/dejagnu dev-tcltk/expect dev-lang/tcl
These options allow you to build bare metal C and Ada compilers, you have to provide your own runtime.
The following targets have been built, but any target supported by GCC should build now.
- arm-none-eabi
- i386-elf
- x86_64-elf
- mips-elf
- msp430-elf
- avr - NOTE Don't use this as it doesn't match the build from the official avr-ada and it's Duration isn't right.
- ppc-elf
Copyright (C) 2011-2019 Luke A. Guest with assistance from David Rees
- This project no longer uses git flow.
- GNATColl requires Python 2 to create documentation, it will not build with Python 3.
- If you want to build the new GNAT-LLVM compiler, you need the gcc-9.x branch.