Binary GNAT

About GNAT

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.

[Note]

Note

Development versions of GLFS may not build or run some packages properly if LFS or dependencies have been updated since the most recent stable versions of the books.

[Note]

Note

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.24.5 but not cURL-8.9.1. 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
[Important]

Important

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.

Installation of GNAT Binaries

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.1.0-3.tar.gz

ln -sv gnat-x86_64-linux-14.1.0-3 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 \;