From 83d4c8fdbf4945768cc02809703c67f7147fa72a Mon Sep 17 00:00:00 2001 From: "David E. O'Brien" Date: Wed, 11 Mar 1998 11:49:14 +0000 Subject: Define __FreeBSD__ to be the major version (rather than empty). Add -fsjlj-exceptions as the default. Requested by: John Fiber --- lang/gcc28/Makefile | 12 +++++++++++- lang/gcc28/files/patch-01 | 18 ++++++++++++++++++ lang/gcc28/files/patch-02 | 24 ++++++++++++++++++++++++ 3 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 lang/gcc28/files/patch-01 create mode 100644 lang/gcc28/files/patch-02 (limited to 'lang') 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 # -# $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 -- cgit v1.2.3