aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaroline Tice <cmtice@google.com>2021-03-12 07:34:36 -0800
committerCaroline Tice <cmtice@google.com>2021-03-15 09:22:45 -0700
commitc2be82058fb40f3ae891c68d185ff53e07f14f45 (patch)
tree5777f4f8b9a0d5e9f9899b9fcc773b52f40f3085
parent541840b891d61ea70cddd046c96698bb70d7f52c (diff)
downloadgcc-c2be82058fb40f3ae891c68d185ff53e07f14f45.zip
gcc-c2be82058fb40f3ae891c68d185ff53e07f14f45.tar.gz
gcc-c2be82058fb40f3ae891c68d185ff53e07f14f45.tar.bz2
libstdc++-v3: Update VTV vars for libtool link commands [PR99172]
This fixes PR 99172 Currently when GCC is configured with --enable-vtable-verify, the libstdc++-v3 Makefiles add "-fvtable-verify=std -Wl,-u_vtable_map_vars_start,-u_vtable_map_vars_end" to libtool link commands. The "-fvtable-verify=std" piece causes alternate versions of libtool (such as slibtool) to fail, unable to find "-lvtv" (GNU libtool just removes that piece). This patch updates the libstdc++-v3 Makefiles to not pass "-fvtable-verify=std" to the libtool link commands.
-rw-r--r--libstdc++-v3/ChangeLog9
-rw-r--r--libstdc++-v3/src/Makefile.am4
-rw-r--r--libstdc++-v3/src/Makefile.in3
3 files changed, 14 insertions, 2 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 6834a90..296dc68 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,12 @@
+2021-03-15 Caroline Tice <cmtice@google.com>
+
+ PR libstdc++/99172
+ * src/Makefile.am (AM_CXXFLAGS_PRE, AM_CXXFLAGS): Add
+ AM_CXXFLAGS_PRE with the old definition of AM_CXXFLAGS; make
+ AM_CXXFLAGS to be AM_CXXFLAGS_PRE with '-fvtable-verify=std'
+ filtered out.
+ * src/Makefile.in: Regenerate.
+
2021-03-11 Patrick Palka <ppalka@redhat.com>
* src/c++17/floating_to_chars.cc: Simplify the file as if
diff --git a/libstdc++-v3/src/Makefile.am b/libstdc++-v3/src/Makefile.am
index 78e788c..16f4cc6 100644
--- a/libstdc++-v3/src/Makefile.am
+++ b/libstdc++-v3/src/Makefile.am
@@ -214,12 +214,14 @@ compatibility-condvar.o: compatibility-condvar.cc
# set this option because CONFIG_CXXFLAGS has to be after
# OPTIMIZE_CXXFLAGS on the compile line so that -O2 can be overridden
# as the occasion calls for it.
-AM_CXXFLAGS = \
+AM_CXXFLAGS_PRE = \
-std=gnu++98 \
$(glibcxx_compiler_pic_flag) \
$(XTEMPLATE_FLAGS) $(VTV_CXXFLAGS) \
$(WARN_CXXFLAGS) $(OPTIMIZE_CXXFLAGS) $(CONFIG_CXXFLAGS)
+AM_CXXFLAGS = $(filter-out -fvtable-verify=std,$(AM_CXXFLAGS_PRE))
+
# Libtool notes
# 1) In general, libtool expects an argument such as `--tag=CXX' when
diff --git a/libstdc++-v3/src/Makefile.in b/libstdc++-v3/src/Makefile.in
index 684b7ae..4df5c82 100644
--- a/libstdc++-v3/src/Makefile.in
+++ b/libstdc++-v3/src/Makefile.in
@@ -578,12 +578,13 @@ libstdc___la_LINK = $(CXXLINK) $(libstdc___la_LDFLAGS) $(lt_host_flags)
# set this option because CONFIG_CXXFLAGS has to be after
# OPTIMIZE_CXXFLAGS on the compile line so that -O2 can be overridden
# as the occasion calls for it.
-AM_CXXFLAGS = \
+AM_CXXFLAGS_PRE = \
-std=gnu++98 \
$(glibcxx_compiler_pic_flag) \
$(XTEMPLATE_FLAGS) $(VTV_CXXFLAGS) \
$(WARN_CXXFLAGS) $(OPTIMIZE_CXXFLAGS) $(CONFIG_CXXFLAGS)
+AM_CXXFLAGS = $(filter-out -fvtable-verify=std,$(AM_CXXFLAGS_PRE))
# Libtool notes