From: Andreas Schwab Date: Mon, 27 Jan 2020 09:05:53 +0000 (+0100) Subject: rt: avoid PLT setup in timer_[sg]ettime X-Git-Tag: glibc-2.32~756 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6befb33f31f034a0e8876ce6427dacdfa0cd7ea7;p=thirdparty%2Fglibc.git 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"). --- diff --git a/include/time.h b/include/time.h index 558923274af..f712a0e1670 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 669aff8d161..1e07d4845b2 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 cd302e38d82..c97a9e92ef0 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)