| 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 |