home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 9 / FreshFishVol9-CD1.bin / gnu / readme < prev    next >
Text File  |  1995-04-19  |  10KB  |  332 lines

  1.  
  2.            G N U   G E N E R A L   I N F O R M A T I O N
  3.  
  4.                  (Updated 4/18/95)
  5.  
  6. ========
  7. OVERVIEW
  8. ========
  9.  
  10. This is the root directory of a set of utilities which started with Amiga
  11. ports of important GNU (GNU's Not Unix) tools, such as the GNU C compiler,
  12. and then has gradually expanded to encompass other tools.
  13.  
  14. One of the goals of this set of utilities is to have a completely self
  15. hosting environment.  I.E. that everything within it be compilable by the
  16. GNU C compiler or other provided compilers.  It should be possible for the
  17. recipient of these utilities to make whatever changes or bug fixes they
  18. want in any piece of code, and then rebuild and use that fixed version (and
  19. hopefully send those changes back for integration into future releases).
  20.  
  21.  
  22. ===========
  23. SOURCE CODE
  24. ===========
  25.  
  26. The source code is currently found in the BBS portion of this two CD set, in
  27. the BBS/GNU directory.  This includes the original FSF (or other) baseline
  28. source, patches to the baseline source, and the fully patched AmigaDOS
  29. sources.
  30.  
  31.  
  32. ==========
  33. STACK SIZE
  34. ==========
  35.  
  36.             *** IMPORTANT ***
  37.  
  38.     Some of the GNU utilities, gcc in particular, require a
  39.     very large stack.  You need to arrange that the CLI/Shell
  40.     or whatever you run these programs from has a large stack
  41.     set.  In a CLI you can set this with a command of the
  42.     form "stack 100000" (400000 is what we use).  You can also
  43.     put this command in your S:Shell-Startup file to get large
  44.     stacks for all CLI/Shell startups, without having to 
  45.     remember to manually set the stack each time.  Really huge
  46.     compiles, like recompiling the compiler itself, may require
  47.     even more stack space (like 300-800 Kb).  Work is in
  48.     progress to include automatic stack growth code in gcc,
  49.     so this requirement will hopefully disappear in a future
  50.     release.
  51.  
  52.  
  53. =========
  54. STRUCTURE
  55. =========
  56.  
  57. Important subdirectories are:
  58.  
  59.     amigados    ? (gcc/g++ uses this for something...)
  60.  
  61.     bin        Where the GNU executables go, like /bin on UNIX.
  62.  
  63.     etc        Equivalent to /etc on UNIX.
  64.  
  65.     guide        AmigaGuide versions of info files.
  66.  
  67.     include        Include files used by gcc, like /usr/include on UNIX
  68.  
  69.     info        Info files.
  70.  
  71.     lib        Library tree, like /usr/lib on UNIX.
  72.  
  73.     man        Manual pages, like /usr/man on UNIX
  74.  
  75.     manifests    Lists that subdivide this tree up into important
  76.             subsets for individual distribution, such as all
  77.             the files that comprise a binary distribution of
  78.             the GNU C compiler.
  79.  
  80.     os-include    System specific include files.  These are
  81.             Commodore proprietary and are distributed 
  82.             under license from Commodore.
  83.  
  84.     os-lib        System specific library files.  These are
  85.             derived from Commodore proprietary libraries
  86.             and are distributed under license from Commodore.
  87.  
  88.  
  89. ==============
  90. GENERAL STATUS
  91. ==============
  92.  
  93.     Distribution    This    Latest
  94.     Name        CD-ROM    Base    Status
  95.     ------------    ------    ------    -----------------
  96.  
  97.     APlusPlus    1.01    1.01    --
  98.     autoconf    2.2    2.2    Updated
  99.     bash        1.13.4    1.14.2    Port incomplete
  100.     bc & dc        1.03    1.03    --
  101.     binutils    1.8.x    2.5.2    --
  102.     binutils    2.5.2    2.5.2    Partial port
  103.     bison        1.22    1.22    --
  104.     brik        2.0    2.0    --
  105.     calc        2.02c    2.02c    --
  106.     cpio        2.3    2.3    --
  107.     cvs        *    1.3    No port integrated yet
  108.     dbmalloc    1.14    1.14    --
  109.     dbug        2.3    2.3    --
  110.     dejagnu        *    1.1.1    No port integrated yet
  111.     diffutils    2.7    2.7    --
  112.     doschk        1.1    1.1    --
  113.     dumphunks    1.0    1.0    Added
  114.     ecc        1.2.1    1.2.1    Added
  115.     ed        0.1    0.2    --
  116.     eispack        1.0    1.0    Added
  117.     elvis        *    1.7    No port integrated yet
  118.     emacs        18.59    19.28    --
  119.     emacs        19.28    19.28    Partial port
  120.     f2c        930428    930428    --
  121.     fileutils    3.12    3.12    --
  122.     findutils    4.1    4.1    --
  123.     finger        *    1.37    No port integrated yet
  124.     flex        2.4.7    2.4.7    --
  125.     fontutils    0.6    0.6    Added
  126.     g77        0.5.13    0.5.13    Added
  127.     gawk        2.15.6    2.15.6    Updated
  128.     gcc        2.6.3    2.6.3    --
  129.     gdb        4.14    4.14    Updated; port incomplete
  130.     gdbm        1.7.3    1.7.3    --
  131.     ghostscript    2.6.1    2.6.1    --
  132.     ghostview    *    1.5    No port integrated yet
  133.     git        4.3.5    4.3.5    No port integrated yet
  134.     glibc        *    1.06    No port integrated yet
  135.     gmp        1.3.2    1.3.2    --
  136.     gnat        2.00    2.03    Updated
  137.     gnuchess    *    4.0.62    No port integrated yet
  138.     gnugo        *    1.1    No port integrated yet
  139.     grep        2.0    2.0    --
  140.     groff        1.09    1.09    --
  141.     gzip        1.2.4    1.2.4    --
  142.     indent        1.9.1    1.9.1    --
  143.     ispell        4.0    4.0    --
  144.     ixemul        40.4    40.4    --
  145.     ixpipe        1.0    1.0    --
  146.     jove        4.14.6    4.14.6    --
  147.     less        252    252    --
  148.     libcurses    8.3    8.3    --
  149.     libg++        2.6.2    2.6.2    --
  150.     libm        5.4    5.4    --
  151.     libnix        0.8    0.8    Updated
  152.     m4        1.4    1.4    --
  153.     make        3.71    3.72.1    --
  154.     mm        *    1.07    No port integrated yet
  155.     mtools        *    2.0.7    No port integrated yet
  156.     nethack        *    3.1.3    No port integrated yet
  157.     octave        1.1.1    1.1.1    Added
  158.     oleo        *    1.3.1b    No port integrated yet
  159.     patch        2.1    2.1    --
  160.     pdksh        4.9    5.1.3    --
  161.     perl        4.036    5.000    --
  162.     rcs        5.6.0.1    5.6.0.1    --
  163.     readline    *    1.1    No port integrated yet
  164.     recode        *    3.2.4    No port integrated yet
  165.     regex        *    0.12    No port integrated yet
  166.     sed        2.05    2.05    --
  167.     sh-utils    1.12    1.12    --
  168.     sharutils    4.1    4.1    --
  169.     tar        1.11.2    1.11.2    --
  170.     termcap        1.2    1.2    --
  171.     texinfo        3.1    3.1    --
  172.     textutils    1.11    1.11    --
  173.     time        *    1.6    No port integrated yet
  174.     tput        *    1.0    No port integrated yet
  175.     unixtex        6.1    6.1    Added
  176.     uucp        *    1.04    No port integrated yet
  177.     wdiff        0.5    0.5    Added
  178.  
  179.  
  180. ==============
  181. GNU C COMPILER
  182. ==============
  183.  
  184. All the versions of gcc look for local header files in LOCAL:include and
  185. LOCAL:os-include, and look for local library files in LOCAL:lib and
  186. LOCAL:os-lib.  This allows you to add local packages that will be found
  187. automatically by gcc, in a location that is writable by you.  Simply
  188. reassign LOCAL: to point to the correct location.
  189.  
  190. Gcc now automatically includes -lamiga in the command line to the linker, so
  191. you can use AmigaDOS specific calls in your code without having to remember
  192. to link with libamiga.a.
  193.  
  194. As of this date, all releases of gcc since 2.3.3 have had broken support for
  195. the -resident option.  This is one reason why gcc 2.3.3 is still included on
  196. the CD-ROM.  To demonstrate the problem, try to bootstrap using "make
  197. bootstrap RESIDENT=-resident".
  198.  
  199.  
  200. ==========
  201. GNU LINKER
  202. ==========
  203.  
  204. A new option "-f" or "-flavor" is used to inform the linker to look in
  205. additional subdirectories for particular "flavors" of libraries, like
  206. libraries compiled with -fresident, libraries compiled with -g, libraries
  207. compiled with -p, etc.  All the flavor args are collected in a list, sorted,
  208. and then used to create additional sudirectories at the end of the standard
  209. library search paths.
  210.  
  211. For example, given the args
  212.  
  213.     "-L mystuff:lib -flavor libx -flavor libb -lmylib"
  214.  
  215. the linker will search for libmylib.a in "mystuff:lib/libb/libx/".
  216.  
  217. In particular, this is the mechanism that is now used to locate the base
  218. relative libraries, which have moved from gcc:blib to gcc:lib/libb.
  219. Eventually there will be other standard flavors of libraries, like -p
  220. compiled and -g compiled libraries, in a subtree like:
  221.  
  222.     gcc:lib/libb/libc.a        -resident
  223.     gcc:lib/libb/libg/libc.a    -resident -g
  224.     gcc:lib/libb/libg/libp/libc.a    -resident -g -p
  225.     gcc:lib/libp/libc.a        -p
  226.     gcc:lib/libg/libp/libc.a    -g -p
  227.  
  228.     etc.
  229.  
  230.  
  231. ============
  232. GNU DEBUGGER
  233. ============
  234.  
  235. GDB 4.12 has been ported to the extent that you can build an AmigaDOS
  236. executable that knows how to load and examine executables from non-AmigaDOS
  237. systems.  Much work remains.  See the gnu:src/diffs/gdb-4.12-README file.
  238.  
  239.  
  240. ======
  241. LIBNIX
  242. ======
  243.  
  244. This is libnix, a static (i.e. link) library for gcc 2.3.3 or above.  It's
  245. not a replacement for ixemul.library (though it's possible to recompile most
  246. of the gcc environment with libnix) but a good thing for amiga specific
  247. development on gcc:
  248.  
  249.     *    It's mostly compatible to SAS's way of handling things, i.e.
  250.     you get even an automatic shared library opening feature and
  251.     some other things you may miss in ixemul.library.
  252.     This also means it's ANSI compliant.
  253.  
  254.     *    It doesn't need any shared libraries than normal Amiga OS ones.
  255.  
  256.     *    It is not copyrighted by the FSF. Therefore you neither need
  257.     to include sources nor objects together with your executable.
  258.     (read the GLGPL _before_ flaming on this statement)
  259.  
  260.     *    And it's short! I was able to compile a 492 byte 'hello, world'
  261.     using normal main.
  262.  
  263.     *    It uses OS20 features whenever necessary.
  264.  
  265. To summarize:
  266.  
  267.     Use ixemul.library for porting Un*x programs, libnix for
  268.     compiling amiga-only programs and gcc is one of the best
  269.     Amiga compilers.
  270.  
  271. ====
  272. TODO
  273. ====
  274.  
  275. This is a list of things that still rem