libstdc++: Fix libstdc++exp.a so it really does contain Filesystem TS symbols
commitabf40d2953639534af3428424f467adf3cb52177
authorJonathan Wakely <jwakely@redhat.com>
Fri, 2 Feb 2024 12:07:09 +0000 (2 12:07 +0000)
committerJonathan Wakely <jwakely@redhat.com>
Sun, 4 Feb 2024 21:40:23 +0000 (4 21:40 +0000)
tree4cab996685f2b209f763d348028d98031eb2b44c
parente99d9607f0242e371792bdff68575c1f4b671b4b
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.
libstdc++-v3/src/experimental/Makefile.am
libstdc++-v3/src/experimental/Makefile.in
libstdc++-v3/src/filesystem/Makefile.am
libstdc++-v3/src/filesystem/Makefile.in