aboutsummaryrefslogtreecommitdiff
path: root/sysdeps
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2021-07-21 11:42:31 +0200
committerFlorian Weimer <fweimer@redhat.com>2021-07-21 11:58:16 +0200
commitb39ffab860cd743a82c91946619f1b8158b0b65e (patch)
treefa25c15ecf6932037425ce6b1db67e94880eeb09 /sysdeps
parent8a40aff86ba5f64a3a84883e539cb67bd48db030 (diff)
downloadglibc-b39ffab860cd743a82c91946619f1b8158b0b65e.zip
glibc-b39ffab860cd743a82c91946619f1b8158b0b65e.tar.gz
glibc-b39ffab860cd743a82c91946619f1b8158b0b65e.tar.bz2
Linux: Add time64 alias for prctl
Reviewed-by: Lukasz Majewski <lukma@denx.de> Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/unix/sysv/linux/Makefile6
-rw-r--r--sysdeps/unix/sysv/linux/Versions1
-rw-r--r--sysdeps/unix/sysv/linux/arm/be/libc.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/arm/le/libc.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/csky/libc.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/hppa/libc.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/i386/libc.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/be/libc.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/microblaze/le/libc.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/nios2/libc.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/prctl.c3
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/sh/be/libc.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/sh/le/libc.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist1
-rw-r--r--sysdeps/unix/sysv/linux/sys/prctl.h10
-rw-r--r--sysdeps/unix/sysv/linux/tst-prctl-time64.c1
-rw-r--r--sysdeps/unix/sysv/linux/tst-prctl.c33
25 files changed, 72 insertions, 1 deletions
diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile
index cceb16b..123f15c 100644
--- a/sysdeps/unix/sysv/linux/Makefile
+++ b/sysdeps/unix/sysv/linux/Makefile
@@ -120,7 +120,9 @@ tests += tst-clone tst-clone2 tst-clone3 tst-fanotify tst-personality \
tst-timerfd tst-ppoll \
tst-clock_adjtime tst-adjtimex tst-ntp_adjtime tst-ntp_gettime \
tst-ntp_gettimex tst-sigtimedwait tst-misalign-clone \
- tst-close_range
+ tst-close_range \
+ tst-prctl \
+ # tests
# Test for the symbol version of fcntl that was replaced in glibc 2.28.
ifeq ($(have-GLIBC_2.27)$(build-shared),yesyes)
@@ -138,6 +140,8 @@ tests-time64 += \
tst-ppoll-time64 \
tst-sigtimedwait-time64 \
tst-timerfd-time64 \
+ tst-prctl-time64 \
+ # tests-time64
tests-clone-internal = \
tst-align-clone-internal \
diff --git a/sysdeps/unix/sysv/linux/Versions b/sysdeps/unix/sysv/linux/Versions
index 4f0e167..cff3d47 100644
--- a/sysdeps/unix/sysv/linux/Versions
+++ b/sysdeps/unix/sysv/linux/Versions
@@ -245,6 +245,7 @@ libc {
__ntp_gettime64;
__ntp_gettimex64;
__ppoll64;
+ __prctl_time64;
__pselec64;
__pselect64;
__pthread_clockjoin_np64;
diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
index 225cd17..a108dcc 100644
--- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist
@@ -240,6 +240,7 @@ GLIBC_2.34 __nftw64_time64 F
GLIBC_2.34 __ntp_gettime64 F
GLIBC_2.34 __ntp_gettimex64 F
GLIBC_2.34 __ppoll64 F
+GLIBC_2.34 __prctl_time64 F
GLIBC_2.34 __pselect64 F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_clockjoin_np64 F
diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
index 3731f38..3511d35 100644
--- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist
@@ -237,6 +237,7 @@ GLIBC_2.34 __nftw64_time64 F
GLIBC_2.34 __ntp_gettime64 F
GLIBC_2.34 __ntp_gettimex64 F
GLIBC_2.34 __ppoll64 F
+GLIBC_2.34 __prctl_time64 F
GLIBC_2.34 __pselect64 F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_clockjoin_np64 F
diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist
index 6678218..4034289 100644
--- a/sysdeps/unix/sysv/linux/csky/libc.abilist
+++ b/sysdeps/unix/sysv/linux/csky/libc.abilist
@@ -2396,6 +2396,7 @@ GLIBC_2.34 __nftw64_time64 F
GLIBC_2.34 __ntp_gettime64 F
GLIBC_2.34 __ntp_gettimex64 F
GLIBC_2.34 __ppoll64 F
+GLIBC_2.34 __prctl_time64 F
GLIBC_2.34 __pselect64 F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_clockjoin_np64 F
diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist
index 8f105d3..1502aad 100644
--- a/sysdeps/unix/sysv/linux/hppa/libc.abilist
+++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist
@@ -2347,6 +2347,7 @@ GLIBC_2.34 __nftw64_time64 F
GLIBC_2.34 __ntp_gettime64 F
GLIBC_2.34 __ntp_gettimex64 F
GLIBC_2.34 __ppoll64 F
+GLIBC_2.34 __prctl_time64 F
GLIBC_2.34 __pselect64 F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_clockjoin_np64 F
diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist
index 53ddabd..70a0f7f 100644
--- a/sysdeps/unix/sysv/linux/i386/libc.abilist
+++ b/sysdeps/unix/sysv/linux/i386/libc.abilist
@@ -2531,6 +2531,7 @@ GLIBC_2.34 __nftw64_time64 F
GLIBC_2.34 __ntp_gettime64 F
GLIBC_2.34 __ntp_gettimex64 F
GLIBC_2.34 __ppoll64 F
+GLIBC_2.34 __prctl_time64 F
GLIBC_2.34 __pselect64 F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_clockjoin_np64 F
diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
index 23168e8..13ac607 100644
--- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist
@@ -241,6 +241,7 @@ GLIBC_2.34 __nftw64_time64 F
GLIBC_2.34 __ntp_gettime64 F
GLIBC_2.34 __ntp_gettimex64 F
GLIBC_2.34 __ppoll64 F
+GLIBC_2.34 __prctl_time64 F
GLIBC_2.34 __pselect64 F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_clockjoin_np64 F
diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
index a63ac56..662a519 100644
--- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
+++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
@@ -2474,6 +2474,7 @@ GLIBC_2.34 __nftw64_time64 F
GLIBC_2.34 __ntp_gettime64 F
GLIBC_2.34 __ntp_gettimex64 F
GLIBC_2.34 __ppoll64 F
+GLIBC_2.34 __prctl_time64 F
GLIBC_2.34 __pselect64 F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_clockjoin_np64 F
diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
index f9f6dfb..fc0c6b6 100644
--- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
@@ -2447,6 +2447,7 @@ GLIBC_2.34 __nftw64_time64 F
GLIBC_2.34 __ntp_gettime64 F
GLIBC_2.34 __ntp_gettimex64 F
GLIBC_2.34 __ppoll64 F
+GLIBC_2.34 __prctl_time64 F
GLIBC_2.34 __pselect64 F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_clockjoin_np64 F
diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
index 97d03fa..56a52de 100644
--- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist
@@ -2444,6 +2444,7 @@ GLIBC_2.34 __nftw64_time64 F
GLIBC_2.34 __ntp_gettime64 F
GLIBC_2.34 __ntp_gettimex64 F
GLIBC_2.34 __ppoll64 F
+GLIBC_2.34 __prctl_time64 F
GLIBC_2.34 __pselect64 F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_clockjoin_np64 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index 0deeb17..4aa9e33 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -2439,6 +2439,7 @@ GLIBC_2.34 __nftw64_time64 F
GLIBC_2.34 __ntp_gettime64 F
GLIBC_2.34 __ntp_gettimex64 F
GLIBC_2.34 __ppoll64 F
+GLIBC_2.34 __prctl_time64 F
GLIBC_2.34 __pselect64 F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_clockjoin_np64 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index 55432c5..1c12273 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -2437,6 +2437,7 @@ GLIBC_2.34 __nftw64_time64 F
GLIBC_2.34 __ntp_gettime64 F
GLIBC_2.34 __ntp_gettimex64 F
GLIBC_2.34 __ppoll64 F
+GLIBC_2.34 __prctl_time64 F
GLIBC_2.34 __pselect64 F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_clockjoin_np64 F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index daa0d49..8768934 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -2445,6 +2445,7 @@ GLIBC_2.34 __nftw64_time64 F
GLIBC_2.34 __ntp_gettime64 F
GLIBC_2.34 __ntp_gettimex64 F
GLIBC_2.34 __ppoll64 F
+GLIBC_2.34 __prctl_time64 F
GLIBC_2.34 __pselect64 F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_clockjoin_np64 F
diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist
index 36dcfc8..dc41e17 100644
--- a/sysdeps/unix/sysv/linux/nios2/libc.abilist
+++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist
@@ -2486,6 +2486,7 @@ GLIBC_2.34 __nftw64_time64 F
GLIBC_2.34 __ntp_gettime64 F
GLIBC_2.34 __ntp_gettimex64 F
GLIBC_2.34 __ppoll64 F
+GLIBC_2.34 __prctl_time64 F
GLIBC_2.34 __pselect64 F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_clockjoin_np64 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
index 8283409..9e3311a 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
@@ -2501,6 +2501,7 @@ GLIBC_2.34 __nftw64_time64 F
GLIBC_2.34 __ntp_gettime64 F
GLIBC_2.34 __ntp_gettimex64 F
GLIBC_2.34 __ppoll64 F
+GLIBC_2.34 __prctl_time64 F
GLIBC_2.34 __pselect64 F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_clockjoin_np64 F
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
index 590eda0..2ac6aa0 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
@@ -2534,6 +2534,7 @@ GLIBC_2.34 __nftw64_time64 F
GLIBC_2.34 __ntp_gettime64 F
GLIBC_2.34 __ntp_gettimex64 F
GLIBC_2.34 __ppoll64 F
+GLIBC_2.34 __prctl_time64 F
GLIBC_2.34 __pselect64 F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_clockjoin_np64 F
diff --git a/sysdeps/unix/sysv/linux/prctl.c b/sysdeps/unix/sysv/linux/prctl.c
index 85ad4cd..2af7b30 100644
--- a/sysdeps/unix/sysv/linux/prctl.c
+++ b/sysdeps/unix/sysv/linux/prctl.c
@@ -40,3 +40,6 @@ __prctl (int option, ...)
libc_hidden_def (__prctl)
weak_alias (__prctl, prctl)
+#if __TIMESIZE != 64
+weak_alias (__prctl, __prctl_time64)
+#endif
diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
index 08b0215..644f6b7 100644
--- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist
@@ -2499,6 +2499,7 @@ GLIBC_2.34 __nftw64_time64 F
GLIBC_2.34 __ntp_gettime64 F
GLIBC_2.34 __ntp_gettimex64 F
GLIBC_2.34 __ppoll64 F
+GLIBC_2.34 __prctl_time64 F
GLIBC_2.34 __pselect64 F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_clockjoin_np64 F
diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
index 416db82..369dccc 100644
--- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist
@@ -2354,6 +2354,7 @@ GLIBC_2.34 __nftw64_time64 F
GLIBC_2.34 __ntp_gettime64 F
GLIBC_2.34 __ntp_gettimex64 F
GLIBC_2.34 __ppoll64 F
+GLIBC_2.34 __prctl_time64 F
GLIBC_2.34 __pselect64 F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_clockjoin_np64 F
diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
index 6be813c..4254360 100644
--- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist
@@ -2351,6 +2351,7 @@ GLIBC_2.34 __nftw64_time64 F
GLIBC_2.34 __ntp_gettime64 F
GLIBC_2.34 __ntp_gettimex64 F
GLIBC_2.34 __ppoll64 F
+GLIBC_2.34 __prctl_time64 F
GLIBC_2.34 __pselect64 F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_clockjoin_np64 F
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
index ce61dd9..31f43ed 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
@@ -2494,6 +2494,7 @@ GLIBC_2.34 __nftw64_time64 F
GLIBC_2.34 __ntp_gettime64 F
GLIBC_2.34 __ntp_gettimex64 F
GLIBC_2.34 __ppoll64 F
+GLIBC_2.34 __prctl_time64 F
GLIBC_2.34 __pselect64 F
GLIBC_2.34 __pthread_cleanup_routine F
GLIBC_2.34 __pthread_clockjoin_np64 F
diff --git a/sysdeps/unix/sysv/linux/sys/prctl.h b/sysdeps/unix/sysv/linux/sys/prctl.h
index c9048c7..db88938 100644
--- a/sysdeps/unix/sysv/linux/sys/prctl.h
+++ b/sysdeps/unix/sysv/linux/sys/prctl.h
@@ -38,7 +38,17 @@
__BEGIN_DECLS
/* Control process execution. */
+#ifndef __USE_TIME_BITS64
extern int prctl (int __option, ...) __THROW;
+#else
+# ifdef __REDIRECT
+extern int __REDIRECT (prctl, (int __option, ...), __prctl_time64) __THROW;
+# else
+extern int __prctl_time64 (int __option,d ...) __THROW;
+# define ioctl __prctl_time64
+# endif
+#endif
+
__END_DECLS
diff --git a/sysdeps/unix/sysv/linux/tst-prctl-time64.c b/sysdeps/unix/sysv/linux/tst-prctl-time64.c
new file mode 100644
index 0000000..d233e12
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/tst-prctl-time64.c
@@ -0,0 +1 @@
+#include "tst-prctl.c"
diff --git a/sysdeps/unix/sysv/linux/tst-prctl.c b/sysdeps/unix/sysv/linux/tst-prctl.c
new file mode 100644
index 0000000..a9dd1dc
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/tst-prctl.c
@@ -0,0 +1,33 @@
+/* Smoke test for prctl.
+ Copyright (C) 2021 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <sys/prctl.h>
+#include <support/check.h>
+
+static int
+do_test (void)
+{
+ TEST_COMPARE (prctl (PR_SET_NAME, "thread name", 0, 0, 0), 0);
+ char buffer[16] = { 0, };
+ TEST_COMPARE (prctl (PR_GET_NAME, buffer, 0, 0, 0), 0);
+ char expected[16] = "thread name";
+ TEST_COMPARE_BLOB (buffer, sizeof (buffer), expected, sizeof (expected));
+ return 0;
+}
+
+#include <support/test-driver.c>