home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fresh Fish 10
/
Fresh_Fish_10_2352.bin
/
gnu
/
readme
< prev
next >
Wrap
Text File
|
1995-08-20
|
10KB
|
322 lines
G N U G E N E R A L I N F O R M A T I O N
(Updated 8/20/95)
========
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.
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).
===========
SOURCE CODE
===========
The source code can be found in the GNU-src directory on this CD. This
includes the original FSF (or other) baseline source, patches to the
baseline source, and the fully patched AmigaDOS sources.
==========
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" (400000 is what we 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 300-800 Kb). Work is in
progress to include automatic stack growth code in gcc,
so this requirement will hopefully disappear in a future
release.
=========
STRUCTURE
=========
Important subdirectories are:
amigados ? (gcc/g++ uses this for something...)
bin Where the GNU executables go, like /bin on UNIX.
etc Equivalent to /etc on UNIX.
guide AmigaGuide versions of info files.
include Include files used by gcc, like /usr/include on UNIX
info Info files.
lib Library tree, like /usr/lib on UNIX.
man Manual pages, like /usr/man on UNIX
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.
==============
GENERAL STATUS
==============
Distribution This Latest
Name CD-ROM Base Status
------------ ------ ------ -----------------
APlusPlus 1.01 1.01 --
autoconf 2.4 2.4 Updated
bash 1.13.4 1.14.2 Port incomplete
bc & dc 1.03 1.03 --
binutils 1.8.x 2.5.2 --
binutils 2.5.2 2.5.2 Partial port
bison 1.24 1.24 Updated
brik 2.0 2.0 --
calc 2.02c 2.02c --
cpio 2.3 2.3 --
cvs 1.5 1.5 Added
dbmalloc 1.14 1.14 --
dbug 2.3 2.3 --
dejagnu 1.2 1.2 Added (partial port only)
diffutils 2.7 2.7 --
doschk 1.1 1.1 --
dumphunks 1.0 1.0 --
ecc 1.2.1 1.2.1 --
ed 0.2 0.2 Updated
eispack 1.0 1.0 --
elvis * 1.7 No port integrated yet
emacs 18.59 19.28 --
emacs 19.28 19.28 Partial port
f2c 930428 930428 --
fifo 38.0 38.0 Added
fileutils 3.12 3.12 --
findutils 4.1 4.1 --
finger * 1.37 No port integrated yet
flex 2.5.2 2.5.2 Updated
fontutils 0.6 0.6 --
g77 0.5.15 0.5.15 Updated
gawk 2.15.6 2.15.6 --
gcc 2.7.0 2.7.0 Updated
gdb 4.14 4.14 Port incomplete
gdbm 1.7.3 1.7.3 --
ghostscript 2.6.2 2.6.2 Updated
ghostview * 1.5 No port integrated yet
git 4.3.5 4.3.5 No port integrated yet
glibc * 1.06 No port integrated yet
gmp 1.3.2 1.3.2 --
gnat 2.06 2.06 Updated
gnuchess * 4.0.62 No port integrated yet
gnugo * 1.1 No port integrated yet
grep 2.0 2.0 --
groff 1.09 1.09 --
gzip 1.2.4 1.2.4 --
indent 1.9.1 1.9.1 --
ispell 4.0 4.0 --
ixemul 41.2 41.2 Updated
ixpipe 1.0 1.0 --
ixprefs 1.2 1.2 Added
jove 4.14.6 4.14.6 --
less 290 290 Updated
libcurses 8.3 8.3 --
libg++ 2.7.0 2.7.0 Updated
libm 5.4 5.4 --
libnix 1.0 1.0 Updated
m4 1.4 1.4 --
make 3.74 3.74 Updated
mm * 1.07 No port integrated yet
mtools * 2.0.7 No port integrated yet
nethack * 3.1.3 No port integrated yet
octave 1.1.1 1.1.1 --
oleo * 1.3.1b No port integrated yet
patch 2.1 2.1 --
pdksh 4.9 5.1.3 --
perl 4.036 5.000 --
ptx 0.4 0.4 Added
rcs 5.7 5.7 Updated
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 --
sh-utils 1.12 1.12 --
sharutils 4.1 4.1 --
superopt 2.5 2.5 Added
tar 1.11.8 1.11.8 Updated
termcap 1.2 1.2 --
texinfo 3.6 3.6 Updated
textutils 1.12 1.12 Updated
tile-forth 2.1 2.1 Added
time * 1.6 No port integrated yet
tput * 1.0 No port integrated yet
unixtex 6.1 6.1 --
uucp * 1.04 No port integrated yet
wdiff 0.5 0.5 --
==============
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.
==========
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