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