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