From patchwork Fri Sep 1 17:59:47 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: 22534 Received: (qmail 87339 invoked by alias); 1 Sep 2017 18:01:00 -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 87314 invoked by uid 89); 1 Sep 2017 18:01:00 -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= X-HELO: mga02.intel.com X-ExtLoop1: 1 From: "H.J. Lu" To: libc-alpha@sourceware.org Subject: [PATCH 16/58] Mark internal getXXXbyYYY functions with attribute_hidden [BZ #18822] Date: Fri, 1 Sep 2017 10:59:47 -0700 Message-Id: <20170901180029.9527-17-hjl.tools@gmail.com> In-Reply-To: <20170901180029.9527-1-hjl.tools@gmail.com> References: <20170901180029.9527-1-hjl.tools@gmail.com> Mark internal getXXXbyYYY functions with attribute_hidden to allow direct access within libc.so and libc.a without using GOT nor PLT. [BZ #18822] * include/aliases.h (__getaliasbyname_r): Add attribute_hidden. * include/netdb.h (__gethostbyaddr_r): Likewise. (__gethostbyname_r): Likewise. (__gethostbyname2_r): Likewise. (__getnetbyaddr_r): Likewise. (__getnetbyname_r): Likewise. (__getservbyname_r): Likewise. (__getservbyport_r): Likewise. (__getprotobyname_r): Likewise. (__getprotobynumber_r): Likewise. (__getnetgrent_r): Likewise. * include/rpc/netdb.h (__getrpcbyname_r): Likewise. (__getrpcbynumber_r): Likewise. * nss/getXXbyYY.c (INTERNAL (REENTRANT_NAME)): Likewise. --- include/aliases.h | 3 ++- include/netdb.h | 30 ++++++++++++++++++++---------- include/rpc/netdb.h | 4 ++-- nss/getXXbyYY.c | 3 ++- 4 files changed, 26 insertions(+), 14 deletions(-) diff --git a/include/aliases.h b/include/aliases.h index ece69ebe43..11b81d4d24 100644 --- a/include/aliases.h +++ b/include/aliases.h @@ -14,7 +14,8 @@ extern int __old_getaliasent_r (struct aliasent *__restrict __result_buf, extern int __getaliasbyname_r (const char *__restrict __name, struct aliasent *__restrict __result_buf, char *__restrict __buffer, size_t __buflen, - struct aliasent **__restrict __result); + struct aliasent **__restrict __result) + attribute_hidden; extern int __old_getaliasbyname_r (const char *__restrict __name, struct aliasent *__restrict __result_buf, char *__restrict __buffer, size_t __buflen, diff --git a/include/netdb.h b/include/netdb.h index d425a64506..e230b1f4fc 100644 --- a/include/netdb.h +++ b/include/netdb.h @@ -43,7 +43,8 @@ extern int __gethostbyaddr_r (const void *__restrict __addr, struct hostent *__restrict __result_buf, char *__restrict __buf, size_t __buflen, struct hostent **__restrict __result, - int *__restrict __h_errnop); + int *__restrict __h_errnop) + attribute_hidden; extern int __old_gethostbyaddr_r (const void *__restrict __addr, socklen_t __len, int __type, struct hostent *__restrict __result_buf, @@ -63,7 +64,8 @@ extern int __gethostbyname_r (const char *__restrict __name, struct hostent *__restrict __result_buf, char *__restrict __buf, size_t __buflen, struct hostent **__restrict __result, - int *__restrict __h_errnop); + int *__restrict __h_errnop) + attribute_hidden; extern int __old_gethostbyname_r (const char *__restrict __name, struct hostent *__restrict __result_buf, char *__restrict __buf, size_t __buflen, @@ -74,7 +76,8 @@ extern int __gethostbyname2_r (const char *__restrict __name, int __af, struct hostent *__restrict __result_buf, char *__restrict __buf, size_t __buflen, struct hostent **__restrict __result, - int *__restrict __h_errnop); + int *__restrict __h_errnop) + attribute_hidden; extern int __old_gethostbyname2_r (const char *__restrict __name, int __af, struct hostent *__restrict __result_buf, char *__restrict __buf, size_t __buflen, @@ -101,7 +104,8 @@ extern int __getnetbyaddr_r (uint32_t __net, int __type, struct netent *__restrict __result_buf, char *__restrict __buf, size_t __buflen, struct netent **__restrict __result, - int *__restrict __h_errnop); + int *__restrict __h_errnop) + attribute_hidden; extern int __old_getnetbyaddr_r (uint32_t __net, int __type, struct netent *__restrict __result_buf, char *__restrict __buf, size_t __buflen, @@ -112,7 +116,8 @@ extern int __getnetbyname_r (const char *__restrict __name, struct netent *__restrict __result_buf, char *__restrict __buf, size_t __buflen, struct netent **__restrict __result, - int *__restrict __h_errnop); + int *__restrict __h_errnop) + attribute_hidden; extern int __old_getnetbyname_r (const char *__restrict __name, struct netent *__restrict __result_buf, char *__restrict __buf, size_t __buflen, @@ -131,7 +136,8 @@ extern int __getservbyname_r (const char *__restrict __name, const char *__restrict __proto, struct servent *__restrict __result_buf, char *__restrict __buf, size_t __buflen, - struct servent **__restrict __result); + struct servent **__restrict __result) + attribute_hidden; extern int __old_getservbyname_r (const char *__restrict __name, const char *__restrict __proto, struct servent *__restrict __result_buf, @@ -142,7 +148,8 @@ extern int __getservbyport_r (int __port, const char *__restrict __proto, struct servent *__restrict __result_buf, char *__restrict __buf, size_t __buflen, - struct servent **__restrict __result); + struct servent **__restrict __result) + attribute_hidden; extern int __old_getservbyport_r (int __port, const char *__restrict __proto, struct servent *__restrict __result_buf, @@ -160,7 +167,8 @@ extern int __old_getprotoent_r (struct protoent *__restrict __result_buf, extern int __getprotobyname_r (const char *__restrict __name, struct protoent *__restrict __result_buf, char *__restrict __buf, size_t __buflen, - struct protoent **__restrict __result); + struct protoent **__restrict __result) + attribute_hidden; extern int __old_getprotobyname_r (const char *__restrict __name, struct protoent *__restrict __result_buf, char *__restrict __buf, size_t __buflen, @@ -169,7 +177,8 @@ extern int __old_getprotobyname_r (const char *__restrict __name, extern int __getprotobynumber_r (int __proto, struct protoent *__restrict __res_buf, char *__restrict __buf, size_t __buflen, - struct protoent **__restrict __result); + struct protoent **__restrict __result) + attribute_hidden; extern int __old_getprotobynumber_r (int __proto, struct protoent *__restrict __res_buf, char *__restrict __buf, size_t __buflen, @@ -178,7 +187,8 @@ extern int __old_getprotobynumber_r (int __proto, extern int __getnetgrent_r (char **__restrict __hostp, char **__restrict __userp, char **__restrict __domainp, - char *__restrict __buffer, size_t __buflen); + char *__restrict __buffer, size_t __buflen) + attribute_hidden; extern int ruserpass (const char *host, const char **aname, const char **apass); diff --git a/include/rpc/netdb.h b/include/rpc/netdb.h index 9b84668be7..eb75f3f58c 100644 --- a/include/rpc/netdb.h +++ b/include/rpc/netdb.h @@ -5,7 +5,7 @@ extern int __getrpcbyname_r (const char *__name, struct rpcent *__result_buf, char *__buffer, size_t __buflen, - struct rpcent **__result); + struct rpcent **__result) attribute_hidden; extern int __old_getrpcbyname_r (const char *__name, struct rpcent *__result_buf, char *__buffer, size_t __buflen, @@ -13,7 +13,7 @@ extern int __old_getrpcbyname_r (const char *__name, extern int __getrpcbynumber_r (int __number, struct rpcent *__result_buf, char *__buffer, size_t __buflen, - struct rpcent **__result); + struct rpcent **__result) attribute_hidden; extern int __old_getrpcbynumber_r (int __number, struct rpcent *__result_buf, char *__buffer, size_t __buflen, struct rpcent **__result); diff --git a/nss/getXXbyYY.c b/nss/getXXbyYY.c index a439b816f7..f420b34fb8 100644 --- a/nss/getXXbyYY.c +++ b/nss/getXXbyYY.c @@ -79,7 +79,8 @@ /* Prototype for reentrant version we use here. */ extern int INTERNAL (REENTRANT_NAME) (ADD_PARAMS, LOOKUP_TYPE *resbuf, char *buffer, size_t buflen, - LOOKUP_TYPE **result H_ERRNO_PARM); + LOOKUP_TYPE **result H_ERRNO_PARM) + attribute_hidden; /* We need to protect the dynamic buffer handling. */ __libc_lock_define_initialized (static, lock);