From patchwork Fri Sep 1 18:00:13 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "H.J. Lu" X-Patchwork-Id: 22559 Received: (qmail 91016 invoked by alias); 1 Sep 2017 18:01:24 -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 90280 invoked by uid 89); 1 Sep 2017 18:01:18 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-26.2 required=5.0 tests=BAYES_00, FREEMAIL_FROM, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, SPF_SOFTFAIL autolearn=ham version=3.3.2 spammy=H*m:gmail X-HELO: mga02.intel.com X-ExtLoop1: 1 From: "H.J. Lu" To: libc-alpha@sourceware.org Subject: [PATCH 42/58] Hide internal __ifreq function [BZ #18822] Date: Fri, 1 Sep 2017 11:00:13 -0700 Message-Id: <20170901180029.9527-43-hjl.tools@gmail.com> In-Reply-To: <20170901180029.9527-1-hjl.tools@gmail.com> References: <20170901180029.9527-1-hjl.tools@gmail.com> Hide internal __ifreq function to allow direct access within libc.so and libc.a without using GOT nor PLT. [BZ #18822] * include/ifreq.h: New file. * sysdeps/generic/ifreq.h (__if_nextreq): Removed. (__ifreq): Likewise. * sysdeps/mach/hurd/ifreq.h (__if_nextreq): Removed. (__ifreq): Likewise. --- include/ifreq.h | 14 ++++++++++++++ sysdeps/generic/ifreq.h | 12 ------------ sysdeps/mach/hurd/ifreq.h | 12 ------------ 3 files changed, 14 insertions(+), 24 deletions(-) create mode 100644 include/ifreq.h diff --git a/include/ifreq.h b/include/ifreq.h new file mode 100644 index 0000000000..94e984c73c --- /dev/null +++ b/include/ifreq.h @@ -0,0 +1,14 @@ +#include_next + +static inline struct ifreq * +__if_nextreq (struct ifreq *ifr) +{ +#ifdef _HAVE_SA_LEN + if (ifr->ifr_addr.sa_len > sizeof ifr->ifr_addr) + return (struct ifreq *) ((char *) &ifr->ifr_addr + ifr->ifr_addr.sa_len); +#endif + return ifr + 1; +} + +extern void __ifreq (struct ifreq **ifreqs, int *num_ifs, int sockfd) + attribute_hidden; diff --git a/sysdeps/generic/ifreq.h b/sysdeps/generic/ifreq.h index 6ebd7c83f3..b39739debb 100644 --- a/sysdeps/generic/ifreq.h +++ b/sysdeps/generic/ifreq.h @@ -23,18 +23,6 @@ #include #include -static inline struct ifreq * -__if_nextreq (struct ifreq *ifr) -{ -#ifdef _HAVE_SA_LEN - if (ifr->ifr_addr.sa_len > sizeof ifr->ifr_addr) - return (struct ifreq *) ((char *) &ifr->ifr_addr + ifr->ifr_addr.sa_len); -#endif - return ifr + 1; -} - -extern void __ifreq (struct ifreq **ifreqs, int *num_ifs, int sockfd); - static inline void __if_freereq (struct ifreq *ifreqs, int num_ifs) diff --git a/sysdeps/mach/hurd/ifreq.h b/sysdeps/mach/hurd/ifreq.h index eceeb7a2c3..3dd17f773d 100644 --- a/sysdeps/mach/hurd/ifreq.h +++ b/sysdeps/mach/hurd/ifreq.h @@ -24,18 +24,6 @@ #include #include -static inline struct ifreq * -__if_nextreq (struct ifreq *ifr) -{ -#ifdef _HAVE_SA_LEN - if (ifr->ifr_addr.sa_len > sizeof ifr->ifr_addr) - return (struct ifreq *) ((char *) &ifr->ifr_addr + ifr->ifr_addr.sa_len); -#endif - return ifr + 1; -} - -extern void __ifreq (struct ifreq **ifreqs, int *num_ifs, int sockfd); - static inline void __if_freereq (struct ifreq *ifreqs, int num_ifs)