aboutsummaryrefslogtreecommitdiffstats
path: root/lang/gcc40
diff options
context:
space:
mode:
authorgerald <gerald@FreeBSD.org>2003-06-18 05:17:12 +0800
committergerald <gerald@FreeBSD.org>2003-06-18 05:17:12 +0800
commit7d956f2965ce4fd734b5905cf3e19a6442c2b1d1 (patch)
tree9404eea82d74cbc1d3acfe364fa32024b8b27a4d /lang/gcc40
parent8a3c8787f68a16ddcc362308b5e0260e3aa2a454 (diff)
downloadfreebsd-ports-gnome-7d956f2965ce4fd734b5905cf3e19a6442c2b1d1.tar.gz
freebsd-ports-gnome-7d956f2965ce4fd734b5905cf3e19a6442c2b1d1.tar.zst
freebsd-ports-gnome-7d956f2965ce4fd734b5905cf3e19a6442c2b1d1.zip
Add bounds-checking support using Herman ten Brugge's patches.
PR: 53395 Submitted by: Dan Nelson <dnelson@allantgroup.com>
Diffstat (limited to 'lang/gcc40')
-rw-r--r--lang/gcc40/Makefile25
-rw-r--r--lang/gcc40/distinfo1
-rw-r--r--lang/gcc40/files/opt.patch-bc11
3 files changed, 36 insertions, 1 deletions
diff --git a/lang/gcc40/Makefile b/lang/gcc40/Makefile
index 5f5893001f68..880195787087 100644
--- a/lang/gcc40/Makefile
+++ b/lang/gcc40/Makefile
@@ -14,7 +14,8 @@ PORTVERSION= 3.3
PORTREVISION= ${SNAPDATE:S/-//g}
CATEGORIES= lang java
VERSIONSTRING= ${PORTVERSION}
-MASTER_SITES= ${MASTER_SITE_GCC}
+MASTER_SITES= ${MASTER_SITE_GCC} \
+ http://web.inter.NL.net/hcc/Haj.Ten.Brugge/:bc
MASTER_SITE_SUBDIR= releases/gcc-${VERSIONSTRING}
.if !defined(CVS_DATE)
DISTFILES= \
@@ -29,6 +30,14 @@ DISTFILES= \
MAINTAINER?= ports@FreeBSD.org
COMMENT?= GNU Compiler Collection 3.3
+.if defined (WITH_BOUNDSCHECKING)
+# Fetch another file, but don't extract it. Also add another patchfile.
+BCPATCH= bounds-checking-gcc-3.3-1.00.patch.bz2
+DISTFILES+= ${BCPATCH}:bc
+EXTRACT_ONLY= ${DISTFILES:S/${BCPATCH}:bc//}
+EXTRA_PATCHES= ${FILESDIR}/opt.patch-bc
+.endif
+
LATEST_LINK?= gcc33${PKGNAMESUFFIX}
USE_BZIP2= yes
@@ -82,6 +91,11 @@ MAN7= fsf-funding.7 gfdl.7 gpl.7
pre-fetch:
@${ECHO} "Making GCC ${DISTNAME:S/^gcc-//} for ${OPSYS} ${OSREL} ${PORTOBJFORMAT} target ${CONFIGURE_TARGET}"
+.if !defined(WITH_BOUNDSCHECKING)
+ @${ECHO_MSG} "You can enable fine-grained bounds-checking support for compiled C programs"
+ @${ECHO_MSG} "by defining WITH_BOUNDSCHECKING. Compile and link with \"-fbounds-checking\""
+ @${ECHO_MSG} "to use."
+.endif
.if defined(CVS_DATE)
NO_CHECKSUM= yes
@@ -111,6 +125,15 @@ do-extract:
cd ${DISTDIR}/${DIST_SUBDIR}/${DIST_SUBDIR ; pax -pe -rwt . ${SRCDIR}
.endif # CVS_DATE
+.if defined(WITH_BOUNDSCHECKING)
+# Extract bounds-checking patch, removing the ada parts of the patch with sed.
+pre-patch:
+ cd ${_DISTDIR} ; \
+ ${BZCAT} ${BCPATCH} | \
+ ${SED} -e '/^--- .*ada/,/^diff/d' | \
+ ${PATCH} -d ${PATCH_WRKSRC} -E -p1 --quiet
+.endif
+
post-patch:
@${REINPLACE_CMD} -e 's#\(const char version_string.*\)";#\1 [FreeBSD]";#' \
${SRCDIR}/gcc/version.c
diff --git a/lang/gcc40/distinfo b/lang/gcc40/distinfo
index 417b04f2d4a6..90a6049d07ac 100644
--- a/lang/gcc40/distinfo
+++ b/lang/gcc40/distinfo
@@ -4,3 +4,4 @@ MD5 (gcc-g77-3.3.tar.bz2) = 36ce1fafb8498f9e40ded5dbad5ddac6
MD5 (gcc-java-3.3.tar.bz2) = 8c789ac16cd54925c52fad174b5b533e
MD5 (gcc-objc-3.3.tar.bz2) = 3eb06192c9e3521a2a2d70e1b73cb900
MD5 (gcc-testsuite-3.3.tar.bz2) = c4b5e9aa0f46ce34559f14d11f5b9044
+MD5 (bounds-checking-gcc-3.3-1.00.patch.bz2) = b3ac2dbb902f78ffd3db3e38cab9762b
diff --git a/lang/gcc40/files/opt.patch-bc b/lang/gcc40/files/opt.patch-bc
new file mode 100644
index 000000000000..024997f4c17c
--- /dev/null
+++ b/lang/gcc40/files/opt.patch-bc
@@ -0,0 +1,11 @@
+--- gcc/bounds/lib/Makefile.orig Tue May 20 16:35:05 2003
++++ gcc/bounds/lib/Makefile Tue May 20 16:35:19 2003
+@@ -14,7 +14,7 @@
+ SUBDIR_INCLUDES = -I../.. -I$(srcdir)/bounds/lib -I$(srcdir) -I$(srcdir)/config -I$(srcdir)/../include
+
+ # Use this on System V.
+-CPPFLAGS = -DUSG
++CPPFLAGS = -DBSD4_2
+
+ .c.o:
+ $(GCC_FOR_TARGET) -Wall $(OPTIMIZE) $(CPPFLAGS) \