]> git.ipfire.org Git - thirdparty/gcc.git/commit
libstdc++: Fix libstdc++exp.a so it really does contain Filesystem TS symbols
authorJonathan Wakely <jwakely@redhat.com>
Fri, 2 Feb 2024 12:07:09 +0000 (12:07 +0000)
committerJonathan Wakely <jwakely@redhat.com>
Thu, 25 Apr 2024 16:21:54 +0000 (17:21 +0100)
commit9c49ab21b5df71cf5e397dfe0f7b97765300ec45
tree9341b3b582e807a1b711cacb5b9d0e4b9ee03230
parent5550214b58e95320b54e42ef0e37c6479e04b27b
libstdc++: Fix libstdc++exp.a so it really does contain Filesystem TS symbols

In r14-3812-gb96b554592c5cb I claimed that libstdc++exp.a now contains
all the symbols from libstdc++fs.a as well as libstdc++_libbacktrace.a,
but that wasn't true. Only the symbols from the latter were added to
libstdc++exp.a, the Filesystem TS ones weren't. This seems to be because
libtool won't combine static libs that are going to be installed
separately. Because libstdc++fs.a is still installed, libtool decides it
shouldn't be included in libstdc++exp.a.

The solution is similar to what we already do for libsupc++.a: build two
static libs, libstdc++fs.a and libstdc++fsconvenience.a, where the
former is installed and the latter isn't. If we then tell libtool to
include the latter in libstdc++exp.a it will do as it's told.

libstdc++-v3/ChangeLog:

* src/experimental/Makefile.am: Use libstdc++fsconvenience.a
instead of libstdc++fs.a.
* src/experimental/Makefile.in: Regenerate.
* src/filesystem/Makefile.am: Build libstdc++fsconvenience.a as
well.
* src/filesystem/Makefile.in: Regenerate.

(cherry picked from commit abf40d2953639534af3428424f467adf3cb52177)
libstdc++-v3/src/experimental/Makefile.am
libstdc++-v3/src/experimental/Makefile.in
libstdc++-v3/src/filesystem/Makefile.am
libstdc++-v3/src/filesystem/Makefile.in