summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Kosnik <bkoz@redhat.com>2013-07-29 15:23:23 -0700
committerBenjamin Kosnik <bkoz@redhat.com>2013-07-29 15:23:23 -0700
commit02148a005d2258ef426e65083bac1b485803e544 (patch)
treeb7aee6bb1367421c8f11951bd1bf57747aa31ae9
parent0a36ea1495579da9f58f3948dd25480c0973f039 (diff)
downloadgcc-02148a005d2258ef426e65083bac1b485803e544.tar.gz
2013-07-29 Benjamin Kosnik <bkoz@redhat.com>
* libsupc++/vtv_stubs.cc: Guard with __GXX_WEAK__.
-rw-r--r--libstdc++-v3/ChangeLog.vtv4
-rw-r--r--libstdc++-v3/acinclude.m41
-rwxr-xr-xlibstdc++-v3/configure4
-rw-r--r--libstdc++-v3/libsupc++/vtv_stubs.cc4
4 files changed, 9 insertions, 4 deletions
diff --git a/libstdc++-v3/ChangeLog.vtv b/libstdc++-v3/ChangeLog.vtv
index f2476935e9d..f4f6ff43eb0 100644
--- a/libstdc++-v3/ChangeLog.vtv
+++ b/libstdc++-v3/ChangeLog.vtv
@@ -1,5 +1,9 @@
2013-07-29 Benjamin Kosnik <bkoz@redhat.com>
+ * libsupc++/vtv_stubs.cc: Guard with __GXX_WEAK__.
+
+2013-07-29 Benjamin Kosnik <bkoz@redhat.com>
+
* acinclude.m4 (GLIBCXX_ENABLE_VTABLE_VERIFY): VTV_CXXLINKFLAGS
simplification.
* scripts/testsuite_flags.in (cxxvtvflags): Use it here.
diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4
index f5320c36169..3f3fc0d2314 100644
--- a/libstdc++-v3/acinclude.m4
+++ b/libstdc++-v3/acinclude.m4
@@ -2303,7 +2303,6 @@ AC_DEFUN([GLIBCXX_ENABLE_VTABLE_VERIFY], [
if test $enable_vtable_verify = yes; then
VTV_CXXFLAGS="-fvtable-verify=std"
VTV_CXXLINKFLAGS="libvtv/.libs"
-# VTV_CXXLINKFLAGS="libvtv/.libs -Wl,-u_vtable_map_vars_start,-u_vtable_map_vars_end"
else
VTV_CXXFLAGS=
VTV_CXXLINKFLAGS=
diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure
index fb96d394a61..cca74d96f16 100755
--- a/libstdc++-v3/configure
+++ b/libstdc++-v3/configure
@@ -17413,8 +17413,8 @@ $as_echo "$enable_vtable_verify" >&6; }
if test $enable_vtable_verify = yes; then
VTV_CXXFLAGS="-fvtable-verify=std"
-# VTV_CXXLINKFLAGS="libvtv/.libs"
- VTV_CXXLINKFLAGS="libvtv/.libs -Wl,-u_vtable_map_vars_start,-u_vtable_map_vars_end"
+ VTV_CXXLINKFLAGS="libvtv/.libs"
+# VTV_CXXLINKFLAGS="libvtv/.libs -Wl,-u_vtable_map_vars_start,-u_vtable_map_vars_end"
else
VTV_CXXFLAGS=
VTV_CXXLINKFLAGS=
diff --git a/libstdc++-v3/libsupc++/vtv_stubs.cc b/libstdc++-v3/libsupc++/vtv_stubs.cc
index fba1e276991..a41d943f31f 100644
--- a/libstdc++-v3/libsupc++/vtv_stubs.cc
+++ b/libstdc++-v3/libsupc++/vtv_stubs.cc
@@ -37,7 +37,8 @@
#include <cstddef>
-// Declare as weak for libsupc++.
+// Declare as weak for libsupc++, strong definitions are in libvtv.
+#if __GXX_WEAK__
extern "C"
void
__VLTChangePermission(int) __attribute__((weak));
@@ -64,6 +65,7 @@ __VLTRegisterPairDebug(void**, const void*, std::size_t, const void*,
const void*
__VLTVerifyVtablePointerDebug(void**, const void*, const char*,
const char*) __attribute__((weak));
+#endif
// Stub definitions.
extern "C"