summaryrefslogtreecommitdiff
path: root/lang
diff options
context:
space:
mode:
authorDavid E. O'Brien <obrien@FreeBSD.org>1998-03-11 11:49:14 +0000
committerDavid E. O'Brien <obrien@FreeBSD.org>1998-03-11 11:49:14 +0000
commit83d4c8fdbf4945768cc02809703c67f7147fa72a (patch)
tree9d4dd488479152f9ef27607091eb316b2bbc4dbb /lang
parentUpgrade to 2.4.4. (diff)
Define __FreeBSD__ to be the major version (rather than empty).
Add -fsjlj-exceptions as the default. Requested by: John Fiber
Notes
Notes: svn path=/head/; revision=10113
Diffstat (limited to 'lang')
-rw-r--r--lang/gcc28/Makefile12
-rw-r--r--lang/gcc28/files/patch-0118
-rw-r--r--lang/gcc28/files/patch-0224
3 files changed, 53 insertions, 1 deletions
diff --git a/lang/gcc28/Makefile b/lang/gcc28/Makefile
index b31897f743be..152c7100c5d4 100644
--- a/lang/gcc28/Makefile
+++ b/lang/gcc28/Makefile
@@ -4,7 +4,7 @@
# Date created: 17 Jan 1998
# Whom: David O'Brien <obrien@NUXI.com>
#
-# $Id: Makefile,v 1.4 1998/03/06 05:54:19 obrien Exp $
+# $Id: Makefile,v 1.6 1998/03/10 06:23:31 obrien Exp $
#
DISTNAME= gcc-2.8.1
@@ -26,6 +26,16 @@ MAN1= cccp28.1 g++28.1 gcc28.1
pre-fetch:
@${ECHO} "GCC 2.8 for ${OSNAME} ${GNUOSREL}"
+post-patch:
+ @(cd ${WRKSRC}/config/i386/ ; \
+ MAJ=`sysctl -n kern.osreldate | ${SED} -e '/.....$$/s///'` ; \
+ ${MV} freebsd.h freebsd.h.in ; \
+ ${SED} -e "s:__FreeBSD__:__FreeBSD__=$${MAJ}:" freebsd.h.in \
+ >freebsd.h ; \
+ ${MV} freebsd-elf.h freebsd-elf.h.in ; \
+ ${SED} -e "s:__FreeBSD__:__FreeBSD__=$${MAJ}:" freebsd-elf.h.in \
+ >freebsd-elf.h)
+
pre-install:
@${SED} -e 's:%GNUHOST%:${GNUHOST}:' ${PKGDIR}/PLIST \
> ${PLIST}
diff --git a/lang/gcc28/files/patch-01 b/lang/gcc28/files/patch-01
new file mode 100644
index 000000000000..7807f16b594b
--- /dev/null
+++ b/lang/gcc28/files/patch-01
@@ -0,0 +1,18 @@
+--- config/i386/freebsd.h.orig Sun Oct 19 09:31:05 1997
++++ config/i386/freebsd.h Wed Mar 11 03:04:25 1998
+@@ -37,6 +37,15 @@
+ #undef CPP_PREDEFINES
+ #define CPP_PREDEFINES "-Dunix -Di386 -D__FreeBSD__ -D__386BSD__ -Asystem(unix) -Asystem(FreeBSD) -Acpu(i386) -Amachine(i386)"
+
++/* need "-fsjlj-exceptions" (use setjmp/longjmp for exceptions) the default.
++ The standard exception implementation reliably
++ dumps core under FreeBSD. Users can put "-fno-sjlj-exceptions" on
++ the command line if they really want to override the new default. */
++#ifdef CC1PLUS_SPEC
++#error "CC1PLUS_SPEC needs ``-fsjlj-exceptions'', but is already defined."
++#endif
++#define CC1PLUS_SPEC "-fsjlj-exceptions"
++
+ /* Like the default, except no -lg. */
+ #define LIB_SPEC "%{!p:%{!pg:-lc}}%{p:-lc_p}%{pg:-lc_p}"
+
diff --git a/lang/gcc28/files/patch-02 b/lang/gcc28/files/patch-02
new file mode 100644
index 000000000000..217ef1d83b89
--- /dev/null
+++ b/lang/gcc28/files/patch-02
@@ -0,0 +1,24 @@
+--- config/i386/freebsd-elf.h.orig Fri Dec 5 04:15:34 1997
++++ config/i386/freebsd-elf.h Wed Mar 11 03:05:09 1998
+@@ -140,10 +140,20 @@
+ #define WCHAR_TYPE_SIZE BITS_PER_WORD
+
+ #undef CPP_PREDEFINES
+-#define CPP_PREDEFINES "-Dunix -D__ELF__ -D__FreeBSD__=2 -Asystem(FreeBSD)"
++#define CPP_PREDEFINES "-Dunix -D__ELF__ -D__FreeBSD__ -Asystem(FreeBSD)"
+
+ #undef CPP_SPEC
+ #define CPP_SPEC "%(cpp_cpu) %[cpp_cpu] %{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} %{posix:-D_POSIX_SOURCE}"
++
++
++/* need "-fsjlj-exceptions" (use setjmp/longjmp for exceptions) the default.
++ The standard exception implementation reliably
++ dumps core under FreeBSD. Users can put "-fno-sjlj-exceptions" on
++ the command line if they really want to override the new default. */
++#ifdef CC1PLUS_SPEC
++#error "CC1PLUS_SPEC needs ``-fsjlj-exceptions'', but is already defined."
++#endif
++#define CC1PLUS_SPEC "-fsjlj-exceptions"
+
+ #undef LIB_SPEC
+ #if 1