aboutsummaryrefslogtreecommitdiff
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
glibc-a4338d994fe4b1802db040140153b4b6bc36c817.tar.gz
glibc-a4338d994fe4b1802db040140153b4b6bc36c817.tar.bz2
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 */