This is the Linux binary distribution of GNAT compiled as ELF
binaries.  If your system is not ELF (i.e. a.out), this is not for
you.  It was compiled with gcc 2.7.2, binutils 2.6.0.2, and
libc-5.2.18.  The gcc 2.7.2 binary is not included in this release
(except for the GNAT specific part) but is required to use GNAT. You
must get the gcc-2.7.2 binaries from somewhere like:

  sunsite.unc.edu in /pub/Linux/GCC
  tsx-11.mit.edu in /pub/linux/packages/GCC

To install the binary release, you are given 3 optional installation
procedures.  I strongly suggest using the first option for Linux.
The following steps will install GNAT:

  su
  ./doconfig    # ------ select option 1
  ./doinstall

Note that everything included was compiled from publically available
packages.  This means that anyone can recompile GNAT for themselves.

This package was created on a system as close to vanilla Slackware 3.0
as I could make it.  I installed Slackware 3.0 downloaded from a
mirror site on 2-12-96.  I had to use the 1.3.20 kernel supplied with
Slackware as 1.2.13 will not compile with gcc-2.7.2.  I then installed
the following packages from one of the above ftp sites/directories:

  gcc-2.7.2.bin.tar.gz
  binutils-2.6.0.2.bin.tar.gz
  libc-5.2.18.bin.tar.gz

Once you install the new libc, you have to run /sbin/ldconfig and
reboot.

I then installed the fixed version of make found on

  sunsite.unc.edu in /pub/Linux/devel/make

The file is called make-3.74-direntfix-elf.tgz

There has been a long-standing bug in the dirent libc function that
was still present in libc-5.0.9, but was fixed by libc-5.2.18.
Without this version of make, you will get odd errors from make
regarding no targets or something like that.  If you suspect your make
is faulty, try invoking it as "make -f Makefile" and see if it behaves
differently.

After the above steps, I recompiled my kernel to make sure all was in
order.  It was :-)

For the present, this is the minimum system upgrade of Slackware 3.0
required to use GNAT.  When a new version of Slackware is available, I
hope to eliminate the need to install any packages beyond those
provided with the distribution.

There are a few items that need to be mentioned:

  1) The pthread library is 1.60.4. It is the version that has been
     incorporated into the libc library with the included
     libc-5.2.18.dif.gz compressed patch file applied. The pthread
     library is not included in the binary release of libc, but you
     can compile it from the sources (plus patch) if you want.  I
     have included the pthread library in the GNAT binary archive.

  2) The release includes the gcc front-end program "gcc".  This is
     because important information required by gcc to recognize
     other languages has been removed from the base source code and
     is instead compiled in separately.  This means that if you need
     support for languages other than C/C++/ObjC/Ada95 from gcc (like
     Fortran), you'll have to compile gcc with all the desired
     languages together.

  3) These are the steps required to recompile GNAT:

      # first, untar the gcc-2.7.2 and gnat sources.
      # apply the gcc272.dif to gcc-2.7.2.
      # For building the RTS as an ELF shared library, apply the linux.dif
      #  found in the same directory as gcc272.dif.
      # mv the gnat-x.xx-src/src/ada directory into the gcc-2.7.2 directory.
      # cd to the gcc-2.7.2 directory.
      ./configure --target=i486-linux --with-gnu-as --with-gnu-ld --prefix=/usr
      make CFLAGS="-O3 -fomit-frame-pointer"
      make CFLAGS="-O3 -fomit-frame-pointer" gnatboot
      make CFLAGS="-O3 -fomit-frame-pointer" gnattools
      make CFLAGS="-g -fPIC -D_MIT_POSIX_THREADS" gnatlib
      su
      make install

  4) This release includes a shared library version of the RTS.

Note:  The ELF version of GNAT for Linux on the x86 platform is fully
       supported by Ada Core Technologies (ACT).  Anyone interested in
       purchasing support for this product should contact ACT at
       support@gnat.com for more details.

Enjoy,

Sean McNeil
(Report all bugs/omissions/problems to report@gnat.com)