https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122401
Bug ID: 122401
Summary: [16 Regression] A few libstdc++ testcases fail with
older glibc
Product: gcc
Version: 16.0
Status: UNCONFIRMED
Keywords: testsuite-fail
Severity: normal
Priority: P3
Component: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: pinskia at gcc dot gnu.org
Target Milestone: ---
Target: aarch64-linux-gnu
These new testcases fail with an older glibc because they require to link with
libpthread which is not included in libc on older glibc:
```
+FAIL: 20_util/shared_ptr/atomic/pr118757.cc -std=gnu++20 (test for excess
errors)
+UNRESOLVED: 20_util/shared_ptr/atomic/pr118757.cc -std=gnu++20 compilation
failed to produce executable
+FAIL: 20_util/shared_ptr/atomic/pr118757.cc -std=gnu++26 (test for excess
errors)
+UNRESOLVED: 20_util/shared_ptr/atomic/pr118757.cc -std=gnu++26 compilation
failed to produce executable
+FAIL: 20_util/weak_ptr/pr118757.cc -std=gnu++20 (test for excess errors)
+UNRESOLVED: 20_util/weak_ptr/pr118757.cc -std=gnu++20 compilation failed to
produce executable
+FAIL: 20_util/weak_ptr/pr118757.cc -std=gnu++26 (test for excess errors)
+UNRESOLVED: 20_util/weak_ptr/pr118757.cc -std=gnu++26 compilation failed to
produce executable
+FAIL: 30_threads/recursive_timed_mutex/try_lock_until/116586.cc -std=gnu++17
(test for excess errors)
+UNRESOLVED: 30_threads/recursive_timed_mutex/try_lock_until/116586.cc
-std=gnu++17 compilation failed to produce executable
+FAIL: 30_threads/shared_timed_mutex/try_lock_until/116586.cc -std=gnu++17
(test for excess errors)
+UNRESOLVED: 30_threads/shared_timed_mutex/try_lock_until/116586.cc
-std=gnu++17 compilation failed to produce executable
```
Error message on these:
```
Executing on host: /home/pinskia/src/upstream/gcc/objdir/./gcc/xg++
-shared-libgcc -B/home/pinskia/src/upstream/gcc/objdir/./gcc -nostdinc++
-L/home/pinskia/src/upstream/gcc/objdir/aarch64-unknown-linux-gnu/libstdc++-v3/src
-L/home/pinskia/src/upstream/gcc/objdir/aarch64-unknown-linux-gnu/libstdc++-v3/src/.libs
-L/home/pinskia/src/upstream/gcc/objdir/aarch64-unknown-linux-gnu/libstdc++-v3/libsupc++/.libs
-B/home/pinskia/upstream/aarch64-unknown-linux-gnu/bin/
-B/home/pinskia/upstream/aarch64-unknown-linux-gnu/lib/ -isystem
/home/pinskia/upstream/aarch64-unknown-linux-gnu/include -isystem
/home/pinskia/upstream/aarch64-unknown-linux-gnu/sys-include -fchecking=1
-B/home/pinskia/src/upstream/gcc/objdir/aarch64-unknown-linux-gnu/./libstdc++-v3/src/.libs
-fmessage-length=0 -fno-show-column -ffunction-sections -fdata-sections -g -O2
-D_GNU_SOURCE -DLOCALEDIR="." -nostdinc++
-I/home/pinskia/src/upstream/gcc/objdir/aarch64-unknown-linux-gnu/libstdc++-v3/include/aarch64-unknown-linux-gnu
-I/home/pinskia/src/upstream/gcc/objdir/aarch64-unknown-linux-gnu/libstdc++-v3/include
-I/home/pinskia/src/upstream/gcc/libstdc++-v3/libsupc++
-I/home/pinskia/src/upstream/gcc/libstdc++-v3/include/backward
-I/home/pinskia/src/upstream/gcc/libstdc++-v3/testsuite/util
/home/pinskia/src/upstream/gcc/libstdc++-v3/testsuite/30_threads/shared_timed_mutex/try_lock_until/116586.cc
-std=gnu++17 -include bits/stdc++.h -fdiagnostics-plain-output -Wabi=20
./libtestc++.a -Wl,--gc-sections
-L/home/pinskia/src/upstream/gcc/objdir/aarch64-unknown-linux-gnu/libstdc++-v3/src/filesystem/.libs
-L/home/pinskia/src/upstream/gcc/objdir/aarch64-unknown-linux-gnu/libstdc++-v3/src/experimental/.libs
-lm -o ./116586.exe (timeout = 360)
spawn -ignore SIGHUP /home/pinskia/src/upstream/gcc/objdir/./gcc/xg++
-shared-libgcc -B/home/pinskia/src/upstream/gcc/objdir/./gcc -nostdinc++
-L/home/pinskia/src/upstream/gcc/objdir/aarch64-unknown-linux-gnu/libstdc++-v3/src
-L/home/pinskia/src/upstream/gcc/objdir/aarch64-unknown-linux-gnu/libstdc++-v3/src/.libs
-L/home/pinskia/src/upstream/gcc/objdir/aarch64-unknown-linux-gnu/libstdc++-v3/libsupc++/.libs
-B/home/pinskia/upstream/aarch64-unknown-linux-gnu/bin/
-B/home/pinskia/upstream/aarch64-unknown-linux-gnu/lib/ -isystem
/home/pinskia/upstream/aarch64-unknown-linux-gnu/include -isystem
/home/pinskia/upstream/aarch64-unknown-linux-gnu/sys-include -fchecking=1
-B/home/pinskia/src/upstream/gcc/objdir/aarch64-unknown-linux-gnu/./libstdc++-v3/src/.libs
-fmessage-length=0 -fno-show-column -ffunction-sections -fdata-sections -g -O2
-D_GNU_SOURCE -DLOCALEDIR="." -nostdinc++
-I/home/pinskia/src/upstream/gcc/objdir/aarch64-unknown-linux-gnu/libstdc++-v3/include/aarch64-unknown-linux-gnu
-I/home/pinskia/src/upstream/gcc/objdir/aarch64-unknown-linux-gnu/libstdc++-v3/include
-I/home/pinskia/src/upstream/gcc/libstdc++-v3/libsupc++
-I/home/pinskia/src/upstream/gcc/libstdc++-v3/include/backward
-I/home/pinskia/src/upstream/gcc/libstdc++-v3/testsuite/util
/home/pinskia/src/upstream/gcc/libstdc++-v3/testsuite/30_threads/shared_timed_mutex/try_lock_until/116586.cc
-std=gnu++17 -include bits/stdc++.h -fdiagnostics-plain-output -Wabi=20
./libtestc++.a -Wl,--gc-sections
-L/home/pinskia/src/upstream/gcc/objdir/aarch64-unknown-linux-gnu/libstdc++-v3/src/filesystem/.libs
-L/home/pinskia/src/upstream/gcc/objdir/aarch64-unknown-linux-gnu/libstdc++-v3/src/experimental/.libs
-lm -o ./116586.exe
/usr/bin/ld: /tmp/ccSYYyYN.o: undefined reference to symbol
'pthread_create@@GLIBC_2.17'
//usr/lib64/libpthread.so.0: error adding symbols: DSO missing from command
line
collect2: error: ld returned 1 exit status
compiler exited with status 1
FAIL: 30_threads/shared_timed_mutex/try_lock_until/116586.cc -std=gnu++17
(test for excess errors)
Excess errors:
/usr/bin/ld: /tmp/ccSYYyYN.o: undefined reference to symbol
'pthread_create@@GLIBC_2.17'
//usr/lib64/libpthread.so.0: error adding symbols: DSO missing from command
line
collect2: error: ld returned 1 exit status
```
Other testcases in the same directory use:
```
// { dg-additional-options "-pthread" { target pthread } }
// { dg-require-gthreads "" }
```
While these don't.