mirror of
https://github.com/freebsd/freebsd-src.git
synced 2024-12-04 23:19:00 +00:00
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
|