On Thu, Jul 16, 2026 at 12:39:24PM +0200, Arsen Arsenović wrote:
> Arsen Arsenović <[email protected]> writes:
> 
> > Previously, none would be set, so an installed compiler that does not
> > emit an RPATH to its libraries would not be able to execute programs
> > that require libstdc++.so symbols.
> >
> > libstdc++-v3/ChangeLog:
> >
> >     * testsuite/lib/libstdc++.exp (libstdc++_init): Use
> >     gcc-set-multilib-library-path to calculate LD_LIBRARY_PATH for
> >     installed G++ compilers.
> > ---
> > Before:
> >
> >   Setting LD_LIBRARY_PATH to 
> > :/usr/local/tools/gcc-2025/lib64:/usr/local/tools/gcc-2025/lib
> >   Execution timeout is: 300
> >   spawn [open ...]
> >   ./1.exe: /usr/local/tools/gcc-2025/lib64/libstdc++.so.6: version 
> > `GLIBCXX_3.4.35' not found (required by ./1.exe)
> >   FAIL: 23_containers/flat_set/1.cc  -std=gnu++26 execution test
> >
> > After:
> >
> >   Setting LD_LIBRARY_PATH to 
> > :/srv/data/aarsenovic/getting-started/install/lib/gcc/x86_64-none-linux-gnu/17.0.0/../../../../x86_64-none-linux-gnu/lib/../lib64::/srv/data/aarsenovic/getting-started/install/lib/gcc/x86_64-none-linux-gnu/17.0.0/../../../../x86_64-none-linux-gnu/lib/../lib64:/usr/local/tools/gcc-2025/lib64:/usr/local/tools/gcc-2025/lib
> >   Execution timeout is: 300
> >   spawn [open ...]
> >   PASS: 23_containers/flat_set/1.cc  -std=gnu++26 execution test
> >
> > Other testsuites also seem to do this.
> >
> > OK?  It may be useful also to backport.
> 
> Gentle ping

I suspect this broke libstdc++ completely, the testing now takes
significantly more time with parallel testing (and still pending).
I normally do x86_64-linux and i686-linux bootstrap/make check in
parallel, each with make -j32.  The bootstrap times were today
the same as yesterday, ~ 1h:10m for i686 and ~ 1h:30m for x86_64,
but make check took yesterday ~ 1h:34m on i686 and ~ 1h:45m on x86_64,
but today it is over 2h:40 on both and still nowhere the end.
It seems as if instead of running each libstdc++ test once as before
it now runs it 32 times (so each runtest.exp invocation runs it once).
grep PASS.*17_intro/freestanding.cc 
obj61/i686-pc-linux-gnu/libstdc++-v3/testsuite/*/*.log*
obj61/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal1/libstdc++.log.sep:PASS: 
17_intro/freestanding.cc  -std=gnu++20 (test for excess errors)
obj61/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal1/libstdc++.log.sep:PASS: 
17_intro/freestanding.cc  -std=gnu++20 execution test
vs.
grep PASS.*17_intro/freestanding.cc 
obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/*/*.log*
obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal10/libstdc++.log:PASS: 
17_intro/freestanding.cc  -std=gnu++20 (test for excess errors)
obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal10/libstdc++.log:PASS: 
17_intro/freestanding.cc  -std=gnu++20 execution test
obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal11/libstdc++.log:PASS: 
17_intro/freestanding.cc  -std=gnu++20 (test for excess errors)
obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal11/libstdc++.log:PASS: 
17_intro/freestanding.cc  -std=gnu++20 execution test
obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal12/libstdc++.log:PASS: 
17_intro/freestanding.cc  -std=gnu++20 (test for excess errors)
obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal12/libstdc++.log:PASS: 
17_intro/freestanding.cc  -std=gnu++20 execution test
obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal13/libstdc++.log:PASS: 
17_intro/freestanding.cc  -std=gnu++20 (test for excess errors)
obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal13/libstdc++.log:PASS: 
17_intro/freestanding.cc  -std=gnu++20 execution test
obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal14/libstdc++.log:PASS: 
17_intro/freestanding.cc  -std=gnu++20 (test for excess errors)
obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal14/libstdc++.log:PASS: 
17_intro/freestanding.cc  -std=gnu++20 execution test
obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal15/libstdc++.log:PASS: 
17_intro/freestanding.cc  -std=gnu++20 (test for excess errors)
obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal15/libstdc++.log:PASS: 
17_intro/freestanding.cc  -std=gnu++20 execution test
obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal16/libstdc++.log:PASS: 
17_intro/freestanding.cc  -std=gnu++20 (test for excess errors)
obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal16/libstdc++.log:PASS: 
17_intro/freestanding.cc  -std=gnu++20 execution test
obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal17/libstdc++.log:PASS: 
17_intro/freestanding.cc  -std=gnu++20 (test for excess errors)
obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal17/libstdc++.log:PASS: 
17_intro/freestanding.cc  -std=gnu++20 execution test
obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal18/libstdc++.log:PASS: 
17_intro/freestanding.cc  -std=gnu++20 (test for excess errors)
obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal18/libstdc++.log:PASS: 
17_intro/freestanding.cc  -std=gnu++20 execution test
obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal19/libstdc++.log:PASS: 
17_intro/freestanding.cc  -std=gnu++20 (test for excess errors)
obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal19/libstdc++.log:PASS: 
17_intro/freestanding.cc  -std=gnu++20 execution test
obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal1/libstdc++.log:PASS: 
17_intro/freestanding.cc  -std=gnu++20 (test for excess errors)
obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal1/libstdc++.log:PASS: 
17_intro/freestanding.cc  -std=gnu++20 execution test
obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal20/libstdc++.log:PASS: 
17_intro/freestanding.cc  -std=gnu++20 (test for excess errors)
obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal20/libstdc++.log:PASS: 
17_intro/freestanding.cc  -std=gnu++20 execution test
obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal21/libstdc++.log:PASS: 
17_intro/freestanding.cc  -std=gnu++20 (test for excess errors)
obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal21/libstdc++.log:PASS: 
17_intro/freestanding.cc  -std=gnu++20 execution test
obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal22/libstdc++.log:PASS: 
17_intro/freestanding.cc  -std=gnu++20 (test for excess errors)
obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal22/libstdc++.log:PASS: 
17_intro/freestanding.cc  -std=gnu++20 execution test
obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal23/libstdc++.log:PASS: 
17_intro/freestanding.cc  -std=gnu++20 (test for excess errors)
obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal23/libstdc++.log:PASS: 
17_intro/freestanding.cc  -std=gnu++20 execution test
obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal24/libstdc++.log:PASS: 
17_intro/freestanding.cc  -std=gnu++20 (test for excess errors)
obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal24/libstdc++.log:PASS: 
17_intro/freestanding.cc  -std=gnu++20 execution test
obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal25/libstdc++.log:PASS: 
17_intro/freestanding.cc  -std=gnu++20 (test for excess errors)
obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal25/libstdc++.log:PASS: 
17_intro/freestanding.cc  -std=gnu++20 execution test
obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal26/libstdc++.log:PASS: 
17_intro/freestanding.cc  -std=gnu++20 (test for excess errors)
obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal26/libstdc++.log:PASS: 
17_intro/freestanding.cc  -std=gnu++20 execution test
obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal27/libstdc++.log:PASS: 
17_intro/freestanding.cc  -std=gnu++20 (test for excess errors)
obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal27/libstdc++.log:PASS: 
17_intro/freestanding.cc  -std=gnu++20 execution test
obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal28/libstdc++.log:PASS: 
17_intro/freestanding.cc  -std=gnu++20 (test for excess errors)
obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal28/libstdc++.log:PASS: 
17_intro/freestanding.cc  -std=gnu++20 execution test
obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal29/libstdc++.log:PASS: 
17_intro/freestanding.cc  -std=gnu++20 (test for excess errors)
obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal29/libstdc++.log:PASS: 
17_intro/freestanding.cc  -std=gnu++20 execution test
obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal2/libstdc++.log:PASS: 
17_intro/freestanding.cc  -std=gnu++20 (test for excess errors)
obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal2/libstdc++.log:PASS: 
17_intro/freestanding.cc  -std=gnu++20 execution test
obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal30/libstdc++.log:PASS: 
17_intro/freestanding.cc  -std=gnu++20 (test for excess errors)
obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal30/libstdc++.log:PASS: 
17_intro/freestanding.cc  -std=gnu++20 execution test
obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal31/libstdc++.log:PASS: 
17_intro/freestanding.cc  -std=gnu++20 (test for excess errors)
obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal31/libstdc++.log:PASS: 
17_intro/freestanding.cc  -std=gnu++20 execution test
obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal32/libstdc++.log:PASS: 
17_intro/freestanding.cc  -std=gnu++20 (test for excess errors)
obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal32/libstdc++.log:PASS: 
17_intro/freestanding.cc  -std=gnu++20 execution test
obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal3/libstdc++.log:PASS: 
17_intro/freestanding.cc  -std=gnu++20 (test for excess errors)
obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal3/libstdc++.log:PASS: 
17_intro/freestanding.cc  -std=gnu++20 execution test
obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal4/libstdc++.log:PASS: 
17_intro/freestanding.cc  -std=gnu++20 (test for excess errors)
obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal4/libstdc++.log:PASS: 
17_intro/freestanding.cc  -std=gnu++20 execution test
obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal5/libstdc++.log:PASS: 
17_intro/freestanding.cc  -std=gnu++20 (test for excess errors)
obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal5/libstdc++.log:PASS: 
17_intro/freestanding.cc  -std=gnu++20 execution test
obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal6/libstdc++.log:PASS: 
17_intro/freestanding.cc  -std=gnu++20 (test for excess errors)
obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal6/libstdc++.log:PASS: 
17_intro/freestanding.cc  -std=gnu++20 execution test
obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal7/libstdc++.log:PASS: 
17_intro/freestanding.cc  -std=gnu++20 (test for excess errors)
obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal7/libstdc++.log:PASS: 
17_intro/freestanding.cc  -std=gnu++20 execution test
obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal8/libstdc++.log:PASS: 
17_intro/freestanding.cc  -std=gnu++20 (test for excess errors)
obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal8/libstdc++.log:PASS: 
17_intro/freestanding.cc  -std=gnu++20 execution test
obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal9/libstdc++.log:PASS: 
17_intro/freestanding.cc  -std=gnu++20 (test for excess errors)
obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/normal9/libstdc++.log:PASS: 
17_intro/freestanding.cc  -std=gnu++20 execution test

grep ^PASS obj61/i686-pc-linux-gnu/libstdc++-v3/testsuite/*/*.log* | wc -l
19723
grep ^PASS obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/*/*.log* | wc -l
119077

Isn't the
+load_gcc_lib gcc-defs.exp
part the culprit here?
I haven't done anything to prove this yet though, I just suspect your
change because I don't see anything else touching libstdc++ *.exp files.

I'm also seeing some FAILs:
grep ^FAIL obj61/i686-pc-linux-gnu/libstdc++-v3/testsuite/*/*.log* | wc -l
0
grep ^FAIL obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/*/*.log* | wc -l
56
it is just 3 tests
grep ^FAIL obj63/i686-pc-linux-gnu/libstdc++-v3/testsuite/*/*.log* | sed 
's/^.*FAIL:/FAIL:/' | sort -u
FAIL: 20_util/hash/chi2_q_document_words.cc  -std=gnu++20 execution test
FAIL: 20_util/smartptr.adapt/out_ptr/1.cc  -std=gnu++23 execution test
FAIL: 20_util/smartptr.adapt/out_ptr/1.cc  -std=gnu++29 execution test
but again, repeated so many times (and because it is FILE I/O, I suspect
that several make check now try to open the file in the same directory or
something similar).

        Jakub

Reply via email to