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