This patch is to fix 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, while continuing
to pass the rest of the VTV  flags (which are necessary for VTV to
work).

I tested this by configuring with --enable-vtable-verify, boostrapping
the compiler, and running all the regression testsuites (including
libvtv & libstdc++) without any regressions.  I only ran it on a linux
system, on an x86_64 machine.

I also gave a copy of the patch to the person who reported the bug,
and they verified that the patch fixes their issue.

Is this ok to commit?

-- Caroline Tice
cmt...@google.com

libstdc++-v3/ChangeLog

2021-03-10  Caroline Tice  <cmt...@google.com>

        PR libstdc++/99172
        * Makefile.in: Regenerate.
        * acinclude.m4: Add definitions for VTV_CXXFLAGS_LT.
        * configure: Regenerate.
        * doc/Makefile.in: Regenerate.
        * include/Maefile.in: Regenerate.
        * libsupc++/Makefile.in: Regenerate.
        * po/Makefile.in: Regenerate.
        * python/Makefile.in: Regenerate.
        * src/Makefile.am (AM_CXXFLAGS_LT): New definition.
        (CXXLINK): Update to use AM_CXXFLAGS_LT instead of AM_CXXFLAGS.
        * src/Makefile.in: Regenerate.
        * src/c++11/Makefile.in: Regenerate.
        * src/c++17/Makefile.in: Regenerate.
        * src/c++20/Makefile.in: Regenerate.
        * src/c++98/Makefile.in: Regenerate.
        * src/filesystem/Makefile.in: Regenerate.
        * testsuite/Makefile.in: Regenerate.

Attachment: v1-0001-libstdc-v3-Update-VTV-vars-for-libtool-link-comma.patch
Description: Binary data

Reply via email to