libstdc++: Disable gthreads weak symbols for glibc 2.34 [PR103133]

Since Glibc 2.34 all pthreads symbols are defined directly in libc not
libpthread, and since Glibc 2.32 we have used __libc_single_threaded to
avoid unnecessary locking in single-threaded programs. This means there
is no reason to avoid linking to libpthread now, and so no reason to use
weak symbols defined in gthr-posix.h for all the pthread_xxx functions.

libstdc++-v3/ChangeLog:

	PR libstdc++/100748
	PR libstdc++/103133
	* config/os/gnu-linux/os_defines.h (_GLIBCXX_GTHREAD_USE_WEAK):
	Define for glibc 2.34 and later.
This commit is contained in:
Jonathan Wakely 2021-11-09 23:45:36 +00:00
parent b2cd32b743
commit 80fe172ba9

View File

@ -61,4 +61,10 @@
(__gthread_active_p() ? __gthread_self() : (__gthread_t)1)
#endif
#if __GLIBC_PREREQ(2, 34)
// Since glibc 2.34 all pthreads functions are usable without linking to
// libpthread.
# define _GLIBCXX_GTHREAD_USE_WEAK 0
#endif
#endif