diff options
author | Caroline Tice <cmtice@google.com> | 2021-03-12 07:34:36 -0800 |
---|---|---|
committer | Caroline Tice <cmtice@google.com> | 2021-03-15 09:22:45 -0700 |
commit | c2be82058fb40f3ae891c68d185ff53e07f14f45 (patch) | |
tree | 5777f4f8b9a0d5e9f9899b9fcc773b52f40f3085 | |
parent | 541840b891d61ea70cddd046c96698bb70d7f52c (diff) | |
download | gcc-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/ChangeLog | 9 | ||||
-rw-r--r-- | libstdc++-v3/src/Makefile.am | 4 | ||||
-rw-r--r-- | libstdc++-v3/src/Makefile.in | 3 |
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 |