diff options
author | Joseph Myers <joseph@codesourcery.com> | 2014-10-08 23:19:32 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2014-10-08 23:19:32 +0000 |
commit | 620f462e88f6e7b59488a963b3c42d89035e4ba6 (patch) | |
tree | 7099e1f31de419862ee198ab72da6307ec32fb93 | |
parent | c763c5d27112be055920c46f3be8d05bc8b669da (diff) | |
download | glibc-620f462e88f6e7b59488a963b3c42d89035e4ba6.zip glibc-620f462e88f6e7b59488a963b3c42d89035e4ba6.tar.gz glibc-620f462e88f6e7b59488a963b3c42d89035e4ba6.tar.bz2 |
Don't use INTUSE with __adjtimex (bug 14132).
Bug 14132 is removal of the old INTDEF/INTUSE system of *_internal
aliases as obsoleted by the hidden_proto / hidden_def system. Various
cases were cleaned up in 2012, but some remain. This patch removes
the use of this mechanism for __adjtimex.
Tested for x86_64 that stripped installed shared libraries are
unchanged by the patch.
[BZ #14132]
* sysdeps/unix/sysv/linux/include/sys/timex.h: New file.
* sysdeps/unix/sysv/linux/adjtime.c [!ADJTIMEX] (ADJTIMEX): Do not
use INTUSE.
[!ADJTIMEX] (INTUSE(__adjtimex)): Remove declaration.
* sysdeps/unix/sysv/linux/alpha/adjtime.c (__adjtimex_internal):
Remove alias.
(__adjtimex): Define using libc_hidden_ver.
* sysdeps/unix/sysv/linux/ntp_gettime.c (INTUSE(__adjtimex)):
Remove declaration.
(ntp_gettime): Call __adjtimex directly.
* sysdeps/unix/sysv/linux/ntp_gettimex.c (INTUSE(__adjtimex)):
Remove declaration.
(ntp_gettimex): Call __adjtimex directly.
* sysdeps/unix/sysv/linux/syscalls.list (adjtimex): Remove
__adjtimex_internal alias.
-rw-r--r-- | ChangeLog | 19 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/adjtime.c | 3 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/alpha/adjtime.c | 2 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/include/sys/timex.h | 26 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/ntp_gettime.c | 5 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/ntp_gettimex.c | 5 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/syscalls.list | 2 |
7 files changed, 50 insertions, 12 deletions
@@ -1,3 +1,22 @@ +2014-10-08 Joseph Myers <joseph@codesourcery.com> + + [BZ #14132] + * sysdeps/unix/sysv/linux/include/sys/timex.h: New file. + * sysdeps/unix/sysv/linux/adjtime.c [!ADJTIMEX] (ADJTIMEX): Do not + use INTUSE. + [!ADJTIMEX] (INTUSE(__adjtimex)): Remove declaration. + * sysdeps/unix/sysv/linux/alpha/adjtime.c (__adjtimex_internal): + Remove alias. + (__adjtimex): Define using libc_hidden_ver. + * sysdeps/unix/sysv/linux/ntp_gettime.c (INTUSE(__adjtimex)): + Remove declaration. + (ntp_gettime): Call __adjtimex directly. + * sysdeps/unix/sysv/linux/ntp_gettimex.c (INTUSE(__adjtimex)): + Remove declaration. + (ntp_gettimex): Call __adjtimex directly. + * sysdeps/unix/sysv/linux/syscalls.list (adjtimex): Remove + __adjtimex_internal alias. + 2014-10-08 Roland McGrath <roland@hack.frob.com> [BZ #17460] diff --git a/sysdeps/unix/sysv/linux/adjtime.c b/sysdeps/unix/sysv/linux/adjtime.c index 90300b5..179f4cd 100644 --- a/sysdeps/unix/sysv/linux/adjtime.c +++ b/sysdeps/unix/sysv/linux/adjtime.c @@ -41,8 +41,7 @@ #ifndef ADJTIMEX #define NO_LOCAL_ADJTIME -#define ADJTIMEX(x) INTUSE(__adjtimex) (x) -extern int INTUSE(__adjtimex) (struct timex *__ntx); +#define ADJTIMEX(x) __adjtimex (x) #endif #ifndef LINKAGE diff --git a/sysdeps/unix/sysv/linux/alpha/adjtime.c b/sysdeps/unix/sysv/linux/alpha/adjtime.c index a0cbba3..59a4402 100644 --- a/sysdeps/unix/sysv/linux/alpha/adjtime.c +++ b/sysdeps/unix/sysv/linux/alpha/adjtime.c @@ -86,7 +86,7 @@ compat_symbol (libc, __adjtime_tv32, adjtime, GLIBC_2_0); int __adjtimex_tv64 (struct timex *tx) { return ADJTIMEX (tx); } -strong_alias (__adjtimex_tv64, __adjtimex_internal); +libc_hidden_ver (__adjtimex_tv64, __adjtimex) strong_alias (__adjtimex_tv64, __adjtimex_tv64p); weak_alias (__adjtimex_tv64, ntp_adjtime); versioned_symbol (libc, __adjtimex_tv64, __adjtimex, GLIBC_2_1); diff --git a/sysdeps/unix/sysv/linux/include/sys/timex.h b/sysdeps/unix/sysv/linux/include/sys/timex.h new file mode 100644 index 0000000..02bb592 --- /dev/null +++ b/sysdeps/unix/sysv/linux/include/sys/timex.h @@ -0,0 +1,26 @@ +/* Internal declarations for sys/timex.h. + Copyright (C) 2014 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 + <http://www.gnu.org/licenses/>. */ + +#ifndef _INCLUDE_SYS_TIMEX_H +#define _INCLUDE_SYS_TIMEX_H 1 + +#include_next <sys/timex.h> + +libc_hidden_proto (__adjtimex) + +#endif /* sys/timex.h */ diff --git a/sysdeps/unix/sysv/linux/ntp_gettime.c b/sysdeps/unix/sysv/linux/ntp_gettime.c index 1b91292..7e3cc3f 100644 --- a/sysdeps/unix/sysv/linux/ntp_gettime.c +++ b/sysdeps/unix/sysv/linux/ntp_gettime.c @@ -26,9 +26,6 @@ #endif -extern int INTUSE(__adjtimex) (struct timex *__ntx); - - int ntp_gettime (struct ntptimeval *ntv) { @@ -36,7 +33,7 @@ ntp_gettime (struct ntptimeval *ntv) int result; tntx.modes = 0; - result = INTUSE(__adjtimex) (&tntx); + result = __adjtimex (&tntx); ntv->time = tntx.time; ntv->maxerror = tntx.maxerror; ntv->esterror = tntx.esterror; diff --git a/sysdeps/unix/sysv/linux/ntp_gettimex.c b/sysdeps/unix/sysv/linux/ntp_gettimex.c index bfb72b1..a91b57c 100644 --- a/sysdeps/unix/sysv/linux/ntp_gettimex.c +++ b/sysdeps/unix/sysv/linux/ntp_gettimex.c @@ -22,9 +22,6 @@ #endif -extern int INTUSE(__adjtimex) (struct timex *__ntx); - - int ntp_gettimex (struct ntptimeval *ntv) { @@ -32,7 +29,7 @@ ntp_gettimex (struct ntptimeval *ntv) int result; tntx.modes = 0; - result = INTUSE(__adjtimex) (&tntx); + result = __adjtimex (&tntx); ntv->time = tntx.time; ntv->maxerror = tntx.maxerror; ntv->esterror = tntx.esterror; diff --git a/sysdeps/unix/sysv/linux/syscalls.list b/sysdeps/unix/sysv/linux/syscalls.list index ddec198..a0b8de8 100644 --- a/sysdeps/unix/sysv/linux/syscalls.list +++ b/sysdeps/unix/sysv/linux/syscalls.list @@ -1,6 +1,6 @@ # File name Caller Syscall name Args Strong name Weak names -adjtimex adjtime adjtimex i:p __adjtimex adjtimex ntp_adjtime __adjtimex_internal +adjtimex adjtime adjtimex i:p __adjtimex adjtimex ntp_adjtime alarm - alarm i:i alarm bdflush EXTRA bdflush i:ii bdflush capget EXTRA capget i:pp capget |