ports/71832: Default Valgrind suppresion files for different FreeBSD releases

Simon Barner barner at gmx.de
Mon Dec 20 22:15:18 UTC 2004


I have modified Frerich's second implementation of an automatic
supression file generator, so that emtpy suppression files are not
installed.

Currently, neither FreeBSD 4.11-RC nor 5-STABLE need suppression files,
but I think it's a good idea to have Frerich Raabe (please give him
credits in the commit message!) in the port, just in case valgrind
default suppression should be necessary on future versions of FreeBSD.

Additionally, for valgrind-snapshot, the plist was fixed on FreeBSD 4!

The patches for devel/valgrind and devel/valgrind-snapshot follow...

-- valgrind.patch begins here
diff -ruN valgrind.orig/Makefile valgrind/Makefile
--- valgrind.orig/Makefile	Sun Dec 19 20:16:18 2004
+++ valgrind/Makefile	Mon Dec 20 23:00:33 2004
@@ -7,7 +7,7 @@
 
 PORTNAME=	valgrind
 PORTVERSION=	352
-PORTREVISION=	2
+PORTREVISION=	3
 CATEGORIES=	devel
 MASTER_SITES=	http://www.rabson.org/
 DISTNAME=	${PORTNAME}-stable-${PORTVERSION}
@@ -66,12 +66,26 @@
 .endif
 
 post-install:
-	${INSTALL_DATA} ${WRKSRC}/coregrind/vg_unistd.h \
+	@${INSTALL_DATA} ${WRKSRC}/coregrind/vg_unistd.h \
 		${PREFIX}/include/valgrind
 
+	@yes | ${PREFIX}/bin/valgrind --tool=memcheck --gen-suppressions=yes true \
+		| ${SED} -e 's,.*{$$,{,'  \
+		| ${GREP} -v '^=' \
+		> ${WRKDIR}/freebsd-default.supp || \
+		${RM} ${WRKDIR}/freebsd-default.supp
+
 	@${ECHO} ""
 	@${ECHO} ""
-	@${CAT} ${PKGMESSAGE}
+	@${CAT} ${PKGMESSAGE} | ${SED} -e 's,%%PREFIX%%,${PREFIX},g'
 	@${ECHO} ""
+
+.if exists(${WRKDIR}/freebsd-default.supp)
+	@${INSTALL_DATA} ${WRKDIR}/freebsd-default.supp \
+		${PREFIX}/lib/valgrind
+PLIST_SUB+=	VALGRIND_SUPPFILE=""
+.else
+PLIST_SUB+=	VALGRIND_SUPPFILE="@comment "
+.endif
 
 .include <bsd.port.post.mk>
diff -ruN valgrind.orig/pkg-message valgrind/pkg-message
--- valgrind.orig/pkg-message	Sun Dec 19 20:16:18 2004
+++ valgrind/pkg-message	Mon Dec 20 23:01:17 2004
@@ -7,3 +7,13 @@
 
       As a workaround you can use the devel/valgrind-snapshot port, which is
       based on a more recent snapshot.
+
+Note 2: A sample suppression file might have been installed to \
+      %%PREFIX%%/etc/freebsd-default.supp. It makes Valgrind hide warnings
+      caused by flawed code sequences - if any - in your system libraries,
+      so that you can concentrate on the warnings issued for your own code.
+
+      To use these suppressions, either pass
+      --suppressions=%%PREFIX%%/etc/freebsd-default.supp
+      to Valgrind on the commandline, or add that line to your
+      ~/.valgrindrc file, which is the recommended way.
diff -ruN valgrind.orig/pkg-plist valgrind/pkg-plist
--- valgrind.orig/pkg-plist	Sun Dec 19 20:16:18 2004
+++ valgrind/pkg-plist	Mon Dec 20 22:58:38 2004
@@ -36,6 +36,7 @@
 lib/valgrind/xfree-3.supp
 lib/valgrind/xfree-4.supp
 libdata/pkgconfig/valgrind.pc
+%%VALGRIND_SUPPFILE%%etc/freebsd-default.supp
 %%PORTDOCS%%%%DOCSDIR%%/ac_main.html
 %%PORTDOCS%%%%DOCSDIR%%/cc_main.html
 %%PORTDOCS%%%%DOCSDIR%%/cg_main.html
-- valgrind.patch ends here

-- valgrind-snapshot.patch begins here

diff -ruN valgrind-snapshot.orig/Makefile valgrind-snapshot/Makefile
--- valgrind-snapshot.orig/Makefile	Sun Dec 19 20:33:32 2004
+++ valgrind-snapshot/Makefile	Mon Dec 20 23:04:31 2004
@@ -7,7 +7,7 @@
 
 PORTNAME=	valgrind
 PORTVERSION=	352
