svn commit: r312975 - in head/devel: valgrind valgrind-snapshot valgrind-snapshot/files valgrind/files

Bryan Drewery bdrewery at FreeBSD.org
Tue Feb 26 12:52:37 UTC 2013


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 at 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. --- */
+ 


More information about the svn-ports-head mailing list