diff options
author | gerald <gerald@FreeBSD.org> | 2003-06-17 21:17:12 +0000 |
---|---|---|
committer | gerald <gerald@FreeBSD.org> | 2003-06-17 21:17:12 +0000 |
commit | 7d956f2965ce4fd734b5905cf3e19a6442c2b1d1 (patch) | |
tree | 9404eea82d74cbc1d3acfe364fa32024b8b27a4d /lang/gcc | |
parent | 8a3c8787f68a16ddcc362308b5e0260e3aa2a454 (diff) | |
download | FreeBSD-ports-7d956f2965ce4fd734b5905cf3e19a6442c2b1d1.zip FreeBSD-ports-7d956f2965ce4fd734b5905cf3e19a6442c2b1d1.tar.gz |
Add bounds-checking support using Herman ten Brugge's patches.
PR: 53395
Submitted by: Dan Nelson <dnelson@allantgroup.com>
Diffstat (limited to 'lang/gcc')
-rw-r--r-- | lang/gcc/Makefile | 25 | ||||
-rw-r--r-- | lang/gcc/distinfo | 1 | ||||
-rw-r--r-- | lang/gcc/files/opt.patch-bc | 11 |
3 files changed, 36 insertions, 1 deletions
diff --git a/lang/gcc/Makefile b/lang/gcc/Makefile index 5f58930..8801957 100644 --- a/lang/gcc/Makefile +++ b/lang/gcc/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/gcc/distinfo b/lang/gcc/distinfo index 417b04f..90a6049 100644 --- a/lang/gcc/distinfo +++ b/lang/gcc/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/gcc/files/opt.patch-bc b/lang/gcc/files/opt.patch-bc new file mode 100644 index 0000000..024997f --- /dev/null +++ b/lang/gcc/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) \ |