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