home *** CD-ROM | disk | FTP | other *** search
-
- G N U G E N E R A L I N F O R M A T I O N
-
- (Updated 9/8/94)
-
- ========
- OVERVIEW
- ========
-
- This is the root directory of a set of utilities which started with Amiga
- ports of important GNU (GNU's Not Unix) tools, such as the GNU C compiler,
- and then has gradually expanded to encompass other tools.
-
- For information about what has changed since the previous release, see the
- CHANGES topic later in this file.
-
- One of the goals of this set of utilities is to have a completely self
- hosting environment. I.E. that everything within it be compilable by the
- GNU C compiler or other provided compilers. It should be possible for the
- recipient of these utilities to make whatever changes or bug fixes they
- want in any piece of code, and then rebuild and use that fixed version (and
- hopefully send those changes back for integration into future releases).
-
- =======
- CHANGES
- =======
-
- This is a summary of things that have changed since the last release.
-
- * Added gcc 2.6.0 and recompiled everything with gcc 2.6.0.
- (Note: not compiled with optimization since gcc 2.6.0 seems
- to be buggy with respect to optimization.)
-
- * Updated flex from 2.4.6 to 2.4.7.
-
- * Updated gas from 1.38 to 2.3.
-
- * Updated libg++ from 2.5.3 to 2.6.
-
- * Updated m4 from version 1.1 to 1.2.
-
- * Added "libnix" library tree from net release of gcc 2.6.0.
- I tried to rebuild it from source but ran into various problems,
- so I decided not to include source on this CD. Fully working
- source should be included on the next CD.
-
- ==========
- STACK SIZE
- ==========
-
- *** IMPORTANT ***
-
- Some of the GNU utilities, gcc in particular, require a
- very large stack. You need to arrange that the CLI/Shell
- or whatever you run these programs from has a large stack
- set. In a CLI you can set this with a command of the
- form "stack 100000" (100000 is what I use). You can also
- put this command in your S:Shell-Startup file to get large
- stacks for all CLI/Shell startups, without having to
- remember to manually set the stack each time. Really huge
- compiles, like recompiling the compiler itself, may require
- even more stack space (like 300Kb or more).
-
-
- =========
- STRUCTURE
- =========
-
- Important subdirectories are:
-
- amigados ? (gcc/g++ uses this for something...)
-
- bin Where the GNU executables go.
-
- etc Equivalent to /etc on UNIX.
-
- guide AmigaGuide versions of info files.
-
- include Include files used by gcc.
-
- info Info files.
-
- lib Library tree, like /usr/lib on UNIX.
-
- man Manual pages.
-
- manifests Lists that subdivide this tree up into important
- subsets for individual distribution, such as all
- the files that comprise a binary distribution of
- the GNU C compiler.
-
- os-include System specific include files. These are
- Commodore proprietary and are distributed
- under license from Commodore.
-
- os-lib System specific library files. These are
- derived from Commodore proprietary libraries
- and are distributed under license from Commodore.
-
- src All the source code, including the original
- FSF distributions, patches to the FSF distributions,
- and the fully patched AmigaDOS sources.
-
- ==============
- GENERAL STATUS
- ==============
-
- Distribution Prev This Latest
- Name CD-ROM CD-ROM FSF Status
- ------------ ------ ------ ------ -----------------
-
- a++ 1.01 1.01 n/a --
- autoconf 1.11 1.11 1.11 --
- bash 1.13.4 1.13.4 1.13.4 Port incomplete
- bc 1.02 1.02 1.02 --
- binutils 1.8.x 1.8.x 2.3 --
- bison 1.22 1.22 1.22 --
- calc * * 2.02b No port integrated yet
- cpio 2.3 2.3 2.3 --
- cvs * * 1.3 No port integrated yet
- dc 0.2 0.2 0.2 --
- dejagnu * * 1.1.1 No port integrated yet
- diffutils 2.6 2.6 2.6 --
- doschk 1.1 1.1 1.1 --
- ed 0.1 0.1 0.1 --
- elvis * * 1.7 No port integrated yet
- emacs 18.59 18.59 19.22 --
- f2c 930428 930428 930428 --
- fileutils 3.9 3.9 3.9 --
- find 3.8 3.8 3.8 --
- finger * * 1.37 No port integrated yet
- flex 2.4.6 2.4.7 2.4.7 Updated
- fontutils * * 0.6 No port integrated yet
- gas 1.38 2.3 2.3 Updated
- gawk 2.15.5 2.15.5 2.15.5 --
- gcc 2.5.8 2.6.0 2.6.0 Updated
- gdb 4.12 4.12 4.13 Port incomplete
- gdbm 1.7.3 1.7.3 1.7.3 --
- ghostscript 2.6.1 2.6.1 2.6.1 --
- ghostview * * 1.5 No port integrated yet
- glibc * * 1.06 No port integrated yet
- gmp 1.3.2 1.3.2 1.3.2 --
- gnat 1.80 1.80 n/a --
- gnuchess * * 4.0.62 No port integrated yet
- gnugo * * 1.1 No port integrated yet
- grep 2.0 2.0 2.0 --
- groff 1.09 1.09 1.09 --
- gzip 1.2.4 1.2.4 1.2.4 --
- indent 1.9.1 1.9.1 1.9.1 --
- ispell 4.0 4.0 4.0 --
- less * * 177 No port integrated yet
- libg++ 2.5.3 2.6 2.6 Updated
- libnix * ? ? Added
- m4 1.1 1.2 1.2 Updated
- make 3.71 3.71 3.71 --
- mm * * 1.07 No port integrated yet
- mtools * * 2.0.7 No port integrated yet
- nethack * * 3.1.3 No port integrated yet
- oleo * * 1.3.1b No port integrated yet
- patch 2.1 2.1 2.1 --
- pdksh 4.9 4.9 n/a --
- perl 4.036 4.036 4.036 --
- rcs 5.6.0.1 5.6.0.1 5.6.0.1 --
- readline * * 1.1 No port integrated yet
- recode * * 3.2.4 No port integrated yet
- regex * * 0.12 No port integrated yet
- sed 2.05 2.05 2.05 --
- shellutils 1.10 1.10 1.10 --
- tar 1.11.2 1.11.2 1.11.2 --
- termcap 1.2 1.2 1.2 --
- texinfo 3.1 3.1 3.1 --
- textutils 1.9 1.9 1.9 --
- time * * 1.6 No port integrated yet
- tput * * 1.0 No port integrated yet
- uucp * * 1.04 No port integrated yet
- uuencode 1.0 1.0 1.0 --
- wdiff * * 0.04 No port integrated yet
-
- ==============
- GNU C COMPILER
- ==============
-
- All the versions of gcc look for local header files in LOCAL:include and
- LOCAL:os-include, and look for local library files in LOCAL:lib and
- LOCAL:os-lib. This allows you to add local packages that will be found
- automatically by gcc, in a location that is writable by you. Simply
- reassign LOCAL: to point to the correct location.
-
- Gcc now automatically includes -lamiga in the command line to the linker, so
- you can use AmigaDOS specific calls in your code without having to remember
- to link with libamiga.a.
-
- As of this date, all releases of gcc since 2.3.3 have had broken support for
- the -resident option. This is one reason why gcc 2.3.3 is still included on
- the CD-ROM. To demonstrate the problem, try to bootstrap using "make
- bootstrap RESIDENT=-resident".
-
- ==========
- GNU LINKER
- ==========
-
- A new option "-f" or "-flavor" is used to inform the linker to look in
- additional subdirectories for particular "flavors" of libraries, like
- libraries compiled with -fresident, libraries compiled with -g, libraries
- compiled with -p, etc. All the flavor args are collected in a list, sorted,
- and then used to create additional sudirectories at the end of the standard
- library search paths.
-
- For example, given the args
-
- "-L mystuff:lib -flavor libx -flavor libb -lmylib"
-
- the linker will search for libmylib.a in "mystuff:lib/libb/libx/".
-
- In particular, this is the mechanism that is now used to locate the base
- relative libraries, which have moved from gcc:blib to gcc:lib/libb.
- Eventually there will be other standard flavors of libraries, like -p
- compiled and -g compiled libraries, in a subtree like:
-
- gcc:lib/libb/libc.a -resident
- gcc:lib/libb/libg/libc.a -resident -g
- gcc:lib/libb/libg/libp/libc.a -resident -g -p
- gcc:lib/libp/libc.a -p
- gcc:lib/libg/libp/libc.a -g -p
-
- etc.
-
- ============
- GNU DEBUGGER
- ============
-
- GDB 4.12 has been ported to the extent that you can build an AmigaDOS
- executable that knows how to load and examine executables from non-AmigaDOS
- systems. Much work remains. See the gnu:src/diffs/gdb-4.12-README file.
-
- ======
- LIBNIX
- ======
-
- This is libnix, a static (i.e. link) library for gcc 2.3.3 or above. It's
- not a replacement for ixemul.library (though it's possible to recompile most
- of the gcc environment with libnix) but a good thing for amiga specific
- development on gcc:
-
- * It's mostly compatible to SAS's way of handling things, i.e.
- you get even an automatic shared library opening feature and
- some other things you may miss in ixemul.library.
- This also means it's ANSI compliant.
-
- * It doesn't need any shared libraries than normal Amiga OS ones.
-
- * It is not copyrighted by the FSF. Therefore you neither need
- to include sources nor objects together with your executable.
- (read the GLGPL _before_ flaming on this statement)
-
- * And it's short! I was able to compile a 492 byte 'hello, world'
- using normal main.
-
- * It uses OS20 features whenever necessary.
-
- To summarize:
-
- Use ixemul.library for porting Un*x programs, libnix for
- compiling amiga-only programs and gcc is one of the best
- Amiga compilers.
-
- ====
- TODO
- ====
-
- This is a list of things that still remain to be done for future releases,
- and/or comments about future directions.
-
- * Beta versions of gcc that use separate 68020/030/040 binaries
- and libraries are currently in testing. They should be integrated
- in the next release.
-
- * New versions of ixemul.library (40.X) are in beta test. Once they
- are stable, they will be integrated into a future release.
-
- * Look at adding AmigaDOS style version strings to all binaries.
-
- * Look at redoing documentation files (such as this one) as AmigaGuide
- documents, or as texinfo files that can be used to generate both
- AmigaGuide and plain-text files.
-
- * Integrate an "info-to-AmigaGuide" converter into the standard
- build and install process, in order to generate and install
- AmigaGuide versions of all info files.
-
- * Ensure that the standard documentation browsing tools are present
- and work correctly (man, info, etc).
-
- * Continue integrating selected tools now that the "GNU tree" has
- been opened up to non-GNU tools as well as GNU tools. One fertile
- source of material may be the BSD-lite distributions.
-
- * Finish the GNU emacs 18.XX port so that it can be compiled with the
- GNU C compiler.
-
- * Port GNU emacs 19.XX.
-
- * In cpio-2.3, the "mt" program is not getting built, possibly
- because "rmt" support is not provided by default. Fix this.
-
- * Provide documentation in both *.dvi and *.ps formats.
-
- ==========
- KNOWN BUGS
- ==========
-
- * Gcc 2.6.0 aborts when compiling tperl.c in the perl distribution.
- The workaround is to compile tperl.c without optimization.
-
- * Gcc 2.6.0 aborts when compiling libg++/src/fix16.cc in libg++.
- A patch has been applied from Cygnus to fix this bug.
-
- * Gcc 2.6.0 cannot be used to compile pdksh, since it has to
- be compiled with "-resident", which isn't fully working yet.
- The workaround is to compile the entire pdksh with gcc 2.3.3.
-
- * In general, several utilities (including sed for example),
- misbehaved when compiled with gcc 2.6.0 with optimization
- enabled. For this reason, all binaries that were recompiled
- for this release with gcc 2.6.0, were compiled without
- optimization.
-
- * In pdksh 4.9, the built in echo doesn't properly handle args
- that start with '-', so we have to use GNU echo.
-
- * Pdksh 4.9 doesn't properly handle the following, either
- interactively or in a script file. No warning or error is
- generated, the elif clause is simply ignored:
-
- if test -f foo
- then
- echo foo
- elif test -f bar <--- missing following "then"
- echo bar
- fi
-