]>
Commit | Line | Data |
---|---|---|
7ab742b1 JW |
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 |