ports/53395: [PATCH] gcc 3.3 bounds-checking
Dan Nelson
dnelson at allantgroup.com
Tue Jun 17 06:20:09 UTC 2003
>Number: 53395
>Category: ports
>Synopsis: [PATCH] gcc 3.3 bounds-checking
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: change-request
>Submitter-Id: current-users
>Arrival-Date: Mon Jun 16 23:20:06 PDT 2003
>Closed-Date:
>Last-Modified:
>Originator: Dan Nelson
>Release: FreeBSD 5.1-CURRENT i386
>Organization:
The Allant Group
>Environment:
System: FreeBSD dan.emsphone.com 5.1-CURRENT FreeBSD 5.1-CURRENT #273: Tue Jun 10 09:45:20 CDT 2003 dan at dan.emsphone.com:/usr/src/sys/i386/compile/DANSMP i386
>Description:
Patches to the lang/gcc33 port that allow the user to build with Herman
ten Brugge's bounds-checking patches located at
http://web.inter.nl.net/hcc/Haj.Ten.Brugge/
>How-To-Repeat:
>Fix:
Index: Makefile
===================================================================
RCS file: /home/ncvs/ports/lang/gcc33/Makefile,v
retrieving revision 1.141
diff -u -r1.141 Makefile
--- Makefile 15 May 2003 12:56:34 -0000 1.141
+++ Makefile 17 Jun 2003 06:11:01 -0000
@@ -14,7 +14,8 @@
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 @@
MAINTAINER?= ports at 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 @@
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
@@ -110,6 +124,15 @@
${MKDIR} ${SRCDIR}
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]";#' \
Index: distinfo
===================================================================
RCS file: /home/ncvs/ports/lang/gcc33/distinfo,v
retrieving revision 1.67
diff -u -r1.67 distinfo
--- distinfo 15 May 2003 12:56:34 -0000 1.67
+++ distinfo 28 May 2003 21:08:50 -0000
@@ -4,3 +4,4 @@
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
Index: files/opt.patch-bc
===================================================================
RCS file: files/opt.patch-bc
diff -N files/opt.patch-bc
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ files/opt.patch-bc 28 May 2003 20:49:48 -0000
@@ -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) \
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list