README.apollo Building GCC 2.0 for 680x0 based Apollo systems requires the GNU assembler (GAS) version 1.38.1, with John Vasta's patches applied. If you haven't done so yet, get `gas-1.38.1.tar.Z' from your favourite GNU distribution site. Furthermore, get `apollo-gas-1.38.1.diffs' from `labrea.stanford.edu:/pub/gnu', apply the patches, compile and install gas (under the name as). This should go through without any problems. After switching into the BSD environment, you can configure GCC 2.0 with the command % ./configure m68k-apollo-bsd The Apollo's `/usr/include/setjmp.h' uses a nonstandard `#options()' construct. You should create a local copy of this file and remove these constructs from the declarations of SIGSETJMP and SIGLONGJMP. The Apollo's `/usr/include/sys/types.h' (BSD Version) doesn't allow to test for the definition of `size_t'. This should be fixed by #ifndef _SIZE_T #define _SIZE_T typedef long size_t; #endif The script `patch-apollo-includes' fixes these two problems, but does _not_ pretend to be a full fledged `fixincludes' for this system. If you now follow the standard GCC installation instructions, building GCC 2.0 (including G++ 2.0) should proceed without any problems. NB: Debugging is not yet supported for the Apollo. If someone wants to do a _big_ favour to the Apollo users, he/she should consider porting the Binary File Description library (BFD) to the Apollo. This library can be found in the gdb-4.x distributions or in the binutils-1.9x distributions. #!/bin/sh # patch-apollo-includes -- fix some (but not all!) Apollo brain damage. FILES_TO_PATCH='sys/types.h setjmp.h' mkdir sys for i in $FILES_TO_PATCH; do cp /bsd4.3/usr/include/$i ./$i done patch -b -apollo <<'EOP' *** /bsd4.3/usr/include/sys/types.h Fri Apr 8 20:29:06 1988 --- sys/types.h Wed Feb 26 21:17:57 1992 *************** *** 38,44 **** --- 38,47 ---- typedef char * caddr_t; typedef u_long ino_t; typedef long swblk_t; + #ifndef _SIZE_T + #define _SIZE_T typedef long size_t; + #endif typedef long time_t; typedef long dev_t; typedef long off_t; *** /bsd4.3/usr/include/setjmp.h Fri Feb 3 21:40:21 1989 --- setjmp.h Sun Feb 23 19:06:55 1992 *************** *** 24,30 **** --- 24,39 ---- #endif + #ifdef __GNUC__ #ifdef _PROTOTYPES + extern int sigsetjmp (sigjmp_buf env, int savemask); + extern void siglongjmp (sigjmp_buf env, int val); + #else + extern int sigsetjmp(); + extern void siglongjmp(); + #endif /* _PROTOTYPES */ + #else /* not __GNUC__ */ + #ifdef _PROTOTYPES extern int sigsetjmp( sigjmp_buf env, int savemask *************** *** 37,43 **** extern int sigsetjmp() #options(abnormal); extern void siglongjmp() #options(noreturn); #endif /* _PROTOTYPES */ ! #undef _PROTOTYPES #ifdef __cplusplus --- 46,52 ---- extern int sigsetjmp() #options(abnormal); extern void siglongjmp() #options(noreturn); #endif /* _PROTOTYPES */ ! #endif /* not __GNUC__ */ #undef _PROTOTYPES #ifdef __cplusplus EOP exit 0