aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2020-05-15 11:01:49 +0200
committerFlorian Weimer <fweimer@redhat.com>2020-05-20 20:27:49 +0200
commit07a73d521988a7fdea1bb3c3b5bbb2b23a0da2e1 (patch)
tree98f7dc6b3c80ec12f8f5a2fa759bc03e09de453a
parent52302bc298c99dc0d2ca3d1b07b4349129babae3 (diff)
downloadglibc-07a73d521988a7fdea1bb3c3b5bbb2b23a0da2e1.tar.xz
glibc-07a73d521988a7fdea1bb3c3b5bbb2b23a0da2e1.zip
nptl: Move pthread_gettattr_np into libc
This is part of the libpthread removal project: <https://sourceware.org/ml/libc-alpha/2019-10/msg00080.html> Use __getline instead of __getdelim to avoid a localplt failure. Likewise for __getrlimit/getrlimit. The abilist updates were performed by: git ls-files 'sysdeps/unix/sysv/linux/**/libc.abilist' \ | while read x ; do echo "GLIBC_2.32 pthread_getattr_np F" >> $x done python3 scripts/move-symbol-to-libc.py --only-linux pthread_getattr_np The private export of __pthread_getaffinity_np is no longer needed, but the hidden alias still necessary so that the symbol can be exported with versioned_symbol. Reviewed-by: Carlos O'Donell <carlos@redhat.com> Tested-by: Carlos O'Donell <carlos@redhat.com>
-rw-r--r--nptl/Makefile2
-rw-r--r--nptl/Versions8
-rw-r--r--nptl/libpthread-compat.c5
-rw-r--r--nptl/pthread_getattr_np.c13
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/libpthread.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/alpha/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/libpthread.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/arm/be/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/arm/be/libpthread.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/arm/le/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/arm/le/libpthread.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/csky/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/csky/libpthread.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/hppa/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/hppa/libpthread.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/i386/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/i386/libpthread.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/ia64/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/ia64/libpthread.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/be/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/le/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/nios2/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/nios2/libpthread.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/sh/be/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/sh/be/libpthread.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/sh/le/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/sh/le/libpthread.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/64/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist1
61 files changed, 95 insertions, 34 deletions
diff --git a/nptl/Makefile b/nptl/Makefile
index 7edad1c0c9..0dd8800f19 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -58,6 +58,7 @@ routines = \
pthread_condattr_init \
pthread_equal \
pthread_getaffinity \
+ pthread_getattr_np \
pthread_getschedparam \
pthread_self \
pthread_setschedparam \
@@ -89,7 +90,6 @@ libpthread-routines = nptl-init nptlfreeres vars events version pt-interp \
pthread_attr_getstackaddr pthread_attr_setstackaddr \
pthread_attr_getstacksize pthread_attr_setstacksize \
pthread_attr_getstack pthread_attr_setstack \
- pthread_getattr_np \
pthread_mutex_init pthread_mutex_destroy \
pthread_mutex_lock pthread_mutex_trylock \
pthread_mutex_timedlock pthread_mutex_unlock \
diff --git a/nptl/Versions b/nptl/Versions
index 637d100a9e..ce08076611 100644
--- a/nptl/Versions
+++ b/nptl/Versions
@@ -21,6 +21,9 @@ libc {
GLIBC_2.1 {
pthread_attr_init;
}
+ GLIBC_2.2.3 {
+ pthread_getattr_np;
+ }
GLIBC_2.3.2 {
__register_atfork;
@@ -43,6 +46,7 @@ libc {
GLIBC_2.32 {
pthread_attr_setaffinity_np;
pthread_getaffinity_np;
+ pthread_getattr_np;
pthread_sigmask;
}
GLIBC_PRIVATE {
@@ -55,7 +59,6 @@ libc {
# Used by the C11 threads implementation.
__pthread_cond_destroy; __pthread_cond_init;
__pthread_attr_setaffinity_np;
- __pthread_getaffinity_np; # For pthread_getattr_np.
}
}
@@ -197,8 +200,7 @@ libpthread {
}
GLIBC_2.2.3 {
- # Extensions.
- pthread_getattr_np;
+ __libpthread_version_placeholder;
}
GLIBC_2.2.6 {
diff --git a/nptl/libpthread-compat.c b/nptl/libpthread-compat.c
index 512b4c77c8..ec02b5dccf 100644
--- a/nptl/libpthread-compat.c
+++ b/nptl/libpthread-compat.c
@@ -41,6 +41,11 @@ compat_symbol_unique (libpthread,
__libpthread_version_placeholder, GLIBC_2_1_2);
#endif
+#if (SHLIB_COMPAT (libpthread, GLIBC_2_2_3, GLIBC_2_2_4))
+compat_symbol_unique (libpthread,
+ __libpthread_version_placeholder, GLIBC_2_2_3);
+#endif
+
#if (SHLIB_COMPAT (libpthread, GLIBC_2_2_6, GLIBC_2_3))
compat_symbol_unique (libpthread,
__libpthread_version_placeholder, GLIBC_2_2_6);
diff --git a/nptl/pthread_getattr_np.c b/nptl/pthread_getattr_np.c
index 644548d862..0e8911346d 100644
--- a/nptl/pthread_getattr_np.c
+++ b/nptl/pthread_getattr_np.c
@@ -30,7 +30,7 @@
int
-pthread_getattr_np (pthread_t thread_id, pthread_attr_t *attr)
+__pthread_getattr_np (pthread_t thread_id, pthread_attr_t *attr)
{
struct pthread *thread = (struct pthread *) thread_id;
struct pthread_attr *iattr = (struct pthread_attr *) attr;
@@ -84,7 +84,7 @@ pthread_getattr_np (pthread_t thread_id, pthread_attr_t *attr)
/* We need the limit of the stack in any case. */
else
{
- if (getrlimit (RLIMIT_STACK, &rl) != 0)
+ if (__getrlimit (RLIMIT_STACK, &rl) != 0)
ret = errno;
else
{
@@ -115,7 +115,7 @@ pthread_getattr_np (pthread_t thread_id, pthread_attr_t *attr)
while (! feof_unlocked (fp))
{
- if (__getdelim (&line, &linelen, '\n', fp) <= 0)
+ if (__getline (&line, &linelen, fp) <= 0)
break;
uintptr_t from;
@@ -208,3 +208,10 @@ pthread_getattr_np (pthread_t thread_id, pthread_attr_t *attr)
return ret;
}
+versioned_symbol (libc, __pthread_getattr_np, pthread_getattr_np, GLIBC_2_32);
+
+#if SHLIB_COMPAT (libc, GLIBC_2_2_3, GLIBC_2_32)
+strong_alias (__pthread_getattr_np, __pthread_getattr_np_alias)
+compat_symbol (libc, __pthread_getattr_np_alias,
+ pthread_getattr_np, GLIBC_2_2_3);
+#endif
diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
index 55499b8d3c..6dc59b38b0 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist
@@ -1440,6 +1440,7 @@ GLIBC_2.17 pthread_condattr_init F
GLIBC_2.17 pthread_equal F
GLIBC_2.17 pthread_exit F
GLIBC_2.17 pthread_getaffinity_np F
+GLIBC_2.17 pthread_getattr_np F
GLIBC_2.17 pthread_getschedparam F
GLIBC_2.17 pthread_mutex_destroy F
GLIBC_2.17 pthread_mutex_init F
@@ -2150,4 +2151,5 @@ GLIBC_2.30 tgkill F
GLIBC_2.30 twalk_r F
GLIBC_2.32 pthread_attr_setaffinity_np F
GLIBC_2.32 pthread_getaffinity_np F
+GLIBC_2.32 pthread_getattr_np F
GLIBC_2.32 pthread_sigmask F
diff --git a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
index 77cf95c491..c6b4ea2dc1 100644
--- a/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/aarch64/libpthread.abilist
@@ -95,7 +95,6 @@ GLIBC_2.17 pthread_condattr_setpshared F
GLIBC_2.17 pthread_create F
GLIBC_2.17 pthread_detach F
GLIBC_2.17 pthread_exit F
-GLIBC_2.17 pthread_getattr_np F
GLIBC_2.17 pthread_getconcurrency F
GLIBC_2.17 pthread_getcpuclockid F
GLIBC_2.17 pthread_getname_np F
diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist
index 387b0badaa..fd628bcd28 100644
--- a/sysdeps/unix/sysv/linux/alpha/libc.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist
@@ -1969,6 +1969,7 @@ GLIBC_2.2.3 __rpc_thread_svc_fdset F
GLIBC_2.2.3 __rpc_thread_svc_max_pollfd F
GLIBC_2.2.3 __rpc_thread_svc_pollfd F
GLIBC_2.2.3 fnmatch F
+GLIBC_2.2.3 pthread_getattr_np F
GLIBC_2.2.3 sprofil F
GLIBC_2.2.4 dl_iterate_phdr F
GLIBC_2.2.4 getgrouplist F
@@ -2232,6 +2233,7 @@ GLIBC_2.30 tgkill F
GLIBC_2.30 twalk_r F
GLIBC_2.32 pthread_attr_setaffinity_np F
GLIBC_2.32 pthread_getaffinity_np F
+GLIBC_2.32 pthread_getattr_np F
GLIBC_2.32 pthread_sigmask F
GLIBC_2.4 _IO_fprintf F
GLIBC_2.4 _IO_printf F
diff --git a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
index 8d504c3cdb..390b6384d0 100644
--- a/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
+++ b/sysdeps/unix/sysv/linux/alpha/libpthread.abilist
@@ -177,7 +177,7 @@ GLIBC_2.2 pthread_yield F
GLIBC_2.2 pwrite F
GLIBC_2.2 pwrite64 F
GLIBC_2.2 sem_timedwait F
-GLIBC_2.2.3 pthread_getattr_np F