From d6c33fda03457ca8ca87a562fa2681af16ca4ea5 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Thu, 24 May 2012 11:37:30 -0700 Subject: [PATCH] Switch gettimeofday from INTUSE to libc_hidden_proto. --- ChangeLog | 22 +++++++++++++++++++++- include/sys/time.h | 9 ++------- sysdeps/mach/gettimeofday.c | 8 +++----- sysdeps/posix/gettimeofday.c | 8 +++----- sysdeps/unix/syscalls.list | 2 +- sysdeps/unix/sysv/linux/powerpc/gettimeofday.c | 7 +++---- sysdeps/unix/sysv/linux/s390/gettimeofday.c | 7 +++---- sysdeps/unix/sysv/linux/x86_64/gettimeofday.c | 25 +++++++++++++++++-------- time/gettimeofday.c | 11 +++++------ 9 files changed, 58 insertions(+), 41 deletions(-) diff --git a/ChangeLog b/ChangeLog index e81684e..7c94fce 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,23 @@ +2012-05-24 Roland McGrath + + [BZ #14132] + * include/sys/time.h (__gettimeofday): Remove macro. + (__gettimeofday, gettimeofday): Add libc_hidden_proto. + * time/gettimeofday.c (__gettimeofday): Remove #undef. + Remove INTDEF. + (__gettimeofday): Add libc_hidden_def. + (gettimeofday): Add libc_hidden_weak. + * sysdeps/mach/gettimeofday.c: Likewise. + * sysdeps/posix/gettimeofday.c: Likewise. + * sysdeps/unix/sysv/linux/powerpc/gettimeofday.c: Likewise. + * sysdeps/unix/sysv/linux/s390/gettimeofday.c: Likewise. + * sysdeps/unix/sysv/linux/x86_64/gettimeofday.c + (__gettimeofday_internal): Remove strong_alias. + (__gettimeofday): Add libc_hidden_def. + (gettimeofday): Add libc_hidden_weak. + * sysdeps/unix/syscalls.list (gettimeofday): + Remove __gettimeofday_internal alias. + 2012-05-24 Daniel Jacobowitz H.J. Lu @@ -535,7 +555,7 @@ * manual/install.texi (Configuring and compiling): Update description about files modified in the source directory. - * INSTALL: Regenerated. + * INSTALL: Regenerated. 2012-05-18 H.J. Lu diff --git a/include/sys/time.h b/include/sys/time.h index d5de942..599e189 100644 --- a/include/sys/time.h +++ b/include/sys/time.h @@ -5,9 +5,8 @@ /* Now document the internal interfaces. */ extern int __gettimeofday (struct timeval *__tv, struct timezone *__tz); -extern int __gettimeofday_internal (struct timeval *__tv, - struct timezone *__tz) - attribute_hidden; +libc_hidden_proto (__gettimeofday) +libc_hidden_proto (gettimeofday) extern int __settimeofday (const struct timeval *__tv, const struct timezone *__tz) attribute_hidden; @@ -23,9 +22,5 @@ extern int __utimes (const char *__file, const struct timeval __tvp[2]) attribute_hidden; extern int __futimes (int fd, const struct timeval tvp[2]) attribute_hidden; -#ifndef NOT_IN_libc -# define __gettimeofday(tv, tz) INTUSE(__gettimeofday) (tv, tz) -#endif - #endif #endif diff --git a/sysdeps/mach/gettimeofday.c b/sysdeps/mach/gettimeofday.c index 88dca8e..293a775 100644 --- a/sysdeps/mach/gettimeofday.c +++ b/sysdeps/mach/gettimeofday.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991,1992,1995-1997,2001,2002 Free Software Foundation, Inc. +/* Copyright (C) 1991-2012 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 @@ -20,8 +20,6 @@ #include #include -#undef __gettimeofday - /* Get the current time of day and timezone information, putting it into *TV and *TZ. If TZ is NULL, *TZ is not filled. Returns 0 on success, -1 on errors. */ @@ -42,6 +40,6 @@ __gettimeofday (tv, tz) } return 0; } - -INTDEF(__gettimeofday) +libc_hidden_def (__gettimeofday) weak_alias (__gettimeofday, gettimeofday) +libc_hidden_weak (gettimeofday) diff --git a/sysdeps/posix/gettimeofday.c b/sysdeps/posix/gettimeofday.c index 31b3dd3..1108ff0 100644 --- a/sysdeps/posix/gettimeofday.c +++ b/sysdeps/posix/gettimeofday.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991,1992,1994-1997,2002,2005 Free Software Foundation, Inc. +/* Copyright (C) 1991-2012 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 @@ -19,8 +19,6 @@ #include #include -#undef __gettimeofday - /* Get the current time of day and timezone information, putting it into *TV and *TZ. If TZ is NULL, *TZ is not filled. Returns 0 on success, -1 on errors. */ @@ -66,6 +64,6 @@ __gettimeofday (tv, tz) return 0; } - -INTDEF(__gettimeofday) +libc_hidden_def (__gettimeofday) weak_alias (__gettimeofday, gettimeofday) +libc_hidden_weak (gettimeofday) diff --git a/sysdeps/unix/syscalls.list b/sysdeps/unix/syscalls.list index 39c40ed..bd780f5 100644 --- a/sysdeps/unix/syscalls.list +++ b/sysdeps/unix/syscalls.list @@ -26,7 +26,7 @@ getpid - getpid Ei: __getpid getpid getpriority - getpriority i:ii getpriority getrlimit - getrlimit i:ip __getrlimit getrlimit getrusage - getrusage i:ip __getrusage getrusage -gettimeofday - gettimeofday i:PP __gettimeofday gettimeofday __gettimeofday_internal +gettimeofday - gettimeofday i:pP __gettimeofday gettimeofday getuid - getuid Ei: __getuid getuid ioctl - ioctl i:iiI __ioctl ioctl kill - kill i:ii __kill kill diff --git a/sysdeps/unix/sysv/linux/powerpc/gettimeofday.c b/sysdeps/unix/sysv/linux/powerpc/gettimeofday.c index b2ef2da..7376135 100644 --- a/sysdeps/unix/sysv/linux/powerpc/gettimeofday.c +++ b/sysdeps/unix/sysv/linux/powerpc/gettimeofday.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2005 Free Software Foundation, Inc. +/* Copyright (C) 2005-2012 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 @@ -22,7 +22,6 @@ #include #include -#undef __gettimeofday #include /* Get the current time of day and timezone information, @@ -36,6 +35,6 @@ __gettimeofday (tv, tz) { return INLINE_VSYSCALL (gettimeofday, 2, CHECK_1 (tv), CHECK_1 (tz)); } - -INTDEF (__gettimeofday) +libc_hidden_def (__gettimeofday) weak_alias (__gettimeofday, gettimeofday) +libc_hidden_weak (gettimeofday) diff --git a/sysdeps/unix/sysv/linux/s390/gettimeofday.c b/sysdeps/unix/sysv/linux/s390/gettimeofday.c index 63faef8..efbf1e8 100644 --- a/sysdeps/unix/sysv/linux/s390/gettimeofday.c +++ b/sysdeps/unix/sysv/linux/s390/gettimeofday.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2008 Free Software Foundation, Inc. +/* Copyright (C) 2008-2012 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 @@ -22,7 +22,6 @@ #include #include -#undef __gettimeofday #include /* Get the current time of day and timezone information, @@ -36,6 +35,6 @@ __gettimeofday (tv, tz) { return INLINE_VSYSCALL (gettimeofday, 2, CHECK_1 (tv), CHECK_1 (tz)); } - -INTDEF (__gettimeofday) +libc_hidden_def (__gettimeofday) weak_alias (__gettimeofday, gettimeofday) +libc_hidden_weak (gettimeofday) diff --git a/sysdeps/unix/sysv/linux/x86_64/gettimeofday.c b/sysdeps/unix/sysv/linux/x86_64/gettimeofday.c index e41fddb..d52f938 100644 --- a/sysdeps/unix/sysv/linux/x86_64/gettimeofday.c +++ b/sysdeps/unix/sysv/linux/x86_64/gettimeofday.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2002, 2003, 2007, 2011 Free Software Foundation, Inc. +/* Copyright (C) 2002-2012 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 @@ -15,13 +15,14 @@ License along with the GNU C Library; if not, see . */ -#include +#include +#ifdef SHARED -#define VSYSCALL_ADDR_vgettimeofday 0xffffffffff600000ul +# include +# define VSYSCALL_ADDR_vgettimeofday 0xffffffffff600000ul -#ifdef SHARED void *gettimeofday_ifunc (void) __asm__ ("__gettimeofday"); void * @@ -33,9 +34,16 @@ gettimeofday_ifunc (void) return (_dl_vdso_vsym ("__vdso_gettimeofday", &linux26) ?: (void *) VSYSCALL_ADDR_vgettimeofday); } -__asm (".type __gettimeofday, %gnu_indirect_function"); +asm (".type __gettimeofday, %gnu_indirect_function"); + +/* This is doing "libc_hidden_def (__gettimeofday)" but the compiler won't + let us do it in C because it doesn't know we're defining __gettimeofday + here in this file. */ +asm (".globl __GI___gettimeofday\n" + "__GI___gettimeofday = __gettimeofday"); + #else -# include + # include # include @@ -44,7 +52,8 @@ __gettimeofday (struct timeval *tv, struct timezone *tz) { return INLINE_SYSCALL (gettimeofday, 2, tv, tz); } -#endif +libc_hidden_def (__gettimeofday) +#endif weak_alias (__gettimeofday, gettimeofday) -strong_alias (__gettimeofday, __gettimeofday_internal) +libc_hidden_weak (gettimeofday) diff --git a/time/gettimeofday.c b/time/gettimeofday.c index cfe6549..7eb770c 100644 --- a/time/gettimeofday.c +++ b/time/gettimeofday.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1995, 1996, 1997, 2002 Free Software Foundation, Inc. +/* Copyright (C) 1991-2012 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 @@ -18,8 +18,6 @@ #include #include -#undef __gettimeofday - /* Get the current time of day and timezone information, putting it into *TV and *TZ. If TZ is NULL, *TZ is not filled. Returns 0 on success, -1 on errors. */ @@ -31,8 +29,9 @@ __gettimeofday (tv, tz) __set_errno (ENOSYS); return -1; } -stub_warning (gettimeofday) - -INTDEF(__gettimeofday) +libc_hidden_def (__gettimeofday) weak_alias (__gettimeofday, gettimeofday) +libc_hidden_weak (gettimeofday) + +stub_warning (gettimeofday) #include -- 2.7.4