diff options
author | Jonathan Wakely <jwakely@redhat.com> | 2021-11-09 23:45:36 +0000 |
---|---|---|
committer | Jonathan Wakely <jwakely@redhat.com> | 2021-11-10 12:01:27 +0000 |
commit | 80fe172ba9820199c2bbce5d0611ffca27823049 (patch) | |
tree | 5795b6718c5423c1fe53923759a25f18e992b726 | |
parent | b2cd32b743ba440e75505ce30c6b5c592ed144ea (diff) | |
download | gcc-80fe172ba9820199c2bbce5d0611ffca27823049.zip gcc-80fe172ba9820199c2bbce5d0611ffca27823049.tar.gz gcc-80fe172ba9820199c2bbce5d0611ffca27823049.tar.bz2 |
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.
-rw-r--r-- | libstdc++-v3/config/os/gnu-linux/os_defines.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/libstdc++-v3/config/os/gnu-linux/os_defines.h b/libstdc++-v3/config/os/gnu-linux/os_defines.h index d5bb2a1..3a05345 100644 --- a/libstdc++-v3/config/os/gnu-linux/os_defines.h +++ b/libstdc++-v3/config/os/gnu-linux/os_defines.h @@ -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 |