home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 10 / Fresh_Fish_10_2352.bin / gnu / readme < prev    next >
Text File  |  1995-08-20  |  10KB  |  322 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 8/20/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 can be found in the GNU-src directory on this CD.  This
  27. includes the original FSF (or other) baseline source, patches to the
  28. baseline source, and the fully patched AmigaDOS sources.
  29.  
  30. ==========
  31. STACK SIZE
  32. ==========
  33.  
  34.             *** IMPORTANT ***
  35.  
  36.     Some of the GNU utilities, gcc in particular, require a
  37.     very large stack.  You need to arrange that the CLI/Shell
  38.     or whatever you run these programs from has a large stack
  39.     set.  In a CLI you can set this with a command of the
  40.     form "stack 100000" (400000 is what we use).  You can also
  41.     put this command in your S:Shell-Startup file to get large
  42.     stacks for all CLI/Shell startups, without having to 
  43.     remember to manually set the stack each time.  Really huge
  44.     compiles, like recompiling the compiler itself, may require
  45.     even more stack space (like 300-800 Kb).  Work is in
  46.     progress to include automatic stack growth code in gcc,
  47.     so this requirement will hopefully disappear in a future
  48.     release.
  49.  
  50.  
  51. =========
  52. STRUCTURE
  53. =========
  54.  
  55. Important subdirectories are:
  56.  
  57.     amigados    ? (gcc/g++ uses this for something...)
  58.  
  59.     bin        Where the GNU executables go, like /bin on UNIX.
  60.  
  61.     etc        Equivalent to /etc on UNIX.
  62.  
  63.     guide        AmigaGuide versions of info files.
  64.  
  65.     include        Include files used by gcc, like /usr/include on UNIX
  66.  
  67.     info        Info files.
  68.  
  69.     lib        Library tree, like /usr/lib on UNIX.
  70.  
  71.     man        Manual pages, like /usr/man on UNIX
  72.  
  73.     manifests    Lists that subdivide this tree up into important
  74.             subsets for individual distribution, such as all
  75.             the files that comprise a binary distribution of
  76.             the GNU C compiler.
  77.  
  78.     os-include    System specific include files.  These are
  79.             Commodore proprietary and are distributed 
  80.             under license from Commodore.
  81.  
  82.     os-lib        System specific library files.  These are
  83.             derived from Commodore proprietary libraries
  84.             and are distributed under license from Commodore.
  85.  
  86.  
  87. ==============
  88. GENERAL STATUS
  89. ==============
  90.  
  91.     Distribution    This    Latest
  92.     Name        CD-ROM    Base    Status
  93.     ------------    ------    ------    -----------------
  94.  
  95.     APlusPlus    1.01    1.01    --
  96.     autoconf    2.4    2.4    Updated
  97.     bash        1.13.4    1.14.2    Port incomplete
  98.     bc & dc        1.03    1.03    --
  99.     binutils    1.8.x    2.5.2    --
  100.     binutils    2.5.2    2.5.2    Partial port
  101.     bison        1.24    1.24    Updated
  102.     brik        2.0    2.0    --
  103.     calc        2.02c    2.02c    --
  104.     cpio        2.3    2.3    --
  105.     cvs        1.5    1.5    Added
  106.     dbmalloc    1.14    1.14    --
  107.     dbug        2.3    2.3    --
  108.     dejagnu        1.2    1.2    Added (partial port only)
  109.     diffutils    2.7    2.7    --
  110.     doschk        1.1    1.1    --
  111.     dumphunks    1.0    1.0    --
  112.     ecc        1.2.1    1.2.1    --
  113.     ed        0.2    0.2    Updated
  114.     eispack        1.0    1.0    --
  115.     elvis        *    1.7    No port integrated yet
  116.     emacs        18.59    19.28    --
  117.     emacs        19.28    19.28    Partial port
  118.     f2c        930428    930428    --
  119.     fifo        38.0    38.0    Added
  120.     fileutils    3.12    3.12    --
  121.     findutils    4.1    4.1    --
  122.     finger        *    1.37    No port integrated yet
  123.     flex        2.5.2    2.5.2    Updated
  124.     fontutils    0.6    0.6    --
  125.     g77        0.5.15    0.5.15    Updated
  126.     gawk        2.15.6    2.15.6    --
  127.     gcc        2.7.0    2.7.0    Updated
  128.     gdb        4.14    4.14    Port incomplete
  129.     gdbm        1.7.3    1.7.3    --
  130.     ghostscript    2.6.2    2.6.2    Updated
  131.     ghostview    *    1.5    No port integrated yet
  132.     git        4.3.5    4.3.5    No port integrated yet
  133.     glibc        *    1.06    No port integrated yet
  134.     gmp        1.3.2    1.3.2    --
  135.     gnat        2.06    2.06    Updated
  136.     gnuchess    *    4.0.62    No port integrated yet
  137.     gnugo        *    1.1    No port integrated yet
  138.     grep        2.0    2.0    --
  139.     groff        1.09    1.09    --
  140.     gzip        1.2.4    1.2.4    --
  141.     indent        1.9.1    1.9.1    --
  142.     ispell        4.0    4.0    --
  143.     ixemul        41.2    41.2    Updated
  144.     ixpipe        1.0    1.0    --
  145.     ixprefs        1.2    1.2    Added
  146.     jove        4.14.6    4.14.6    --
  147.     less        290    290    Updated
  148.     libcurses    8.3    8.3    --
  149.     libg++        2.7.0    2.7.0    Updated
  150.     libm        5.4    5.4    --
  151.     libnix        1.0    1.0    Updated
  152.     m4        1.4    1.4    --
  153.     make        3.74    3.74    Updated
  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    --
  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.     ptx        0.4    0.4    Added
  163.     rcs        5.7    5.7    Updated
  164.     readline    *    1.1    No port integrated yet
  165.     recode        *    3.2.4    No port integrated yet
  166.     regex        *    0.12    No port integrated yet
  167.     sed        2.05    2.05    --
  168.     sh-utils    1.12    1.12    --
  169.     sharutils    4.1    4.1    --
  170.     superopt    2.5    2.5    Added
  171.     tar        1.11.8    1.11.8    Updated
  172.     termcap        1.2    1.2    --
  173.     texinfo        3.6    3.6    Updated
  174.     textutils    1.12    1.12    Updated
  175.     tile-forth    2.1    2.1    Added
  176.     time        *    1.6    No port integrated yet
  177.     tput        *    1.0    No port integrated yet
  178.     unixtex        6.1    6.1    --
  179.     uucp        *    1.04    No port integrated yet
  180.     wdiff        0.5    0.5    --
  181.  
  182.  
  183. ==============
  184. GNU C COMPILER
  185. ==============
  186.  
  187. All the versions of gcc look for local header files in LOCAL:include and
  188. LOCAL:os-include, and look for local library files in LOCAL:lib and
  189. LOCAL:os-lib.  This allows you to add local packages that will be found
  190. automatically by gcc, in a location that is writable by you.  Simply
  191. reassign LOCAL: to point to the correct location.
  192.  
  193. Gcc now automatically includes -lamiga in the command line to the linker, so
  194. you can use AmigaDOS specific calls in your code without having to remember
  195. to link with libamiga.a.
  196.  
  197. ==========
  198. GNU LINKER
  199. ==========
  200.  
  201. A new option "-f" or "-flavor" is used to inform the linker to look in
  202. additional subdirectories for particular "flavors" of libraries, like
  203. libraries compiled with -fresident, libraries compiled with -g, libraries
  204. compiled with -p, etc.  All the flavor args are collected in a list, sorted,
  205. and then used to create additional sudirectories at the end of the standard
  206. library search paths.
  207.  
  208. For example, given the args
  209.  
  210.     "-L mystuff:lib -flavor libx -flavor libb -lmylib"
  211.  
  212. the linker will search for libmylib.a in "mystuff:lib/libb/libx/".
  213.  
  214. In particular, this is the mechanism that is now used to locate the base
  215. relative libraries, which have moved from gcc:blib to gcc:lib/libb.
  216. Eventually there will be other standard flavors of libraries, like -p
  217. compiled and -g compiled libraries, in a subtree like:
  218.  
  219.     gcc:lib/libb/libc.a        -resident
  220.     gcc:lib/libb/libg/libc.a    -resident -g
  221.     gcc:lib/libb/libg/libp/libc.a    -resident -g -p
  222.     gcc:lib/libp/libc.a        -p
  223.     gcc:lib/libg/libp/libc.a    -g -p
  224.  
  225.     etc.
  226.  
  227.  
  228. ============
  229. GNU DEBUGGER
  230. ============
  231.  
  232. GDB 4.12 has been ported to the extent that you can build an AmigaDOS
  233. executable that knows how to load and examine executables from non-AmigaDOS
  234. systems.  Much work remains.  See the gnu:src/diffs/gdb-4.12-README file.
  235.  
  236.  
  237. ======
  238. LIBNIX
  239. ======
  240.  
  241. This is libnix, a static (i.e. link) library for gcc 2.3.3 or above.  It's
  242. not a replacement for ixemul.library (though it's possible to recompile most
  243. of the gcc environment with libnix) but a good thing for amiga specific
  244. development on gcc:
  245.  
  246.     *    It's mostly compatible to SAS's way of handling things, i.e.
  247.     you get even an automatic shared library opening feature and
  248.     some other things you may miss in ixemul.library.
  249.     This also means it's ANSI compliant.
  250.  
  251.     *    It doesn't need any shared libraries than normal Amiga OS ones.
  252.  
  253.     *    It is not copyrighted by the FSF. Therefore you neither need
  254.     to include sources nor objects together with your executable.
  255.     (read the GLGPL _before_ flaming on this statement)
  256.  
  257.     *    And it's short! I was able to compile a 492 byte 'hello, world'
  258.     using normal main.
  259.  
  260.     *    It uses OS20 features whenever necessary.
  261.  
  262. To summarize:
  263.  
  264.     Use ixemul.library for porting Un*x programs, libnix for
  265.     compiling amiga-only programs and gcc is one of the best
  266.     Amiga compilers.
  267.  
  268. ====
  269. TODO
  270. ====
  271.  
  272. This is a list of things that still remain to be done for future releases,
  273. and/or comments about future directions.
  274.  
  275.     *    Beta versions of gcc that use separate 68020/030/040 binaries
  276.     and libraries are