aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--devel/valgrind-snapshot/Makefile41
-rw-r--r--devel/valgrind-snapshot/pkg-plist10
-rw-r--r--devel/valgrind/Makefile30
-rw-r--r--devel/valgrind/pkg-message10
-rw-r--r--devel/valgrind/pkg-plist1
5 files changed, 83 insertions, 9 deletions
diff --git a/devel/valgrind-snapshot/Makefile b/devel/valgrind-snapshot/Makefile
index 38f0f3571857..5fc5d8851d9b 100644
--- a/devel/valgrind-snapshot/Makefile
+++ b/devel/valgrind-snapshot/Makefile
@@ -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 @@ WRKSRC= ${WRKDIR}/${DISTNAME}
.include <bsd.port.pre.mk>
+.if ${OSVERSION} >= 500000
+PLIST_SUB+= RELENG_4="@comment "
+PLIST_SUB+= RELENG_5=""
+.else
+PLIST_SUB+= RELENG_4=""
+PLIST_SUB+= RELENG_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,36 @@ pre-patch:
.endif
post-install:
- ${INSTALL_DATA} ${WRKSRC}/coregrind/vg_unistd.h \
+ @${INSTALL_DATA} ${WRKSRC}/coregrind/vg_unistd.h \
${PREFIX}/include/valgrind
+# Check if kernel is built with USER_LDT option (FreeBSD 4 only)
+.if ${OSVERSION} < 500000
+ @${PREFIX}/bin/valgrind --tool=memcheck true 2> ${WRKDIR}/ldt.test
+ @${GREP} i386_set_ldt ${WRKDIR}/ldt.test >/dev/null &&\
+ ${ECHO_CMD} !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! && \
+ ${ECHO_CMD} Please rebuild your kernel with ``options USER_LDT''! && \
+ ${ECHO_CMD} Otherwise, valgrind will not be able to perform pointer analysis! && \
+ ${ECHO_CMD} !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! || true
+.endif
+
+# Generate suppression files
+ @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 --git a/devel/valgrind-snapshot/pkg-plist b/devel/valgrind-snapshot/pkg-plist
index f8f5be59a043..65cb439eb8d3 100644
--- a/devel/valgrind-snapshot/pkg-plist
+++ b/devel/valgrind-snapshot/pkg-plist
@@ -13,12 +13,13 @@ lib/valgrind/glibc-2.1.supp
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_memcheck.so
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
diff --git a/devel/valgrind/Makefile b/devel/valgrind/Makefile
index 9e855f83fe58..f0fc0adc6506 100644
--- a/devel/valgrind/Makefile
+++ b/devel/valgrind/Makefile
@@ -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,36 @@ pre-patch:
.endif
post-install:
- ${INSTALL_DATA} ${WRKSRC}/coregrind/vg_unistd.h \
+ @${INSTALL_DATA} ${WRKSRC}/coregrind/vg_unistd.h \
${PREFIX}/include/valgrind
+# Check if kernel is built with USER_LDT option (FreeBSD 4 only)
+.if ${OSVERSION} < 500000
+ @${PREFIX}/bin/valgrind --tool=memcheck true 2> ${WRKDIR}/ldt.test
+ @${GREP} i386_set_ldt ${WRKDIR}/ldt.test >/dev/null &&\
+ ${ECHO_CMD} !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! && \
+ ${ECHO_CMD} Please rebuild your kernel with ``options USER_LDT''! && \
+ ${ECHO_CMD} Otherwise, valgrind will not be able to perform pointer analysis! && \
+ ${ECHO_CMD} !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! || true
+.endif
+
+ @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 --git a/devel/valgrind/pkg-message b/devel/valgrind/pkg-message
index a2b55833c8f2..d5609b69eb34 100644
--- a/devel/valgrind/pkg-message
+++ b/devel/valgrind/pkg-message
@@ -7,3 +7,13 @@ Note: This version of valgrind does not support some older processors,
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 --git a/devel/valgrind/pkg-plist b/devel/valgrind/pkg-plist
index e4cf87470f11..b918413a03fe 100644
--- a/devel/valgrind/pkg-plist
+++ b/devel/valgrind/pkg-plist
@@ -36,6 +36,7 @@ lib/valgrind/vgskin_none.so
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