Hi! On 2026-07-16T23:08:55+0200, Jakub Jelinek <[email protected]> wrote: > 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. > > 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).
I'm confirming this; I eventually forcefully terminated my 'check-target-libstdc++-v3's, which didn't look like completing in any reasonable amount of time. Arsen, how have you been testing this patch? Please revert until that's sorted out. Grüße Thomas > 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
