[8833] | 1 | README.apollo |
---|
| 2 | |
---|
| 3 | Building GCC 2.0 for 680x0 based Apollo systems requires the GNU |
---|
| 4 | assembler (GAS) version 1.38.1, with John Vasta's patches applied. |
---|
| 5 | |
---|
| 6 | If you haven't done so yet, get `gas-1.38.1.tar.Z' from your favourite |
---|
| 7 | GNU distribution site. Furthermore, get `apollo-gas-1.38.1.diffs' |
---|
| 8 | from `labrea.stanford.edu:/pub/gnu', apply the patches, compile and |
---|
| 9 | install gas (under the name as). This should go through without any |
---|
| 10 | problems. |
---|
| 11 | |
---|
| 12 | After switching into the BSD environment, you can configure GCC 2.0 |
---|
| 13 | with the command |
---|
| 14 | |
---|
| 15 | % ./configure m68k-apollo-bsd |
---|
| 16 | |
---|
| 17 | The Apollo's `/usr/include/setjmp.h' uses a nonstandard `#options()' |
---|
| 18 | construct. You should create a local copy of this file and remove |
---|
| 19 | these constructs from the declarations of SIGSETJMP and SIGLONGJMP. |
---|
| 20 | |
---|
| 21 | The Apollo's `/usr/include/sys/types.h' (BSD Version) doesn't allow |
---|
| 22 | to test for the definition of `size_t'. This should be fixed by |
---|
| 23 | |
---|
| 24 | #ifndef _SIZE_T |
---|
| 25 | #define _SIZE_T |
---|
| 26 | typedef long size_t; |
---|
| 27 | #endif |
---|
| 28 | |
---|
| 29 | The script `patch-apollo-includes' fixes these two problems, but does |
---|
| 30 | _not_ pretend to be a full fledged `fixincludes' for this system. |
---|
| 31 | |
---|
| 32 | If you now follow the standard GCC installation instructions, building |
---|
| 33 | GCC 2.0 (including G++ 2.0) should proceed without any problems. |
---|
| 34 | |
---|
| 35 | NB: Debugging is not yet supported for the Apollo. If someone wants |
---|
| 36 | to do a _big_ favour to the Apollo users, he/she should consider |
---|
| 37 | porting the Binary File Description library (BFD) to the Apollo. |
---|
| 38 | This library can be found in the gdb-4.x distributions or in the |
---|
| 39 | binutils-1.9x distributions. |
---|
| 40 | |
---|
| 41 | |
---|
| 42 | |
---|
| 43 | |
---|
| 44 | #!/bin/sh |
---|
| 45 | # patch-apollo-includes -- fix some (but not all!) Apollo brain damage. |
---|
| 46 | |
---|
| 47 | FILES_TO_PATCH='sys/types.h setjmp.h' |
---|
| 48 | |
---|
| 49 | mkdir sys |
---|
| 50 | |
---|
| 51 | for i in $FILES_TO_PATCH; |
---|
| 52 | do |
---|
| 53 | cp /bsd4.3/usr/include/$i ./$i |
---|
| 54 | done |
---|
| 55 | |
---|
| 56 | patch -b -apollo <<'EOP' |
---|
| 57 | *** /bsd4.3/usr/include/sys/types.h Fri Apr 8 20:29:06 1988 |
---|
| 58 | --- sys/types.h Wed Feb 26 21:17:57 1992 |
---|
| 59 | *************** |
---|
| 60 | *** 38,44 **** |
---|
| 61 | --- 38,47 ---- |
---|
| 62 | typedef char * caddr_t; |
---|
| 63 | typedef u_long ino_t; |
---|
| 64 | typedef long swblk_t; |
---|
| 65 | + #ifndef _SIZE_T |
---|
| 66 | + #define _SIZE_T |
---|
| 67 | typedef long size_t; |
---|
| 68 | + #endif |
---|
| 69 | typedef long time_t; |
---|
| 70 | typedef long dev_t; |
---|
| 71 | typedef long off_t; |
---|
| 72 | *** /bsd4.3/usr/include/setjmp.h Fri Feb 3 21:40:21 1989 |
---|
| 73 | --- setjmp.h Sun Feb 23 19:06:55 1992 |
---|
| 74 | *************** |
---|
| 75 | *** 24,30 **** |
---|
| 76 | --- 24,39 ---- |
---|
| 77 | #endif |
---|
| 78 | |
---|
| 79 | |
---|
| 80 | + #ifdef __GNUC__ |
---|
| 81 | #ifdef _PROTOTYPES |
---|
| 82 | + extern int sigsetjmp (sigjmp_buf env, int savemask); |
---|
| 83 | + extern void siglongjmp (sigjmp_buf env, int val); |
---|
| 84 | + #else |
---|
| 85 | + extern int sigsetjmp(); |
---|
| 86 | + extern void siglongjmp(); |
---|
| 87 | + #endif /* _PROTOTYPES */ |
---|
| 88 | + #else /* not __GNUC__ */ |
---|
| 89 | + #ifdef _PROTOTYPES |
---|
| 90 | extern int sigsetjmp( |
---|
| 91 | sigjmp_buf env, |
---|
| 92 | int savemask |
---|
| 93 | *************** |
---|
| 94 | *** 37,43 **** |
---|
| 95 | extern int sigsetjmp() #options(abnormal); |
---|
| 96 | extern void siglongjmp() #options(noreturn); |
---|
| 97 | #endif /* _PROTOTYPES */ |
---|
| 98 | ! |
---|
| 99 | #undef _PROTOTYPES |
---|
| 100 | |
---|
| 101 | #ifdef __cplusplus |
---|
| 102 | --- 46,52 ---- |
---|
| 103 | extern int sigsetjmp() #options(abnormal); |
---|
| 104 | extern void siglongjmp() #options(noreturn); |
---|
| 105 | #endif /* _PROTOTYPES */ |
---|
| 106 | ! #endif /* not __GNUC__ */ |
---|
| 107 | #undef _PROTOTYPES |
---|
| 108 | |
---|
| 109 | #ifdef __cplusplus |
---|
| 110 | EOP |
---|
| 111 | |
---|
| 112 | exit 0 |
---|