about summary refs log tree commit diff
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2017-10-01 15:20:47 -0700
committerH.J. Lu <hjl.tools@gmail.com>2017-10-01 15:21:00 -0700
commit9635ce69626bfe41196bdef8efe4aba8d8a7b58f (patch)
tree49b020ac6ac7c72bdd551f4b3e3ab9508c294b18
parent2e0a69097d38382fc26cce2a482e9ef2ddda52cf (diff)
downloadglibc-9635ce69626bfe41196bdef8efe4aba8d8a7b58f.tar.gz
glibc-9635ce69626bfe41196bdef8efe4aba8d8a7b58f.tar.xz
glibc-9635ce69626bfe41196bdef8efe4aba8d8a7b58f.zip
Mark internal getXXXbyYYY functions with attribute_hidden [BZ #18822]
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.
-rw-r--r--ChangeLog18
-rw-r--r--include/aliases.h3
-rw-r--r--include/netdb.h30
-rw-r--r--include/rpc/netdb.h4
-rw-r--r--nss/getXXbyYY.c3
5 files changed, 44 insertions, 14 deletions
diff --git a/ChangeLog b/ChangeLog
index 905e7e8e9f..98d572b8da 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,24 @@
 2017-10-01  H.J. Lu  <hongjiu.lu@intel.com>
 
 	[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.
+
+2017-10-01  H.J. Lu  <hongjiu.lu@intel.com>
+
+	[BZ #18822]
 	* include/stdio.h (__fcloseall): Add attribute_hidden.
 	(__getline): Likewise.
 	(__path_search): Likewise.
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);