[PATCH] y2038: fix: Add missing libc_hidden_def attribute for some syscall wrappers

Lukasz Majewski lukma@denx.de
Sun Mar 22 13:46:48 GMT 2020


Dear Community,

> During the conversion to support 64 bit time on some architectures
> with __WORDSIZE == 32 && __TIMESIZE != 64 the libc_hidden_def
> attribute for eligible functions was by mistake omitted.
> 

Are there any comments for this patch?

This patch fixes the code which is already in glibc-master. I do
believe that it shall be pulled ASAP...

> This patch fixes this issue and exports (and allows using) those
> functions when Y2038 support is enabled in glibc.
> ---
>  sysdeps/unix/sysv/linux/clock_getres.c    | 2 ++
>  sysdeps/unix/sysv/linux/clock_gettime.c   | 2 ++
>  sysdeps/unix/sysv/linux/clock_nanosleep.c | 2 ++
>  sysdeps/unix/sysv/linux/clock_settime.c   | 2 ++
>  sysdeps/unix/sysv/linux/ppoll.c           | 2 ++
>  5 files changed, 10 insertions(+)
> 
> diff --git a/sysdeps/unix/sysv/linux/clock_getres.c
> b/sysdeps/unix/sysv/linux/clock_getres.c index fee693c36f..5f6955ab10
> 100644 --- a/sysdeps/unix/sysv/linux/clock_getres.c
> +++ b/sysdeps/unix/sysv/linux/clock_getres.c
> @@ -72,6 +72,8 @@ __clock_getres64 (clockid_t clock_id, struct
> __timespec64 *res) }
>  
>  #if __TIMESIZE != 64
> +libc_hidden_def (__clock_getres64)
> +
>  int
>  __clock_getres (clockid_t clock_id, struct timespec *res)
>  {
> diff --git a/sysdeps/unix/sysv/linux/clock_gettime.c
> b/sysdeps/unix/sysv/linux/clock_gettime.c index
> d6c0b4f637..bfe3823b68 100644 ---
> a/sysdeps/unix/sysv/linux/clock_gettime.c +++
> b/sysdeps/unix/sysv/linux/clock_gettime.c @@ -73,6 +73,8 @@
> __clock_gettime64 (clockid_t clock_id, struct __timespec64 *tp) }
>  
>  #if __TIMESIZE != 64
> +libc_hidden_def (__clock_gettime64)
> +
>  int
>  __clock_gettime (clockid_t clock_id, struct timespec *tp)
>  {
> diff --git a/sysdeps/unix/sysv/linux/clock_nanosleep.c
> b/sysdeps/unix/sysv/linux/clock_nanosleep.c index
> 48175ef1da..cc7a09569d 100644 ---
> a/sysdeps/unix/sysv/linux/clock_nanosleep.c +++
> b/sysdeps/unix/sysv/linux/clock_nanosleep.c @@ -79,6 +79,8 @@
> __clock_nanosleep_time64 (clockid_t clock_id, int flags, const struct
> __timespec } 
>  #if __TIMESIZE != 64
> +libc_hidden_def (__clock_nanosleep_time64)
> +
>  int
>  __clock_nanosleep (clockid_t clock_id, int flags, const struct
> timespec *req, struct timespec *rem)
> diff --git a/sysdeps/unix/sysv/linux/clock_settime.c
> b/sysdeps/unix/sysv/linux/clock_settime.c index
> e704e1dbe7..ebda871f4c 100644 ---
> a/sysdeps/unix/sysv/linux/clock_settime.c +++
> b/sysdeps/unix/sysv/linux/clock_settime.c @@ -55,6 +55,8 @@
> __clock_settime64 (clockid_t clock_id, const struct __timespec64 *tp)
> } 
>  #if __TIMESIZE != 64
> +libc_hidden_def (__clock_settime64)
> +
>  int
>  __clock_settime (clockid_t clock_id, const struct timespec *tp)
>  {
> diff --git a/sysdeps/unix/sysv/linux/ppoll.c
> b/sysdeps/unix/sysv/linux/ppoll.c index 3fcd19efb4..4ffb23710e 100644
> --- a/sysdeps/unix/sysv/linux/ppoll.c
> +++ b/sysdeps/unix/sysv/linux/ppoll.c
> @@ -67,6 +67,8 @@ __ppoll64 (struct pollfd *fds, nfds_t nfds, const
> struct __timespec64 *timeout, }
>  
>  #if __TIMESIZE != 64
> +libc_hidden_def (__ppoll64)
> +
>  int
>  __ppoll (struct pollfd *fds, nfds_t nfds, const struct timespec
> *timeout, const sigset_t *sigmask)




Best regards,

Lukasz Majewski

--

DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma@denx.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://sourceware.org/pipermail/libc-alpha/attachments/20200322/677986ec/attachment.sig>


More information about the Libc-alpha mailing list