[Bug libstdc++/69413] [6 Regression] r232327 prevents libstdc++ working after upgrading glibc to 2.23
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69413 --- Comment #4 from Jonathan Wakely --- (In reply to Dominik Vogt from comment #3) > So, what is the proper way to compile > > -- snip -- > #include > -- snip -- > > using a current Gcc compiled with an old system Glibc so that the program > uses a new (not installed) Glibc? You can't, that's not supported. As I said, if you want to use glibc 2.22 headers from after the mentioned commit, libstdc++ must be built with those same headers. I thought this was fairly explicit: (In reply to Jonathan Wakely from comment #2) > Specifically, if you build GCC against glibc before > https://sourceware.org/git/gitweb.cgi?p=glibc.git; > h=d9b965fa56350d6eea9f7f438a0714c7ffbb183f and then update glibc to a > snapshot of 2.22 from git master after that commit, libstdc++ will not work. > In that case glibc still reports itself as 2.22 and libstdc++ won't detect > that the isinf and isnan declarations are gone, so must be reconfigured and > rebuilt against the new glibc headers. As a quick hack you can bump the value of __GLIBC_MINOR__ in ~/src/git/glibc/install/usr/include/features.h to make it appear to be glibc 2.23, but obviously that isn't supported either.
[Bug libstdc++/69413] [6 Regression] r232327 prevents libstdc++ working after upgrading glibc to 2.23
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69413 --- Comment #3 from Dominik Vogt --- So, what is the proper way to compile -- snip -- #include -- snip -- using a current Gcc compiled with an old system Glibc so that the program uses a new (not installed) Glibc? The hack I tried earlier still does not work: $ g++ -std=c++11 x.C -v \ --sysroot ~/src/git/glibc/install \ -idirafter ~/src/git/glibc/install/usr/include \ -idirafter /usr/local/include \ -idirafter /usr/include ... ignoring nonexistent directory "~/src/git/glibc/install/usr/local/include" ignoring nonexistent directory "~/src/git/gcc/install/lib/gcc/s390x-ibm-linux-gnu/6.0.0/../../../../s390x-ibm-linux-gnu/include" ignoring duplicate directory "~/src/git/glibc/install/usr/include" #include "..." search starts here: #include <...> search starts here: ~/src/git/gcc/install/lib/gcc/s390x-ibm-linux-gnu/6.0.0/../../../../include/c++/6.0.0 ~/src/git/gcc/install/lib/gcc/s390x-ibm-linux-gnu/6.0.0/../../../../include/c++/6.0.0/s390x-ibm-linux-gnu ~/src/git/gcc/install/lib/gcc/s390x-ibm-linux-gnu/6.0.0/../../../../include/c++/6.0.0/backward ~/src/git/gcc/install/lib/gcc/s390x-ibm-linux-gnu/6.0.0/include ~/src/git/gcc/install/include ~/src/git/gcc/install/lib/gcc/s390x-ibm-linux-gnu/6.0.0/include-fixed ~/src/git/glibc/install/usr/include /usr/local/include /usr/include End of search list. of search list. ...
[Bug libstdc++/69413] [6 Regression] r232327 prevents libstdc++ working after upgrading glibc to 2.23
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69413 Jonathan Wakely changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution|--- |FIXED --- Comment #2 from Jonathan Wakely --- GCC 6 will now work if it is built against glibc <= 2.22 and then glibc is upgraded to >= 2.23 Using recent glibc 2.22 snapshots from git still requires rebuilding libstdc++. Specifically, if you build GCC against glibc before https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=d9b965fa56350d6eea9f7f438a0714c7ffbb183f and then update glibc to a snapshot of 2.22 from git master after that commit, libstdc++ will not work. In that case glibc still reports itself as 2.22 and libstdc++ won't detect that the isinf and isnan declarations are gone, so must be reconfigured and rebuilt against the new glibc headers. When glibc releases 2.23 it weill be possible to upgrade to that without rebuilding libstdc++, because the version bump will tell libstdc++ the functions are gone.
[Bug libstdc++/69413] [6 Regression] r232327 prevents libstdc++ working after upgrading glibc to 2.23
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69413 --- Comment #1 from Jonathan Wakely --- Author: redi Date: Fri Jan 22 12:47:26 2016 New Revision: 232726 URL: https://gcc.gnu.org/viewcvs?rev=232726&root=gcc&view=rev Log: Allow _GLIBCXX_HAVE_OBSOLETE_ISINF_ISNAN to be overridden PR libstdc++/69413 * config/os/gnu-linux/os_defines.h: Define _GLIBCXX_NO_OBSOLETE_ISINF_ISNAN_DYNAMIC. * include/c_global/cmath (isinf, isnan): Check it. * doc/xml/manual/internals.xml: Document it. * doc/html/*: Regenerate. Modified: trunk/libstdc++-v3/ChangeLog trunk/libstdc++-v3/config/os/gnu-linux/os_defines.h trunk/libstdc++-v3/doc/html/manual/internals.html trunk/libstdc++-v3/doc/xml/manual/internals.xml trunk/libstdc++-v3/include/c_global/cmath
[Bug libstdc++/69413] [6 Regression] r232327 prevents libstdc++ working after upgrading glibc to 2.23
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69413 Richard Biener changed: What|Removed |Added Target Milestone|--- |6.0