Ada is a modern programming language designed for large, long-lived applications — and embedded systems in particular — where reliability and efficiency are essential. It has a set of unique technical features that make it highly effective for use in large, complex and safety-critical projects.
The compiler and associated tools on this page are known as the GNAT technology, developed by the Adacore company, using the GCC backend. Since parts of the Ada compiler are written in Ada, there is a circular dependency on an Ada compiler. The instructions below install a binary compiler. You do not need to do that if you already have built GNAT tools. The next section covers how to build GNAT once the circular dependency is satisfied.
If you are currently in a TTY and relying on command-line tools to obtain software, it is recommended to open the x86 GNAT download link with lynx or links. You can use Wget-1.25.0 but not cURL-8.11.0. If you do end up using wget regardless of the recommendation against it, please run the following the command before unpacking:
mv c5e9e6fdff5cb77ed90cf8c62536653e27c0bed6\?filename\=gnat-gpl-2014-x86-linux-bin.tar.gz\&rand\=1247 \ gnat-gpl-2014-x86-linux-bin.tar.gz
If you are doing multilib, just download the x86_64 GNAT binary tarball. The instructions in the next section for multilib will work as expected and GCC will continue to have multilib support.
Install the x86_64 GNAT binaries
by running the following commands as the root
user while still in the directory the
tarball is in:
export GNATTBPATH=$PWD && cd /opt && tar -xpvf "$GNATTBPATH"/gnat-x86_64-linux-14.2.0-1.tar.gz && ln -sv gnat-x86_64-linux-14.2.0-1 gnat && chown -R root:root gnat && cd $GNATTBPATH && unset GNATTBPATH
Or install the x86 GNAT binaries
by running the following commands as the root
user while still in the directory the
tarball is in:
export GNATTBPATH=$PWD && cd /opt && tar xpvf "$GNATTBPATH"/gnat-gpl-2014-x86-linux-bin.tar.gz && ln -sv gnat-gpl-2014-x86-linux-bin gnat && chown -R root:root gnat && cd $GNATTBPATH && unset GNATTBPATH
Now adjust the PATH
variable so the
GNAT software can be found and
used:
PATH_HOLD=$PATH && export PATH=/opt/gnat/bin:$PATH_HOLD
Ensure ld and
as from the
GNAT package aren't used as to
prevent issues with aging by issuing the following as the
root
user:
find /opt/gnat -name ld -exec mv -v {} {}.old \; && find /opt/gnat -name as -exec mv -v {} {}.old \;