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)