From patchwork Wed Oct 8 15:12:39 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joseph Myers X-Patchwork-Id: 3138 Received: (qmail 31054 invoked by alias); 8 Oct 2014 15:12:48 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 31043 invoked by uid 89); 8 Oct 2014 15:12:48 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=AWL, BAYES_00 autolearn=ham version=3.3.2 X-HELO: relay1.mentorg.com Date: Wed, 8 Oct 2014 15:12:39 +0000 From: "Joseph S. Myers" To: CC: Richard Henderson Subject: Don't use INTUSE with __adjtimex (bug 14132) Message-ID: MIME-Version: 1.0 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. 2014-10-08 Joseph Myers [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. 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 + . */ + +#ifndef _INCLUDE_SYS_TIMEX_H +#define _INCLUDE_SYS_TIMEX_H 1 + +#include_next + +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