On Mon, 31 Mar 2025 at 16:11, Rainer Orth <r...@cebitec.uni-bielefeld.de> wrote: > > Jonathan Wakely <jwakely....@gmail.com> writes: > > > On Sun, 30 Mar 2025, 23:15 Jakub Jelinek, <ja...@redhat.com> wrote: > > > >> On Thu, Mar 27, 2025 at 02:04:24PM +0100, Jan Hubicka wrote: > >> > > > Newline between functions please. > >> > > > > >> > > > OK with those two changes. > >> > > > >> > > Looking back through my inbox, this one doesn't seem to have been > >> > > pushed. Was it superseded by something else, or is it just waiting for > >> > > stage 1 now? > >> > > >> > Seems I missed the approval, sorry. I will push it - I think it would > >> > be useful to have it in. > >> > (I have more libstdc++ work for next stage1, but solving this is IMO > >> > useful) > >> > >> Unfortunately the exports in this patch only work on targets where size_t > >> is > >> unsigned long, not e.g. on ia32 where it is unsigned int, or targets where > >> it is unsigned long long. > >> > >> Fixed thusly, tested on x86_64-linux and i686-linux, ok for trunk? > >> > > > > OK, thanks > > with those two patches in, Solaris bootstrap with the native ld is > broken linking libstdc++.so: > > ld: fatal: libstdc++-symbols.ver-sun: 7449: symbol > '_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructILb0EEEvPKcj': > symbol version conflict > ld: fatal: libstdc++-symbols.ver-sun: 7450: symbol > '_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructILb1EEEvPKcj': > symbol version conflict > ld: fatal: libstdc++-symbols.ver-sun: 7451: symbol > '_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12_M_constructILb0EEEvPKwj': > symbol version conflict > ld: fatal: libstdc++-symbols.ver-sun: 7452: symbol > '_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12_M_constructILb1EEEvPKwj': > symbol version conflict > collect2: error: ld returned 1 exit status > > E.g. > _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructILb0EEEvPKcj > is matched by both > > _ZNSt7__cxx1112basic_stringI[cw]St11char_traitsI[cw]ESaI[cw]EE12_M* > > in GLIBCXX_3.4.21 and > > _ZNSt7__cxx1112basic_stringI[cw]St11char_traitsI[cw]ESaI[cw]EE12_M_constructILb[01]EEEvPK[cw][jmy] > > in GLIBCXX_3.4.34.
This should fix it: --- a/libstdc++-v3/config/abi/pre/gnu.ver +++ b/libstdc++-v3/config/abi/pre/gnu.ver @@ -1767,7 +1767,8 @@ GLIBCXX_3.4.21 { _ZNSt7__cxx1112basic_stringI[cw]St11char_traitsI[cw]ESaI[cw]EE10_S_compareE[jmy][jmy]; _ZNSt7__cxx1112basic_stringI[cw]St11char_traitsI[cw]ESaI[cw]EE11_M_capacityE[jmy]; _ZNSt7__cxx1112basic_stringI[cw]St11char_traitsI[cw]ESaI[cw]EE12_Alloc_hiderC[12]EP[cw]RKS3_; - _ZNSt7__cxx1112basic_stringI[cw]St11char_traitsI[cw]ESaI[cw]EE12_M*; + _ZNSt7__cxx1112basic_stringI[cw]St11char_traitsI[cw]ESaI[cw]EE12_M_constructE[jmy][cw]; + _ZNSt7__cxx1112basic_stringI[cw]St11char_traitsI[cw]ESaI[cw]EE12_M_constructI[NP]*; _ZNSt7__cxx1112basic_stringI[cw]St11char_traitsI[cw]ESaI[cw]EE13*; _ZNSt7__cxx1112basic_stringI[cw]St11char_traitsI[cw]ESaI[cw]EE14_M_replace_aux*; _ZNSt7__cxx1112basic_stringI[cw]St11char_traitsI[cw]ESaI[cw]EE1[68-9]*;