-PORTREVISION=	2
+PORTREVISION=	3
 CATEGORIES=	devel
 MASTER_SITES=	http://www.rabson.org/
 PKGNAMESUFFIX=	-snapshot
@@ -32,6 +32,14 @@
 
 .include <bsd.port.pre.mk>
 
+.if ${OSVERSION} >= 500000 
+PLIST_SUB+=	RELENG_4="@comment"
+PLIST_SUB+=	RELENG_5=""
+.else
+PLIST_SUB+=	RELENG_4=""
+PLIST_SUB+=	PRELENG_5="@comment"
+.endif
+
 .if ${PERL_LEVEL} < 500601
 IGNORE=		"can\'t be built. Your Perl version is too old. Please use lang/perl5.8 port to upgrade your Perl"
 .endif
@@ -62,7 +70,25 @@
 .endif
 
 post-install:
-	${INSTALL_DATA} ${WRKSRC}/coregrind/vg_unistd.h \
+	@${INSTALL_DATA} ${WRKSRC}/coregrind/vg_unistd.h \
 		${PREFIX}/include/valgrind
+
+	@yes | ${PREFIX}/bin/valgrind --tool=memcheck --gen-suppressions=yes true \
+		| ${SED} -e 's,.*{$$,{,'  \
+		| ${GREP} -v '^=' \
+		> ${WRKDIR}/freebsd-default.supp || \
+		${RM} ${WRKDIR}/freebsd-default.supp
+
+.if exists(${WRKDIR}/freebsd-default.supp)
+	@${INSTALL_DATA} ${WRKDIR}/freebsd-default.supp \
+		${PREFIX}/lib/valgrind
+PLIST_SUB+=	VALGRIND_SUPPFILE=""
+	@${ECHO} ""
+	@${ECHO} ""
+	@${CAT} ${PKGMESSAGE} | ${SED} -e 's,%%PREFIX%%,${PREFIX},g'
+	@${ECHO} ""
+.else
+PLIST_SUB+=	VALGRIND_SUPPFILE="@comment "
+.endif
 
 .include <bsd.port.post.mk>
diff -ruN valgrind-snapshot.orig/pkg-message valgrind-snapshot/pkg-message
--- valgrind-snapshot.orig/pkg-message	Thu Jan  1 01:00:00 1970
+++ valgrind-snapshot/pkg-message	Mon Dec 20 22:59:50 2004
@@ -0,0 +1,10 @@
+Note : A sample suppression file was installed to \
+       %%PREFIX%%/lib/valgrind/freebsd-default.supp.
+       It makes Valgrind hide warnings caused by flawed code sequences
+       -if any - in your system libraries, so that you can concentrate
+       on the warnings issued for your own code.
+
+       To use these suppressions, either pass
+       --suppressions=%%PREFIX%%/lib/valgrind/freebsd-default.supp
+       to Valgrind on the commandline, or add that line to your
+       ~/.valgrindrc file, which is the recommended way.
diff -ruN valgrind-snapshot.orig/pkg-plist valgrind-snapshot/pkg-plist
--- valgrind-snapshot.orig/pkg-plist	Sun Dec 19 20:33:32 2004
+++ valgrind-snapshot/pkg-plist	Mon Dec 20 22:58:40 2004
@@ -13,12 +13,13 @@
 lib/valgrind/glibc-2.2.supp
 lib/valgrind/glibc-2.3.supp
 lib/valgrind/hp2ps
-lib/valgrind/libc_r.so.5
-lib/valgrind/libkse.so.1
+%%RELENG_4%%lib/valgrind/libc_r.so.4
+%%RELENG_5%%lib/valgrind/libc_r.so.5
+%%RELENG_5%%lib/valgrind/libkse.so.1
 lib/valgrind/libpthread.so
 lib/valgrind/libpthread.so.0
-lib/valgrind/libpthread.so.1
-lib/valgrind/libthr.so.1
+%%RELENG_5%%lib/valgrind/libpthread.so.1
+%%RELENG_5%%lib/valgrind/libthr.so.1
 lib/valgrind/stage2
 lib/valgrind/valgrind
 lib/valgrind/vg_inject.so
@@ -37,6 +38,7 @@
 lib/valgrind/vgskin_none.so
 lib/valgrind/xfree-3.supp
 lib/valgrind/xfree-4.supp
+%%VALGRIND_SUPPFILE%%lib/valgrind/freebsd-default.supp
 libdata/pkgconfig/valgrind.pc
 %%PORTDOCS%%%%DOCSDIR%%/ac_main.html
 %%PORTDOCS%%%%DOCSDIR%%/cc_main.html

-- valgrind-snapshot.patch ends here --



More information about the freebsd-ports-bugs mailing list