]> git.ipfire.org Git - thirdparty/gcc.git/commit - libstdc++-v3/src/c++11/chrono.cc
libstdc++: Stop defining C++0x compat symbols for versioned namespace
authorJonathan Wakely <jwakely@redhat.com>
Mon, 16 May 2022 15:54:52 +0000 (16:54 +0100)
committerJonathan Wakely <jwakely@redhat.com>
Tue, 17 May 2022 10:42:34 +0000 (11:42 +0100)
commit357d6fcd41e771128226b7916166f537b2d53a29
tree86d02d00110bd2a7554feae11a8d50801a96ed56
parent472aecb78908d47491d3e6c0beb4eb44f7109751
libstdc++: Stop defining C++0x compat symbols for versioned namespace

The src/c++11/compatibility*-c++0x.cc files define symbols that need to
be exported for ancient versions of libstdc++.so.6 due to changes
between C++0x and the final C++11 standard. Those symbols are not needed
in the libstdc++.so.8 library, and we can skip building them entirely.

This also fixes the build failure I introduced last week when making the
versioned namespace config not use the _V2 namespace for compat symbols.

libstdc++-v3/ChangeLog:

* src/Makefile.am [ENABLE_SYMVERS_GNU_NAMESPACE] (cxx11_sources):
Do not build the compatibility*-c++0x.cc objects.
* src/Makefile.in: Regenerate.
* src/c++11/compatibility-c++0x.cc [_GLIBCXX_INLINE_VERSION]:
Refuse to build for the versioned namespace.
* src/c++11/compatibility-chrono.cc: Likewise.
* src/c++11/compatibility-condvar.cc: Likewise.
* src/c++11/compatibility-thread-c++0x.cc: Likewise.
* src/c++11/chrono.cc (system_clock, steady_clock):
Use macros to define in inline namespace _V2, matching the
declarations in <system_error>.
* src/c++11/system_error.cc (system_category, generic_category):
Likewise.
libstdc++-v3/src/Makefile.am
libstdc++-v3/src/Makefile.in
libstdc++-v3/src/c++11/chrono.cc
libstdc++-v3/src/c++11/compatibility-c++0x.cc
libstdc++-v3/src/c++11/compatibility-chrono.cc
libstdc++-v3/src/c++11/compatibility-condvar.cc
libstdc++-v3/src/c++11/compatibility-thread-c++0x.cc
libstdc++-v3/src/c++11/system_error.cc