Date: Tue, 26 Feb 2013 12:52:37 +0000 (UTC) From: Bryan Drewery <bdrewery@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r312975 - in head/devel: valgrind valgrind-snapshot valgrind-snapshot/files valgrind/files Message-ID: <201302261252.r1QCqbop011895@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: bdrewery Date: Tue Feb 26 12:52:36 2013 New Revision: 312975 URL: http://svnweb.freebsd.org/changeset/ports/312975 Log: - Fix new/delete handling when using libsupc++ - Remove EOL <7.0 IGNORE Submitted by: Mikolaj Golub <trociny@FreeBSD.org> Obtained from: https://bitbucket.org/stass/valgrind-freebsd/issue/7/add-replacements-for-libsupc Added: head/devel/valgrind-snapshot/files/ head/devel/valgrind-snapshot/files/extra-patch-libsupc++ (contents, props changed) head/devel/valgrind/files/ head/devel/valgrind/files/extra-patch-libsupc++ (contents, props changed) Modified: head/devel/valgrind-snapshot/Makefile head/devel/valgrind/Makefile Modified: head/devel/valgrind-snapshot/Makefile ============================================================================== --- head/devel/valgrind-snapshot/Makefile Tue Feb 26 12:35:40 2013 (r312974) +++ head/devel/valgrind-snapshot/Makefile Tue Feb 26 12:52:36 2013 (r312975) @@ -4,6 +4,7 @@ PORTNAME= valgrind PORTVERSION= 3.8.0 PORTEPOCH= 1 +PORTREVISION= 1 CATEGORIES= devel MASTER_SITES= http://cdn.bitbucket.org/stass/valgrind-freebsd/downloads/:dist \ http://mirror.shatow.net/freebsd/${PORTNAME}/:dist \ @@ -51,15 +52,13 @@ PLIST_SUB+= MPI="" PLIST_SUB+= MPI="@comment " .endif +EXTRA_PATCHES= ${PATCHDIR}/extra-patch-libsupc++ + post-install: (cd ${WRKDIR}/valgrind-manpages/ && ${COPYTREE_SHARE} \* ${MANPREFIX}/man/man1) .include <bsd.port.pre.mk> -.if ${OSVERSION} < 700104 -IGNORE= your FreeBSD version is not supported -.endif - .if ${ARCH} == "amd64" PLIST_SUB+= AMD64="" ARCH=amd64 . if !exists(/usr/lib32/libc.so) Added: head/devel/valgrind-snapshot/files/extra-patch-libsupc++ ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/devel/valgrind-snapshot/files/extra-patch-libsupc++ Tue Feb 26 12:52:36 2013 (r312975) @@ -0,0 +1,194 @@ +diff -r 85982e3e9c39 coregrind/m_replacemalloc/vg_replace_malloc.c +--- coregrind/m_replacemalloc/vg_replace_malloc.c Mon Oct 29 10:59:10 2012 -0700 ++++ coregrind/m_replacemalloc/vg_replace_malloc.c Thu Jan 31 22:53:54 2013 +0200 +@@ -294,12 +294,14 @@ + // operator new(unsigned int), GNU mangling + #if VG_WORDSIZE == 4 + ALLOC_or_BOMB(VG_Z_LIBSTDCXX_SONAME, _Znwj, __builtin_new); ++ ALLOC_or_BOMB(VG_Z_LIBSUPCXX_SONAME, _Znwj, __builtin_new); + ALLOC_or_BOMB(VG_Z_LIBC_SONAME, _Znwj, __builtin_new); + ALLOC_or_BOMB(SO_SYN_MALLOC, _Znwj, __builtin_new); + #endif + // operator new(unsigned long), GNU mangling + #if VG_WORDSIZE == 8 + ALLOC_or_BOMB(VG_Z_LIBSTDCXX_SONAME, _Znwm, __builtin_new); ++ ALLOC_or_BOMB(VG_Z_LIBSUPCXX_SONAME, _Znwm, __builtin_new); + ALLOC_or_BOMB(VG_Z_LIBC_SONAME, _Znwm, __builtin_new); + ALLOC_or_BOMB(SO_SYN_MALLOC, _Znwm, __builtin_new); + #endif +@@ -308,11 +310,13 @@ + // operator new(unsigned int), GNU mangling + #if VG_WORDSIZE == 4 + ALLOC_or_BOMB(VG_Z_LIBSTDCXX_SONAME, _Znwj, __builtin_new); ++ ALLOC_or_BOMB(VG_Z_LIBSUPCXX_SONAME, _Znwj, __builtin_new); + ALLOC_or_BOMB(SO_SYN_MALLOC, _Znwm, __builtin_new); + #endif + // operator new(unsigned long), GNU mangling + #if VG_WORDSIZE == 8 + ALLOC_or_BOMB(VG_Z_LIBSTDCXX_SONAME, _Znwm, __builtin_new); ++ ALLOC_or_BOMB(VG_Z_LIBSUPCXX_SONAME, _Znwm, __builtin_new); + ALLOC_or_BOMB(SO_SYN_MALLOC, _Znwm, __builtin_new); + #endif + +@@ -337,12 +341,14 @@ + // operator new(unsigned, std::nothrow_t const&), GNU mangling + #if VG_WORDSIZE == 4 + ALLOC_or_NULL(VG_Z_LIBSTDCXX_SONAME, _ZnwjRKSt9nothrow_t, __builtin_new); ++ ALLOC_or_NULL(VG_Z_LIBSUPCXX_SONAME, _ZnwjRKSt9nothrow_t, __builtin_new); + ALLOC_or_NULL(VG_Z_LIBC_SONAME, _ZnwjRKSt9nothrow_t, __builtin_new); + ALLOC_or_NULL(SO_SYN_MALLOC, _ZnwjRKSt9nothrow_t, __builtin_new); + #endif + // operator new(unsigned long, std::nothrow_t const&), GNU mangling + #if VG_WORDSIZE == 8 + ALLOC_or_NULL(VG_Z_LIBSTDCXX_SONAME, _ZnwmRKSt9nothrow_t, __builtin_new); ++ ALLOC_or_NULL(VG_Z_LIBSUPCXX_SONAME, _ZnwmRKSt9nothrow_t, __builtin_new); + ALLOC_or_NULL(VG_Z_LIBC_SONAME, _ZnwmRKSt9nothrow_t, __builtin_new); + ALLOC_or_NULL(SO_SYN_MALLOC, _ZnwmRKSt9nothrow_t, __builtin_new); + #endif +@@ -351,11 +357,13 @@ + // operator new(unsigned, std::nothrow_t const&), GNU mangling + #if VG_WORDSIZE == 4 + ALLOC_or_NULL(VG_Z_LIBSTDCXX_SONAME, _ZnwjRKSt9nothrow_t, __builtin_new); ++ ALLOC_or_NULL(VG_Z_LIBSUPCXX_SONAME, _ZnwjRKSt9nothrow_t, __builtin_new); + ALLOC_or_NULL(SO_SYN_MALLOC, _ZnwjRKSt9nothrow_t, __builtin_new); + #endif + // operator new(unsigned long, std::nothrow_t const&), GNU mangling + #if VG_WORDSIZE == 8 + ALLOC_or_NULL(VG_Z_LIBSTDCXX_SONAME, _ZnwmRKSt9nothrow_t, __builtin_new); ++ ALLOC_or_NULL(VG_Z_LIBSUPCXX_SONAME, _ZnwmRKSt9nothrow_t, __builtin_new); + ALLOC_or_NULL(SO_SYN_MALLOC, _ZnwjRKSt9nothrow_t, __builtin_new); + #endif + +@@ -383,12 +391,14 @@ + // operator new[](unsigned int), GNU mangling + #if VG_WORDSIZE == 4 + ALLOC_or_BOMB(VG_Z_LIBSTDCXX_SONAME, _Znaj, __builtin_vec_new ); ++ ALLOC_or_BOMB(VG_Z_LIBSUPCXX_SONAME, _Znaj, __builtin_vec_new ); + ALLOC_or_BOMB(VG_Z_LIBC_SONAME, _Znaj, __builtin_vec_new ); + ALLOC_or_BOMB(SO_SYN_MALLOC, _Znaj, __builtin_vec_new ); + #endif + // operator new[](unsigned long), GNU mangling + #if VG_WORDSIZE == 8 + ALLOC_or_BOMB(VG_Z_LIBSTDCXX_SONAME, _Znam, __builtin_vec_new ); ++ ALLOC_or_BOMB(VG_Z_LIBSUPCXX_SONAME, _Znam, __builtin_vec_new ); + ALLOC_or_BOMB(VG_Z_LIBC_SONAME, _Znam, __builtin_vec_new ); + ALLOC_or_BOMB(SO_SYN_MALLOC, _Znam, __builtin_vec_new ); + #endif +@@ -397,11 +407,13 @@ + // operator new[](unsigned int), GNU mangling + #if VG_WORDSIZE == 4 + ALLOC_or_BOMB(VG_Z_LIBSTDCXX_SONAME, _Znaj, __builtin_vec_new ); ++ ALLOC_or_BOMB(VG_Z_LIBSUPCXX_SONAME, _Znaj, __builtin_vec_new ); + ALLOC_or_BOMB(SO_SYN_MALLOC, _Znaj, __builtin_vec_new ); + #endif + // operator new[](unsigned long), GNU mangling + #if VG_WORDSIZE == 8 + ALLOC_or_BOMB(VG_Z_LIBSTDCXX_SONAME, _Znam, __builtin_vec_new ); ++ ALLOC_or_BOMB(VG_Z_LIBSUPCXX_SONAME, _Znam, __builtin_vec_new ); + ALLOC_or_BOMB(SO_SYN_MALLOC, _Znaj, __builtin_vec_new ); + #endif + +@@ -426,12 +438,14 @@ + // operator new[](unsigned, std::nothrow_t const&), GNU mangling + #if VG_WORDSIZE == 4 + ALLOC_or_NULL(VG_Z_LIBSTDCXX_SONAME, _ZnajRKSt9nothrow_t, __builtin_vec_new ); ++ ALLOC_or_NULL(VG_Z_LIBSUPCXX_SONAME, _ZnajRKSt9nothrow_t, __builtin_vec_new ); + ALLOC_or_NULL(VG_Z_LIBC_SONAME, _ZnajRKSt9nothrow_t, __builtin_vec_new ); + ALLOC_or_NULL(SO_SYN_MALLOC, _ZnajRKSt9nothrow_t, __builtin_vec_new ); + #endif + // operator new[](unsigned long, std::nothrow_t const&), GNU mangling + #if VG_WORDSIZE == 8 + ALLOC_or_NULL(VG_Z_LIBSTDCXX_SONAME, _ZnamRKSt9nothrow_t, __builtin_vec_new ); ++ ALLOC_or_NULL(VG_Z_LIBSUPCXX_SONAME, _ZnamRKSt9nothrow_t, __builtin_vec_new ); + ALLOC_or_NULL(VG_Z_LIBC_SONAME, _ZnamRKSt9nothrow_t, __builtin_vec_new ); + ALLOC_or_NULL(SO_SYN_MALLOC, _ZnamRKSt9nothrow_t, __builtin_vec_new ); + #endif +@@ -440,11 +454,13 @@ + // operator new[](unsigned, std::nothrow_t const&), GNU mangling + #if VG_WORDSIZE == 4 + ALLOC_or_NULL(VG_Z_LIBSTDCXX_SONAME, _ZnajRKSt9nothrow_t, __builtin_vec_new ); ++ ALLOC_or_NULL(VG_Z_LIBSUPCXX_SONAME, _ZnajRKSt9nothrow_t, __builtin_vec_new ); + ALLOC_or_NULL(SO_SYN_MALLOC, _ZnajRKSt9nothrow_t, __builtin_vec_new ); + #endif + // operator new[](unsigned long, std::nothrow_t const&), GNU mangling + #if VG_WORDSIZE == 8 + ALLOC_or_NULL(VG_Z_LIBSTDCXX_SONAME, _ZnamRKSt9nothrow_t, __builtin_vec_new ); ++ ALLOC_or_NULL(VG_Z_LIBSUPCXX_SONAME, _ZnamRKSt9nothrow_t, __builtin_vec_new ); + ALLOC_or_NULL(SO_SYN_MALLOC, _ZnajRKSt9nothrow_t, __builtin_vec_new ); + #endif + +@@ -534,11 +550,13 @@ + FREE(VG_Z_LIBC_SONAME, __builtin_delete, __builtin_delete ); + // operator delete(void*), GNU mangling + FREE(VG_Z_LIBSTDCXX_SONAME, _ZdlPv, __builtin_delete ); ++ FREE(VG_Z_LIBSUPCXX_SONAME, _ZdlPv, __builtin_delete ); + FREE(VG_Z_LIBC_SONAME, _ZdlPv, __builtin_delete ); + FREE(SO_SYN_MALLOC, _ZdlPv, __builtin_delete ); + + #elif defined(VGO_freebsd) + FREE(VG_Z_LIBSTDCXX_SONAME, _ZdlPv, __builtin_delete ); ++ FREE(VG_Z_LIBSUPCXX_SONAME, _ZdlPv, __builtin_delete ); + FREE(SO_SYN_MALLOC, _ZdlPv, __builtin_delete ); + + #elif defined(VGO_darwin) +@@ -554,12 +572,14 @@ + #if defined(VGO_linux) + // operator delete(void*, std::nothrow_t const&), GNU mangling + FREE(VG_Z_LIBSTDCXX_SONAME, _ZdlPvRKSt9nothrow_t, __builtin_delete ); ++ FREE(VG_Z_LIBSUPCXX_SONAME, _ZdlPvRKSt9nothrow_t, __builtin_delete ); + FREE(VG_Z_LIBC_SONAME, _ZdlPvRKSt9nothrow_t, __builtin_delete ); + FREE(SO_SYN_MALLOC, _ZdlPvRKSt9nothrow_t, __builtin_delete ); + + #elif defined(VGO_freebsd) + // operator delete(void*, std::nothrow_t const&), GNU mangling + FREE(VG_Z_LIBSTDCXX_SONAME, _ZdlPvRKSt9nothrow_t, __builtin_delete ); ++ FREE(VG_Z_LIBSUPCXX_SONAME, _ZdlPvRKSt9nothrow_t, __builtin_delete ); + FREE(SO_SYN_MALLOC, _ZdlPvRKSt9nothrow_t, __builtin_delete ); + + #elif defined(VGO_darwin) +@@ -578,12 +598,14 @@ + FREE(VG_Z_LIBC_SONAME, __builtin_vec_delete, __builtin_vec_delete ); + // operator delete[](void*), GNU mangling + FREE(VG_Z_LIBSTDCXX_SONAME, _ZdaPv, __builtin_vec_delete ); ++ FREE(VG_Z_LIBSUPCXX_SONAME, _ZdaPv, __builtin_vec_delete ); + FREE(VG_Z_LIBC_SONAME, _ZdaPv, __builtin_vec_delete ); + FREE(SO_SYN_MALLOC, _ZdaPv, __builtin_vec_delete ); + + #elif defined(VGO_freebsd) + // operator delete[](void*), GNU mangling + FREE(VG_Z_LIBSTDCXX_SONAME, _ZdaPv, __builtin_vec_delete ); ++ FREE(VG_Z_LIBSUPCXX_SONAME, _ZdaPv, __builtin_vec_delete ); + FREE(SO_SYN_MALLOC, _ZdaPv, __builtin_vec_delete ); + + #elif defined(VGO_darwin) +@@ -602,12 +624,14 @@ + #if defined(VGO_linux) + // operator delete[](void*, std::nothrow_t const&), GNU mangling + FREE(VG_Z_LIBSTDCXX_SONAME, _ZdaPvRKSt9nothrow_t, __builtin_vec_delete ); ++ FREE(VG_Z_LIBSUPCXX_SONAME, _ZdaPvRKSt9nothrow_t, __builtin_vec_delete ); + FREE(VG_Z_LIBC_SONAME, _ZdaPvRKSt9nothrow_t, __builtin_vec_delete ); + FREE(SO_SYN_MALLOC, _ZdaPvRKSt9nothrow_t, __builtin_vec_delete ); + + #elif defined(VGO_freebsd) + // operator delete[](void*, std::nothrow_t const&), GNU mangling + FREE(VG_Z_LIBSTDCXX_SONAME, _ZdaPvRKSt9nothrow_t, __builtin_vec_delete ); ++ FREE(VG_Z_LIBSUPCXX_SONAME, _ZdaPvRKSt9nothrow_t, __builtin_vec_delete ); + FREE(SO_SYN_MALLOC, _ZdaPvRKSt9nothrow_t, __builtin_vec_delete ); + + #elif defined(VGO_darwin) +diff -r 85982e3e9c39 include/pub_tool_redir.h +--- include/pub_tool_redir.h Mon Oct 29 10:59:10 2012 -0700 ++++ include/pub_tool_redir.h Thu Jan 31 22:53:54 2013 +0200 +@@ -254,10 +254,11 @@ + + #endif + +-/* --- Soname of the GNU C++ library. --- */ ++/* --- Sonames of the GNU C++ library. --- */ + + // Valid on all platforms(?) + #define VG_Z_LIBSTDCXX_SONAME libstdcZpZpZa // libstdc++* ++#define VG_Z_LIBSUPCXX_SONAME libsupcZpZpZa // libsupc++* + + /* --- Soname of the pthreads library. --- */ + Modified: head/devel/valgrind/Makefile ============================================================================== --- head/devel/valgrind/Makefile Tue Feb 26 12:35:40 2013 (r312974) +++ head/devel/valgrind/Makefile Tue Feb 26 12:52:36 2013 (r312975) @@ -4,6 +4,7 @@ PORTNAME= valgrind PORTVERSION= 3.8.0 PORTEPOCH= 1 +PORTREVISION= 1 CATEGORIES= devel MASTER_SITES= http://cdn.bitbucket.org/stass/valgrind-freebsd/downloads/:dist \ http://mirror.shatow.net/freebsd/${PORTNAME}/:dist \ @@ -49,16 +50,14 @@ PLIST_SUB+= MPI="" PLIST_SUB+= MPI="@comment " .endif +EXTRA_PATCHES= ${PATCHDIR}/extra-patch-libsupc++ + post-install: (cd ${WRKDIR}/valgrind-manpages/ && ${COPYTREE_SHARE} \* ${MANPREFIX}/man/man1) @${CAT} ${PKGMESSAGE} .include <bsd.port.pre.mk> -.if ${OSVERSION} < 700104 -IGNORE= your FreeBSD version is not supported -.endif - .if ${ARCH} == "amd64" PLIST_SUB+= AMD64="" ARCH=amd64 . if !exists(/usr/lib32/libc.so) Added: head/devel/valgrind/files/extra-patch-libsupc++ ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/devel/valgrind/files/extra-patch-libsupc++ Tue Feb 26 12:52:36 2013 (r312975) @@ -0,0 +1,194 @@ +diff -r 85982e3e9c39 coregrind/m_replacemalloc/vg_replace_malloc.c +--- coregrind/m_replacemalloc/vg_replace_malloc.c Mon Oct 29 10:59:10 2012 -0700 ++++ coregrind/m_replacemalloc/vg_replace_malloc.c Thu Jan 31 22:53:54 2013 +0200 +@@ -294,12 +294,14 @@ + // operator new(unsigned int), GNU mangling + #if VG_WORDSIZE == 4 + ALLOC_or_BOMB(VG_Z_LIBSTDCXX_SONAME, _Znwj, __builtin_new); ++ ALLOC_or_BOMB(VG_Z_LIBSUPCXX_SONAME, _Znwj, __builtin_new); + ALLOC_or_BOMB(VG_Z_LIBC_SONAME, _Znwj, __builtin_new); + ALLOC_or_BOMB(SO_SYN_MALLOC, _Znwj, __builtin_new); + #endif + // operator new(unsigned long), GNU mangling + #if VG_WORDSIZE == 8 + ALLOC_or_BOMB(VG_Z_LIBSTDCXX_SONAME, _Znwm, __builtin_new); ++ ALLOC_or_BOMB(VG_Z_LIBSUPCXX_SONAME, _Znwm, __builtin_new); + ALLOC_or_BOMB(VG_Z_LIBC_SONAME, _Znwm, __builtin_new); + ALLOC_or_BOMB(SO_SYN_MALLOC, _Znwm, __builtin_new); + #endif +@@ -308,11 +310,13 @@ + // operator new(unsigned int), GNU mangling + #if VG_WORDSIZE == 4 + ALLOC_or_BOMB(VG_Z_LIBSTDCXX_SONAME, _Znwj, __builtin_new); ++ ALLOC_or_BOMB(VG_Z_LIBSUPCXX_SONAME, _Znwj, __builtin_new); + ALLOC_or_BOMB(SO_SYN_MALLOC, _Znwm, __builtin_new); + #endif + // operator new(unsigned long), GNU mangling + #if VG_WORDSIZE == 8 + ALLOC_or_BOMB(VG_Z_LIBSTDCXX_SONAME, _Znwm, __builtin_new); ++ ALLOC_or_BOMB(VG_Z_LIBSUPCXX_SONAME, _Znwm, __builtin_new); + ALLOC_or_BOMB(SO_SYN_MALLOC, _Znwm, __builtin_new); + #endif + +@@ -337,12 +341,14 @@ + // operator new(unsigned, std::nothrow_t const&), GNU mangling + #if VG_WORDSIZE == 4 + ALLOC_or_NULL(VG_Z_LIBSTDCXX_SONAME, _ZnwjRKSt9nothrow_t, __builtin_new); ++ ALLOC_or_NULL(VG_Z_LIBSUPCXX_SONAME, _ZnwjRKSt9nothrow_t, __builtin_new); + ALLOC_or_NULL(VG_Z_LIBC_SONAME, _ZnwjRKSt9nothrow_t, __builtin_new); + ALLOC_or_NULL(SO_SYN_MALLOC, _ZnwjRKSt9nothrow_t, __builtin_new); + #endif + // operator new(unsigned long, std::nothrow_t const&), GNU mangling + #if VG_WORDSIZE == 8 + ALLOC_or_NULL(VG_Z_LIBSTDCXX_SONAME, _ZnwmRKSt9nothrow_t, __builtin_new); ++ ALLOC_or_NULL(VG_Z_LIBSUPCXX_SONAME, _ZnwmRKSt9nothrow_t, __builtin_new); + ALLOC_or_NULL(VG_Z_LIBC_SONAME, _ZnwmRKSt9nothrow_t, __builtin_new); + ALLOC_or_NULL(SO_SYN_MALLOC, _ZnwmRKSt9nothrow_t, __builtin_new); + #endif +@@ -351,11 +357,13 @@ + // operator new(unsigned, std::nothrow_t const&), GNU mangling + #if VG_WORDSIZE == 4 + ALLOC_or_NULL(VG_Z_LIBSTDCXX_SONAME, _ZnwjRKSt9nothrow_t, __builtin_new); ++ ALLOC_or_NULL(VG_Z_LIBSUPCXX_SONAME, _ZnwjRKSt9nothrow_t, __builtin_new); + ALLOC_or_NULL(SO_SYN_MALLOC, _ZnwjRKSt9nothrow_t, __builtin_new); + #endif + // operator new(unsigned long, std::nothrow_t const&), GNU mangling + #if VG_WORDSIZE == 8 + ALLOC_or_NULL(VG_Z_LIBSTDCXX_SONAME, _ZnwmRKSt9nothrow_t, __builtin_new); ++ ALLOC_or_NULL(VG_Z_LIBSUPCXX_SONAME, _ZnwmRKSt9nothrow_t, __builtin_new); + ALLOC_or_NULL(SO_SYN_MALLOC, _ZnwjRKSt9nothrow_t, __builtin_new); + #endif + +@@ -383,12 +391,14 @@ + // operator new[](unsigned int), GNU mangling + #if VG_WORDSIZE == 4 + ALLOC_or_BOMB(VG_Z_LIBSTDCXX_SONAME, _Znaj, __builtin_vec_new ); ++ ALLOC_or_BOMB(VG_Z_LIBSUPCXX_SONAME, _Znaj, __builtin_vec_new ); + ALLOC_or_BOMB(VG_Z_LIBC_SONAME, _Znaj, __builtin_vec_new ); + ALLOC_or_BOMB(SO_SYN_MALLOC, _Znaj, __builtin_vec_new ); + #endif + // operator new[](unsigned long), GNU mangling + #if VG_WORDSIZE == 8 + ALLOC_or_BOMB(VG_Z_LIBSTDCXX_SONAME, _Znam, __builtin_vec_new ); ++ ALLOC_or_BOMB(VG_Z_LIBSUPCXX_SONAME, _Znam, __builtin_vec_new ); + ALLOC_or_BOMB(VG_Z_LIBC_SONAME, _Znam, __builtin_vec_new ); + ALLOC_or_BOMB(SO_SYN_MALLOC, _Znam, __builtin_vec_new ); + #endif +@@ -397,11 +407,13 @@ + // operator new[](unsigned int), GNU mangling + #if VG_WORDSIZE == 4 + ALLOC_or_BOMB(VG_Z_LIBSTDCXX_SONAME, _Znaj, __builtin_vec_new ); ++ ALLOC_or_BOMB(VG_Z_LIBSUPCXX_SONAME, _Znaj, __builtin_vec_new ); + ALLOC_or_BOMB(SO_SYN_MALLOC, _Znaj, __builtin_vec_new ); + #endif + // operator new[](unsigned long), GNU mangling + #if VG_WORDSIZE == 8 + ALLOC_or_BOMB(VG_Z_LIBSTDCXX_SONAME, _Znam, __builtin_vec_new ); ++ ALLOC_or_BOMB(VG_Z_LIBSUPCXX_SONAME, _Znam, __builtin_vec_new ); + ALLOC_or_BOMB(SO_SYN_MALLOC, _Znaj, __builtin_vec_new ); + #endif + +@@ -426,12 +438,14 @@ + // operator new[](unsigned, std::nothrow_t const&), GNU mangling + #if VG_WORDSIZE == 4 + ALLOC_or_NULL(VG_Z_LIBSTDCXX_SONAME, _ZnajRKSt9nothrow_t, __builtin_vec_new ); ++ ALLOC_or_NULL(VG_Z_LIBSUPCXX_SONAME, _ZnajRKSt9nothrow_t, __builtin_vec_new ); + ALLOC_or_NULL(VG_Z_LIBC_SONAME, _ZnajRKSt9nothrow_t, __builtin_vec_new ); + ALLOC_or_NULL(SO_SYN_MALLOC, _ZnajRKSt9nothrow_t, __builtin_vec_new ); + #endif + // operator new[](unsigned long, std::nothrow_t const&), GNU mangling + #if VG_WORDSIZE == 8 + ALLOC_or_NULL(VG_Z_LIBSTDCXX_SONAME, _ZnamRKSt9nothrow_t, __builtin_vec_new ); ++ ALLOC_or_NULL(VG_Z_LIBSUPCXX_SONAME, _ZnamRKSt9nothrow_t, __builtin_vec_new ); + ALLOC_or_NULL(VG_Z_LIBC_SONAME, _ZnamRKSt9nothrow_t, __builtin_vec_new ); + ALLOC_or_NULL(SO_SYN_MALLOC, _ZnamRKSt9nothrow_t, __builtin_vec_new ); + #endif +@@ -440,11 +454,13 @@ + // operator new[](unsigned, std::nothrow_t const&), GNU mangling + #if VG_WORDSIZE == 4 + ALLOC_or_NULL(VG_Z_LIBSTDCXX_SONAME, _ZnajRKSt9nothrow_t, __builtin_vec_new ); ++ ALLOC_or_NULL(VG_Z_LIBSUPCXX_SONAME, _ZnajRKSt9nothrow_t, __builtin_vec_new ); + ALLOC_or_NULL(SO_SYN_MALLOC, _ZnajRKSt9nothrow_t, __builtin_vec_new ); + #endif + // operator new[](unsigned long, std::nothrow_t const&), GNU mangling + #if VG_WORDSIZE == 8 + ALLOC_or_NULL(VG_Z_LIBSTDCXX_SONAME, _ZnamRKSt9nothrow_t, __builtin_vec_new ); ++ ALLOC_or_NULL(VG_Z_LIBSUPCXX_SONAME, _ZnamRKSt9nothrow_t, __builtin_vec_new ); + ALLOC_or_NULL(SO_SYN_MALLOC, _ZnajRKSt9nothrow_t, __builtin_vec_new ); + #endif + +@@ -534,11 +550,13 @@ + FREE(VG_Z_LIBC_SONAME, __builtin_delete, __builtin_delete ); + // operator delete(void*), GNU mangling + FREE(VG_Z_LIBSTDCXX_SONAME, _ZdlPv, __builtin_delete ); ++ FREE(VG_Z_LIBSUPCXX_SONAME, _ZdlPv, __builtin_delete ); + FREE(VG_Z_LIBC_SONAME, _ZdlPv, __builtin_delete ); + FREE(SO_SYN_MALLOC, _ZdlPv, __builtin_delete ); + + #elif defined(VGO_freebsd) + FREE(VG_Z_LIBSTDCXX_SONAME, _ZdlPv, __builtin_delete ); ++ FREE(VG_Z_LIBSUPCXX_SONAME, _ZdlPv, __builtin_delete ); + FREE(SO_SYN_MALLOC, _ZdlPv, __builtin_delete ); + + #elif defined(VGO_darwin) +@@ -554,12 +572,14 @@ + #if defined(VGO_linux) + // operator delete(void*, std::nothrow_t const&), GNU mangling + FREE(VG_Z_LIBSTDCXX_SONAME, _ZdlPvRKSt9nothrow_t, __builtin_delete ); ++ FREE(VG_Z_LIBSUPCXX_SONAME, _ZdlPvRKSt9nothrow_t, __builtin_delete ); + FREE(VG_Z_LIBC_SONAME, _ZdlPvRKSt9nothrow_t, __builtin_delete ); + FREE(SO_SYN_MALLOC, _ZdlPvRKSt9nothrow_t, __builtin_delete ); + + #elif defined(VGO_freebsd) + // operator delete(void*, std::nothrow_t const&), GNU mangling + FREE(VG_Z_LIBSTDCXX_SONAME, _ZdlPvRKSt9nothrow_t, __builtin_delete ); ++ FREE(VG_Z_LIBSUPCXX_SONAME, _ZdlPvRKSt9nothrow_t, __builtin_delete ); + FREE(SO_SYN_MALLOC, _ZdlPvRKSt9nothrow_t, __builtin_delete ); + + #elif defined(VGO_darwin) +@@ -578,12 +598,14 @@ + FREE(VG_Z_LIBC_SONAME, __builtin_vec_delete, __builtin_vec_delete ); + // operator delete[](void*), GNU mangling + FREE(VG_Z_LIBSTDCXX_SONAME, _ZdaPv, __builtin_vec_delete ); ++ FREE(VG_Z_LIBSUPCXX_SONAME, _ZdaPv, __builtin_vec_delete ); + FREE(VG_Z_LIBC_SONAME, _ZdaPv, __builtin_vec_delete ); + FREE(SO_SYN_MALLOC, _ZdaPv, __builtin_vec_delete ); + + #elif defined(VGO_freebsd) + // operator delete[](void*), GNU mangling + FREE(VG_Z_LIBSTDCXX_SONAME, _ZdaPv, __builtin_vec_delete ); ++ FREE(VG_Z_LIBSUPCXX_SONAME, _ZdaPv, __builtin_vec_delete ); + FREE(SO_SYN_MALLOC, _ZdaPv, __builtin_vec_delete ); + + #elif defined(VGO_darwin) +@@ -602,12 +624,14 @@ + #if defined(VGO_linux) + // operator delete[](void*, std::nothrow_t const&), GNU mangling + FREE(VG_Z_LIBSTDCXX_SONAME, _ZdaPvRKSt9nothrow_t, __builtin_vec_delete ); ++ FREE(VG_Z_LIBSUPCXX_SONAME, _ZdaPvRKSt9nothrow_t, __builtin_vec_delete ); + FREE(VG_Z_LIBC_SONAME, _ZdaPvRKSt9nothrow_t, __builtin_vec_delete ); + FREE(SO_SYN_MALLOC, _ZdaPvRKSt9nothrow_t, __builtin_vec_delete ); + + #elif defined(VGO_freebsd) + // operator delete[](void*, std::nothrow_t const&), GNU mangling + FREE(VG_Z_LIBSTDCXX_SONAME, _ZdaPvRKSt9nothrow_t, __builtin_vec_delete ); ++ FREE(VG_Z_LIBSUPCXX_SONAME, _ZdaPvRKSt9nothrow_t, __builtin_vec_delete ); + FREE(SO_SYN_MALLOC, _ZdaPvRKSt9nothrow_t, __builtin_vec_delete ); + + #elif defined(VGO_darwin) +diff -r 85982e3e9c39 include/pub_tool_redir.h +--- include/pub_tool_redir.h Mon Oct 29 10:59:10 2012 -0700 ++++ include/pub_tool_redir.h Thu Jan 31 22:53:54 2013 +0200 +@@ -254,10 +254,11 @@ + + #endif + +-/* --- Soname of the GNU C++ library. --- */ ++/* --- Sonames of the GNU C++ library. --- */ + + // Valid on all platforms(?) + #define VG_Z_LIBSTDCXX_SONAME libstdcZpZpZa // libstdc++* ++#define VG_Z_LIBSUPCXX_SONAME libsupcZpZpZa // libsupc++* + + /* --- Soname of the pthreads library. --- */ +
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201302261252.r1QCqbop011895>