aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Schwab <schwab@suse.de>2020-01-27 10:05:53 +0100
committerAndreas Schwab <schwab@suse.de>2020-02-03 12:16:09 +0100
commit6befb33f31f034a0e8876ce6427dacdfa0cd7ea7 (patch)
treeddbddafff15825f47898a1ffd77072febacb39ee
parentcdeae33d71696bb0e81667d4788d0b38606aefb6 (diff)
downloadglibc-6befb33f31f034a0e8876ce6427dacdfa0cd7ea7.zip
glibc-6befb33f31f034a0e8876ce6427dacdfa0cd7ea7.tar.gz
glibc-6befb33f31f034a0e8876ce6427dacdfa0cd7ea7.tar.bz2
rt: avoid PLT setup in timer_[sg]ettime
The functions __timer_gettime64 and __timer_settime64 live in librt, not libc. Use proper hidden aliases so that the callers do not need to set up the PLT register. Fixes commits cae1635a70 ("y2038: linux: Provide __timer_settime64 implementation") and 562cdc19c7 ("y2038: linux: Provide __timer_gettime64 implementation").
-rw-r--r--include/time.h4
-rw-r--r--sysdeps/unix/sysv/linux/timer_gettime.c3
-rw-r--r--sysdeps/unix/sysv/linux/timer_settime.c3
3 files changed, 6 insertions, 4 deletions
diff --git a/include/time.h b/include/time.h
index 5589232..f712a0e 100644
--- a/include/time.h
+++ b/include/time.h
@@ -185,7 +185,7 @@ libc_hidden_proto (__futimens64);
#else
extern int __timer_gettime64 (timer_t timerid, struct __itimerspec64 *value);
extern int __timerfd_gettime64 (int fd, struct __itimerspec64 *value);
-libc_hidden_proto (__timer_gettime64);
+librt_hidden_proto (__timer_gettime64);
libc_hidden_proto (__timerfd_gettime64);
#endif
@@ -199,7 +199,7 @@ extern int __timer_settime64 (timer_t timerid, int flags,
extern int __timerfd_settime64 (int fd, int flags,
const struct __itimerspec64 *value,
struct __itimerspec64 *ovalue);
-libc_hidden_proto (__timer_settime64);
+librt_hidden_proto (__timer_settime64);
libc_hidden_proto (__timerfd_settime64);
#endif
diff --git a/sysdeps/unix/sysv/linux/timer_gettime.c b/sysdeps/unix/sysv/linux/timer_gettime.c
index 669aff8..1e07d48 100644
--- a/sysdeps/unix/sysv/linux/timer_gettime.c
+++ b/sysdeps/unix/sysv/linux/timer_gettime.c
@@ -52,6 +52,8 @@ __timer_gettime64 (timer_t timerid, struct __itimerspec64 *value)
}
#if __TIMESIZE != 64
+librt_hidden_def (__timer_gettime64)
+
int
__timer_gettime (timer_t timerid, struct itimerspec *value)
{
@@ -67,4 +69,3 @@ __timer_gettime (timer_t timerid, struct itimerspec *value)
}
#endif
weak_alias (__timer_gettime, timer_gettime)
-libc_hidden_def (timer_gettime)
diff --git a/sysdeps/unix/sysv/linux/timer_settime.c b/sysdeps/unix/sysv/linux/timer_settime.c
index cd302e3..c97a9e9 100644
--- a/sysdeps/unix/sysv/linux/timer_settime.c
+++ b/sysdeps/unix/sysv/linux/timer_settime.c
@@ -68,6 +68,8 @@ __timer_settime64 (timer_t timerid, int flags,
}
#if __TIMESIZE != 64
+librt_hidden_def (__timer_settime64)
+
int
__timer_settime (timer_t timerid, int flags, const struct itimerspec *value,
struct itimerspec *ovalue)
@@ -89,4 +91,3 @@ __timer_settime (timer_t timerid, int flags, const struct itimerspec *value,
}
#endif
weak_alias (__timer_settime, timer_settime)
-libc_hidden_def (timer_settime)