home *** CD-ROM | disk | FTP | other *** search
- This is the GNU Ada compiler, GNAT. The compiler is in a 'hacker
- state', ie. it is complete and certainly not bug free. But you it can
- compile itself, more than 110,000 lines of Ada, and many other
- programs.
- I have compiled the entire thing, including the compilers, the library
- and the other utility program that came with it. I have not test any
- of it extensively, except for compiling itself and a few old programs
- I had from school.
- The only mandatory files you need are gnat1 and gnatbind for the amiga
- and the source, if you want to compile it yourself.
- those files are
- gnat1-gnatbind.lha
- and gnat-1.80-src.lha
-
- and of course, the gcc-2.5.8 source
-
- There is a third file, gnat-1.80-bin.lha, it contains everything
- needed to run compile ada programs, but not the source to recompile
- GNAT.
-
- In gnat-1.80-src.lha there is a directory called corrections, these
- are some thing that needed to be done to gnat to get it to compile,
- just *ruff* notes. ( don't trust the diffs , they be backward ).
- The problem I ran into were:
- 1. the compiler generates bad code for the parser (par.o)
- the statement that it compiles wrong is something like
-
- exit when SS_FLAG.uncd
-
- par.s.diff will show you where the problem is, and a
- working alternative.
-
- 2. The compiler craps out with an interanl error, on two
- code statement in uintp.adb.
- Unitp.adb.diff shows a workaround that seem to work.
-
- 3. The compiler bombs on some code in atree.adb.
- Atree.adb.changes shows how to change the code,
- but it must be repeated a couple of time.
-
- 4. There is also a problem with the 'md' file. A replacement
- is in the correction directory along with the original.
-
- I also had a few other problem compiling the sytem, most seem to be
- related to memory constraints. Plan on a lot of memory to recompile
- this thing, > 14meg. ( most of the files do not need that much memory
- but there are a couple that do, par-*.ad?. Also *lots* of disk space.
-
- Another problem for amiga owners seems to be the stack. I compiled
- one old program and ran it, it needed 470,000 stack to run. I have no
- idea how to work around this.
-
- Happy ADAing.
-
- Pass Travis
-
- ptravis@rs6.tcs.tulane.edu
-
- ======================================================================
- These notes added by Fred Fish.
-
- * This file has been renamed README-amiga
-
- * There is a new directory, "amiga", containing amiga specific
- notes and such.
-
- * The "corrections" directory refered to above has been moved
- to amiga/corrections, and is not used.
-
-
- ===============
- REBUILDING GNAT
- ===============
-
- (1) Start with the baseline FSF gcc 2.5.8 archive gcc-2.5.8.tar.gz.
- Ungzip it, and then untar it:
-
- gzip -d gcc-2.5.8.tar.gz
- tar -xvf gcc-2.5.8.tar
- rm gcc-2.5.8.tar
-
- Note: if you are starting with my CD distribution, you
- can skip steps 1 and 2, and simply clone the gcc-2.5.8
- tree under gnu:src/amiga to use as a starting point with
- step 3.
-
- (2) Cd to the gcc root directory and apply the diffs that turn the
- baseline FSF gcc into Amiga gcc:
-
- cd gcc-2.5.8
- patch -p1 <gnu:src/amiga/gnat-1.80/amiga/gcc-2.5.8.diffs
- delete #?.orig
- delete config/m68k/#?.orig
-
- (3) Now apply the diffs that are needed to amiga gcc files for amiga
- gnat. These diffs don't add any files, just change the gcc ones:
-
- patch -p1 <gnu:src/amiga/gnat-1.80/amiga/gcc-gnat.diffs
- delete #?.orig
- delete #?/#?/#?.orig
-
- (4) Now copy the new ada specific source files from the gnat
- distribution into the gcc source directory:
-
- copy gnu:src/amiga/gnat-1.80/src "" all clone
-
- (5) Delete the diff files provided with gnat, they are already taken
- care of by the patches applied above.
-
- delete #?.diff
-
- (6) Configure gcc/gnat for amigados:
-
- sh configure amigados
-
- (7) Build just the ada portions:
-
- make LANGUAGES=ada
-
- (8) Build the ada runtime
-
- make tmp-adainclude
-
- (9) Install the ada binaries:
-
- copy gnat1 gnu:lib/gcc-lib/amigados/2.5.8/gnat1
- copy gnatbind gnu:bin/gnatbind
- copy gnatbl gnu:bin/gnatbl
- copy gnatchop gnu:bin/gnatchop
- copy gnatf gnu:bin/gnatf
- copy gnatk8 gnu:bin/gnatk8
- copy gnatsplit gnu:bin/gnatsplit
-
- (10) Install the ada runtime:
-
- make install-gnatlib
-