mirror of
https://github.com/freebsd/freebsd-src
synced 2024-11-05 18:22:52 +00:00
a4cd5630b0
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.
112 lines
3 KiB
Text
112 lines
3 KiB
Text
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
|