d4691e641b
non-i386, non-unix, and generatable files have been trimmed, but can easily be added in later if needed. gcc-2.7.2.1 will follow shortly, it's a very small delta to this and it's handy to have both available for reference for such little cost. The freebsd-specific changes will then be committed, and once the dust has settled, the bmakefiles will be committed to use this code.
113 lines
3.0 KiB
Plaintext
113 lines
3.0 KiB
Plaintext
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
|