[Bug bootstrap/87858] Building old multilib bootstrap GCC: stage1 32-bit libstdc++ fails to build after building 64-bit libstdc++

2021-04-01 Thread libor.bukata at oracle dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87858

Libor Bukata  changed:

   What|Removed |Added

 CC||libor.bukata at oracle dot com

--- Comment #4 from Libor Bukata  ---
We also cannot build older GCC versions with GCC 11 nightly (commit
8a6a62614a8ae) on Solaris Trunk:

/builds/gcc_nightly_full_build/components/gcc10/build/amd64/./gcc/xgcc
-shared-libgcc
-B/builds/gcc_nightly_full_build/components/gcc10/build/amd64/./gcc -nostdinc++
-L/builds/gcc_nightly_full_build/components/gcc10/build/amd64/x86_64-pc-solaris2.11/32/libstdc++-v3/src
-L/builds/gcc_nightly_full_build/components/gcc10/build/amd64/x86_64-pc-solaris2.11/32/libstdc++-v3/src/.libs
-L/builds/gcc_nightly_full_build/components/gcc10/build/amd64/x86_64-pc-solaris2.11/32/libstdc++-v3/libsupc++/.libs
-B/usr/gcc/10/x86_64-pc-solaris2.11/bin/
-B/usr/gcc/10/x86_64-pc-solaris2.11/lib/ -isystem
/usr/gcc/10/x86_64-pc-solaris2.11/include -isystem
/usr/gcc/10/x86_64-pc-solaris2.11/sys-include -fno-checking  -m32 -x c++-header
-nostdinc++ -g -O2  -m32 
-I/builds/gcc_nightly_full_build/components/gcc10/build/amd64/x86_64-pc-solaris2.11/32/libstdc++-v3/include/x86_64-pc-solaris2.11
-I/builds/gcc_nightly_full_build/components/gcc10/build/amd64/x86_64-pc-solaris2.11/32/libstdc++-v3/include
-I/builds/gcc_nightly_full_build/components/gcc10/gcc-10.2.0/libstdc++-v3/libsupc++
 -O2 -g -std=gnu++0x
/builds/gcc_nightly_full_build/components/gcc10/gcc-10.2.0/libstdc++-v3/include/precompiled/stdc++.h
\
-o x86_64-pc-solaris2.11/bits/stdc++.h.gch/O2ggnu++0x.gch
ld.so.1: cc1plus: fatal: libstdc++.so.6: version 'GLIBCXX_3.4.29' not found
(required by file
/builds/gcc_nightly_full_build/components/gcc10/build/amd64/gcc/cc1plus)
ld.so.1: cc1plus: fatal:
/builds/gcc_nightly_full_build/components/gcc10/build/amd64/gcc/cc1plus:
mismatched ELF symbol versioning
xgcc: fatal error: Killed signal terminated program cc1plus

GLIBCXX_3.4.29 is a new addition to libstdc++.so.6 that is not available in
older libstdc++.so.6 libraries of GCC 7, 9, and 10.

[Bug libstdc++/66146] call_once not C++11-compliant on ppc64le

2021-02-04 Thread libor.bukata at oracle dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66146

Libor Bukata  changed:

   What|Removed |Added

 CC||libor.bukata at oracle dot com

--- Comment #38 from Libor Bukata  ---
(In reply to Jonathan Wakely from comment #34)
> Untested sketch of a solution for Solaris and BSDs:
> https://gcc.gnu.org/pipermail/gcc-patches/2020-November/557928.html

Thank you for the patch, I will test it on Solaris
and let you know when I have the results.

[Bug libstdc++/66146] call_once not C++11-compliant on ppc64le

2021-02-11 Thread libor.bukata at oracle dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66146

--- Comment #39 from Libor Bukata  ---
(In reply to Libor Bukata from comment #38)
> (In reply to Jonathan Wakely from comment #34)
> > Untested sketch of a solution for Solaris and BSDs:
> > https://gcc.gnu.org/pipermail/gcc-patches/2020-November/557928.html
> 
> Thank you for the patch, I will test it on Solaris
> and let you know when I have the results.

Patched GCC master with Jonathan's patch, but unfortunately it is not
compilable on Solaris 11:
In file included from
/gcc_nightly/build/sparcv9/sparcv9-sun-solaris2.11/libstdc++-v3/include/sparcv9-sun-solaris2.11/bits/c++config.h:568,
 from
/gcc_nightly/build/sparcv9/sparcv9-sun-solaris2.11/libstdc++-v3/include/cassert:43,
 from
/gcc_nightly/gcc-11.0.0-master/libstdc++-v3/include/precompiled/stdc++.h:33:
/gcc_nightly/build/sparcv9/sparcv9-sun-solaris2.11/libstdc++-v3/include/mutex:861:10:
error: token "{" is not valid in preprocessor expressions
  861 |   || _GLIBCXX_COMPAT_PTHREAD_ONCE_T
  |  ^~
In file included from
/gcc_nightly/build/sparcv9/sparcv9-sun-solaris2.11/libstdc++-v3/include/sparcv9-sun-solaris2.11/bits/c++config.h:568,
 from
/gcc_nightly/build/sparcv9/sparcv9-sun-solaris2.11/libstdc++-v3/include/cassert:43,
 from
/gcc_nightly/gcc-11.0.0-master/libstdc++-v3/include/precompiled/stdc++.h:33:
/gcc_nightly/build/sparcv9/sparcv9-sun-solaris2.11/libstdc++-v3/include/mutex:861:10:
error: token "{" is not valid in preprocessor expressions
  861 |   || _GLIBCXX_COMPAT_PTHREAD_ONCE_T
  |  ^~
In file included from
/gcc_nightly/build/sparcv9/sparcv9-sun-solaris2.11/libstdc++-v3/include/future:38,
 from
/gcc_nightly/gcc-11.0.0-master/libstdc++-v3/include/precompiled/stdc++.h:105:
/gcc_nightly/build/sparcv9/sparcv9-sun-solaris2.11/libstdc++-v3/include/mutex:675:15:
error: explicitly defaulted function 'constexpr std::once_flag::once_flag()'
cannot be declared 'constexpr' because the implicit declaration is not
'constexpr':
  675 | constexpr once_flag() noexcept = default;
  |   ^
/gcc_nightly/build/sparcv9/sparcv9-sun-solaris2.11/libstdc++-v3/include/mutex:699:12:
note: defaulted constructor calls non-'constexpr'
'std::once_flag::_Once::_Once()'
  699 | struct _Once _GLIBCXX_COMPAT_PTHREAD_ONCE_T;

Note that there was a merge conflict with the current master, however, its
resolution was straightforward. If there is an updated patch, I will be happy
to test it as well.