about summary refs log tree commit diff
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2017-10-01 15:16:13 -0700
committerH.J. Lu <hjl.tools@gmail.com>2017-10-01 15:16:27 -0700
commita4338d994fe4b1802db040140153b4b6bc36c817 (patch)
tree436d29c1e6adae92d4f44599b97164af7413e9ad
parenta2ca165230cfa951605e5904be838c3e3e04be0b (diff)
downloadglibc-a4338d994fe4b1802db040140153b4b6bc36c817.tar.gz
glibc-a4338d994fe4b1802db040140153b4b6bc36c817.tar.xz
glibc-a4338d994fe4b1802db040140153b4b6bc36c817.zip
Mark internal nscd functions with attribute_hidden [BZ #18822]
Mark internal nscd functions with attribute_hidden to allow direct
access within libc.so and libc.a without using GOT nor PLT.

	[BZ #18822]
	* nscd/nscd-client.h (__nscd_get_map_ref): Add attribute_hidden.
	(__nscd_unmap): Likewise.
	(__nscd_cache_search): Likewise.
	(__nscd_get_nl_timestamp): Likewise.
	(__nscd_getpwnam_r): Likewise.
	(__nscd_getpwuid_r): Likewise.
	(__nscd_getgrnam_r): Likewise.
	(__nscd_getgrgid_r): Likewise.
	(__nscd_gethostbyname_r): Likewise.
	(__nscd_gethostbyname2_r): Likewise.
	(__nscd_gethostbyaddr_r): Likewise.
	(__nscd_getai): Likewise.
	(__nscd_getgrouplist): Likewise.
	(__nscd_getservbyname_r): Likewise.
	(__nscd_getservbyport_r): Likewise.
	(__nscd_innetgr): Likewise.
	(__nscd_setnetgrent): Likewise.
-rw-r--r--ChangeLog21
-rw-r--r--nscd/nscd-client.h12
-rw-r--r--nscd/nscd_proto.h34
3 files changed, 50 insertions, 17 deletions
diff --git a/ChangeLog b/ChangeLog
index d1ab72051f..170d07972e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,27 @@
 2017-10-01  H.J. Lu  <hongjiu.lu@intel.com>
 
 	[BZ #18822]
+	* nscd/nscd-client.h (__nscd_get_map_ref): Add attribute_hidden.
+	(__nscd_unmap): Likewise.
+	(__nscd_cache_search): Likewise.
+	(__nscd_get_nl_timestamp): Likewise.
+	(__nscd_getpwnam_r): Likewise.
+	(__nscd_getpwuid_r): Likewise.
+	(__nscd_getgrnam_r): Likewise.
+	(__nscd_getgrgid_r): Likewise.
+	(__nscd_gethostbyname_r): Likewise.
+	(__nscd_gethostbyname2_r): Likewise.
+	(__nscd_gethostbyaddr_r): Likewise.
+	(__nscd_getai): Likewise.
+	(__nscd_getgrouplist): Likewise.
+	(__nscd_getservbyname_r): Likewise.
+	(__nscd_getservbyport_r): Likewise.
+	(__nscd_innetgr): Likewise.
+	(__nscd_setnetgrent): Likewise.
+
+2017-10-01  H.J. Lu  <hongjiu.lu@intel.com>
+
+	[BZ #18822]
 	* include/gmp.h: Declare internal functions only if _ISOMAC is
 	undefined.
 	(__mpn_extract_double): Add attribute_hidden.
diff --git a/nscd/nscd-client.h b/nscd/nscd-client.h
index 96170bff1b..9155218e1b 100644
--- a/nscd/nscd-client.h
+++ b/nscd/nscd-client.h
@@ -400,10 +400,12 @@ extern struct mapped_database *__nscd_get_mapping (request_type type,
 extern struct mapped_database *__nscd_get_map_ref (request_type type,
 						   const char *name,
 						   volatile struct locked_map_ptr *mapptr,
-						   int *gc_cyclep);
+						   int *gc_cyclep)
+  attribute_hidden;
 
 /* Unmap database.  */
-extern void __nscd_unmap (struct mapped_database *mapped);
+extern void __nscd_unmap (struct mapped_database *mapped)
+  attribute_hidden;
 
 /* Drop reference of mapping.  */
 static int
@@ -433,7 +435,8 @@ extern struct datahead *__nscd_cache_search (request_type type,
 					     const char *key,
 					     size_t keylen,
 					     const struct mapped_database *mapped,
-					     size_t datalen);
+					     size_t datalen)
+  attribute_hidden;
 
 /* Wrappers around read, readv and write that only read/write less than LEN
    bytes on error or EOF.  */
@@ -447,6 +450,7 @@ extern ssize_t sendfileall (int tofd, int fromfd, off_t off, size_t len)
   attribute_hidden;
 
 /* Get netlink timestamp counter from mapped area or zero.  */
-extern uint32_t __nscd_get_nl_timestamp (void);
+extern uint32_t __nscd_get_nl_timestamp (void)
+  attribute_hidden;
 
 #endif /* nscd.h */
diff --git a/nscd/nscd_proto.h b/nscd/nscd_proto.h
index 7c61821e74..2ec0885349 100644
--- a/nscd/nscd_proto.h
+++ b/nscd/nscd_proto.h
@@ -39,41 +39,49 @@ extern int __nss_not_use_nscd_netgroup attribute_hidden;
 
 extern int __nscd_getpwnam_r (const char *name, struct passwd *resultbuf,
 			      char *buffer, size_t buflen,
-			      struct passwd **result);
+			      struct passwd **result) attribute_hidden;
 extern int __nscd_getpwuid_r (uid_t uid, struct passwd *resultbuf,
 			      char *buffer,  size_t buflen,
-			      struct passwd **result);
+			      struct passwd **result) attribute_hidden;
 extern int __nscd_getgrnam_r (const char *name, struct group *resultbuf,
 			      char *buffer, size_t buflen,
-			      struct group **result);
+			      struct group **result) attribute_hidden;
 extern int __nscd_getgrgid_r (gid_t gid, struct group *resultbuf,
 			      char *buffer,  size_t buflen,
-			      struct group **result);
+			      struct group **result) attribute_hidden;
 extern int __nscd_gethostbyname_r (const char *name,
 				   struct hostent *resultbuf,
 				   char *buffer, size_t buflen,
-				   struct hostent **result, int *h_errnop);
+				   struct hostent **result, int *h_errnop)
+     attribute_hidden;
 extern int __nscd_gethostbyname2_r (const char *name, int af,
 				    struct hostent *resultbuf,
 				    char *buffer, size_t buflen,
-				    struct hostent **result, int *h_errnop);
+				    struct hostent **result, int *h_errnop)
+     attribute_hidden;
 extern int __nscd_gethostbyaddr_r (const void *addr, socklen_t len, int type,
 				   struct hostent *resultbuf,
 				   char *buffer, size_t buflen,
-				   struct hostent **result, int *h_errnop);
+				   struct hostent **result, int *h_errnop)
+     attribute_hidden;
 extern int __nscd_getai (const char *key, struct nscd_ai_result **result,
-			 int *h_errnop);
+			 int *h_errnop) attribute_hidden;
 extern int __nscd_getgrouplist (const char *user, gid_t group, long int *size,
-				gid_t **groupsp, long int limit);
+				gid_t **groupsp, long int limit)
+     attribute_hidden;
 extern int __nscd_getservbyname_r (const char *name, const char *proto,
 				   struct servent *result_buf, char *buf,
-				   size_t buflen, struct servent **result);
+				   size_t buflen, struct servent **result)
+     attribute_hidden;
 extern int __nscd_getservbyport_r (int port, const char *proto,
 				   struct servent *result_buf, char *buf,
-				   size_t buflen, struct servent **result);
+				   size_t buflen, struct servent **result)
+     attribute_hidden;
 extern int __nscd_innetgr (const char *netgroup, const char *host,
-			   const char *user, const char *domain);
-extern int __nscd_setnetgrent (const char *group, struct __netgrent *datap);
+			   const char *user, const char *domain)
+     attribute_hidden;
+extern int __nscd_setnetgrent (const char *group, struct __netgrent *datap)
+     attribute_hidden;
 
 
 #endif /* _NSCD_PROTO_H */