home *** CD-ROM | disk | FTP | other *** search
- Tiny Library for GCC
-
- This archive contains all the files necessary to make a small library that
- contains just everything that CLISP needs from external link libraries. It
- works with the GCC-BuRP and GCC-Wild ports, with GCC1 and GCC2. Modify the
- supplied Makefile to add your include paths etc.
-
- Using this library with GCC-Wild makes CLISP (and possibly your programs)
- independent of ixemul.library.
-
-
- This library contains the following funtions: strlen(), set/longjmp(),
- wbmain(), exit().
-
- The setjmp.[ch] are not compatible with the GCC-Wild version, (they are
- compatible with GCC-BuRP). Thus you must be careful with the order of -I
- options (use this libs include before the standard GCC:include). See in the
- Makefile how I used -nodtinc and -nostdlib to prevent gcc from looking at
- the normal places.
-
- wbmain() calls main() after parsing the tool and project ARGS tooltypes and
- opening a window specified by the WINDOW tooltype of the tool icon. Note
- however that the WINDOW filehandle is only available in the BPTR
- Input_handle (or Output_handle, same value) variable. I didn't want to set
- pr_CIS or such fields. Thus it always opens a Window for I/O and lets you
- run as if from CLI (i.e. argc is never 0). If there's no ARGS tooltype for a
- project, the project's name is simply dumped to the argv array. A token of *
- is replaced by the name. Override wbmain() if you don't like this or want to
- save few code:
-
- void wbmain(struct WBStartup *wbmsg) {}
-
- The file lib/gnuarith.o comes from the GCC-BuRP project. It contains low-level
- arithmetic needed by the GNU compiler.
-
- The files lib/_ashldi3.o and lib/_ucmpdi2.o come from GCC-2.5.8.
-
-
- Patches:
-
- GCC-233 contained the following in gcc:os-include/inline/exec.h which is not
- found in gcc-2.5.6. misc/CreatePort() needs it.
- #ifndef __GNUG__
- static __inline struct List *
- NewList(struct List *list)
- {
- list->lh_Tail = 0;
- list->lh_TailPred = (struct Node *)list;
- list->lh_Head = (struct Node *)&list->lh_Tail;
- }
- #endif
-
- The ar found in the gcc-2.5.6-2.5.8 archives doesn't strip dirnames,
- resulting in too long names. Ar from gcc-1.40 and gcc-2.3.3 worked ok.
-
-
- TODO:
-
- The Workbench startup code needs to be enhanced to allow project icons to be
- found in other places than the tool directory. I need a NameFromLock() for
- 1.3 for this to work.
-
- The WB code could set pr_ConsoleTask to make Execute() work under 1.3.
-
- Not remove quotes in tokenize(), useful for LISP.
-
- Handle quotes and Amiga escapes (*) in tokenize().
-
-
- Enjoy,
- Jörg Höhle, 9-Jul-94
-