This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch master updated. glibc-2.26-446-g9635ce6


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  9635ce69626bfe41196bdef8efe4aba8d8a7b58f (commit)
       via  2e0a69097d38382fc26cce2a482e9ef2ddda52cf (commit)
       via  94fd682c9b7c0b1ed95234a491f86b8d529e15c2 (commit)
       via  e1b33bba7c30b36be33fa8bb1e6cffbb65b97730 (commit)
       via  b0f5678494d727b6868435dfc32b066ade6d3e49 (commit)
       via  a4338d994fe4b1802db040140153b4b6bc36c817 (commit)
       via  a2ca165230cfa951605e5904be838c3e3e04be0b (commit)
       via  44af8a32c341672b5160fdc2839767e9a837ad26 (commit)
       via  783cd767af5f3746b639f76b1de5e0e3c3d64683 (commit)
       via  7ec4b39ac484ba65e011dde4e8ff0b7f478efc7c (commit)
       via  8345a76018851ba52e05216e3d7c772e24d5da44 (commit)
       via  c26dd7c600a2192d031efa2a0fb28b1ded85bf1d (commit)
       via  3aff56444e96300fba1e2c25bd0b2545613a20fa (commit)
       via  8bcdb7e0c5346d2e9d61b208d80fd8213e1dbd90 (commit)
      from  8ed3b64330cd24e2a17d8794a871cab034707a33 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=9635ce69626bfe41196bdef8efe4aba8d8a7b58f

commit 9635ce69626bfe41196bdef8efe4aba8d8a7b58f
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Oct 1 15:20:47 2017 -0700

    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.

diff --git a/ChangeLog b/ChangeLog
index 905e7e8..98d572b 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 ece69eb..11b81d4 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 d425a64..e230b1f 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 9b84668..eb75f3f 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 a439b81..f420b34 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);

http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=2e0a69097d38382fc26cce2a482e9ef2ddda52cf

commit 2e0a69097d38382fc26cce2a482e9ef2ddda52cf
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Oct 1 15:19:51 2017 -0700

    Mark internal stdio functions with attribute_hidden [BZ #18822]
    
    Mark internal stdio functions with attribute_hidden to allow direct
    access within libc.so and libc.a without using GOT nor PLT.
    
    	[BZ #18822]
    	* include/stdio.h (__fcloseall): Add attribute_hidden.
    	(__getline): Likewise.
    	(__path_search): Likewise.
    	(__gen_tempname): Likewise.
    	(__libc_message): Likewise.
    	(__flockfile): Likewise.
    	(__funlockfile): Likewise.
    	(__fxprintf): Likewise.
    	(__fxprintf_nocancel): Likewise.

diff --git a/ChangeLog b/ChangeLog
index 0ed599d..905e7e8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,19 @@
 2017-10-01  H.J. Lu  <hongjiu.lu@intel.com>
 
 	[BZ #18822]
+	* include/stdio.h (__fcloseall): Add attribute_hidden.
+	(__getline): Likewise.
+	(__path_search): Likewise.
+	(__gen_tempname): Likewise.
+	(__libc_message): Likewise.
+	(__flockfile): Likewise.
+	(__funlockfile): Likewise.
+	(__fxprintf): Likewise.
+	(__fxprintf_nocancel): Likewise.
+
+2017-10-01  H.J. Lu  <hongjiu.lu@intel.com>
+
+	[BZ #18822]
 	* include/gshadow.h (__fgetsgent_r): Add attribute_hidden.
 	(__sgetsgent_r): Likewise.
 
diff --git a/include/stdio.h b/include/stdio.h
index 7625a2a..f1e987a 100644
--- a/include/stdio.h
+++ b/include/stdio.h
@@ -4,7 +4,7 @@
 
 /* Now define the internal interfaces.  */
 
-extern int __fcloseall (void);
+extern int __fcloseall (void) attribute_hidden;
 extern int __snprintf (char *__restrict __s, size_t __maxlen,
 		       const char *__restrict __format, ...)
      __attribute__ ((__format__ (__printf__, 3, 4)));
@@ -21,7 +21,7 @@ extern int __vscanf (const char *__restrict __format,
 		     _G_va_list __arg)
      __attribute__ ((__format__ (__scanf__, 1, 0)));
 extern _IO_ssize_t __getline (char **__lineptr, size_t *__n,
-			      FILE *__stream);
+			      FILE *__stream) attribute_hidden;
 extern int __vsscanf (const char *__restrict __s,
 		      const char *__restrict __format,
 		      _G_va_list __arg)
@@ -77,10 +77,10 @@ extern FILE *__old_tmpfile (void);
 /* Generate a unique file name (and possibly open it).  */
 extern int __path_search (char *__tmpl, size_t __tmpl_len,
 			  const char *__dir, const char *__pfx,
-			  int __try_tempdir);
+			  int __try_tempdir) attribute_hidden;
 
 extern int __gen_tempname (char *__tmpl, int __suffixlen, int __flags,
-			   int __kind);
+			   int __kind) attribute_hidden;
 /* The __kind argument to __gen_tempname may be one of: */
 #  define __GT_FILE	0	/* create a file */
 #  define __GT_DIR	1	/* create a directory */
@@ -97,7 +97,7 @@ enum __libc_message_action
 extern void __libc_fatal (const char *__message)
      __attribute__ ((__noreturn__));
 extern void __libc_message (enum __libc_message_action action,
-			    const char *__fnt, ...);
+			    const char *__fnt, ...) attribute_hidden;
 extern void __fortify_fail (const char *msg) __attribute__ ((__noreturn__));
 extern void __fortify_fail_abort (_Bool, const char *msg)
   __attribute__ ((__noreturn__)) attribute_hidden;
@@ -105,10 +105,10 @@ libc_hidden_proto (__fortify_fail)
 libc_hidden_proto (__fortify_fail_abort)
 
 /* Acquire ownership of STREAM.  */
-extern void __flockfile (FILE *__stream);
+extern void __flockfile (FILE *__stream) attribute_hidden;
 
 /* Relinquish the ownership granted for STREAM.  */
-extern void __funlockfile (FILE *__stream);
+extern void __funlockfile (FILE *__stream) attribute_hidden;
 
 /* Try to acquire ownership of STREAM but do not block if it is not
    possible.  */
@@ -118,9 +118,9 @@ extern int __getc_unlocked (FILE *__fp);
 extern wint_t __getwc_unlocked (FILE *__fp);
 
 extern int __fxprintf (FILE *__fp, const char *__fmt, ...)
-     __attribute__ ((__format__ (__printf__, 2, 3)));
+     __attribute__ ((__format__ (__printf__, 2, 3))) attribute_hidden;
 extern int __fxprintf_nocancel (FILE *__fp, const char *__fmt, ...)
-     __attribute__ ((__format__ (__printf__, 2, 3)));
+     __attribute__ ((__format__ (__printf__, 2, 3))) attribute_hidden;
 
 extern const char *const _sys_errlist_internal[] attribute_hidden;
 extern int _sys_nerr_internal attribute_hidden;

http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=94fd682c9b7c0b1ed95234a491f86b8d529e15c2

commit 94fd682c9b7c0b1ed95234a491f86b8d529e15c2
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Oct 1 15:19:01 2017 -0700

    Mark internal gshadow functions with attribute_hidden [BZ #18822]
    
    Mark internal gshadow functions with attribute_hidden to allow direct
    access within libc.so and libc.a without using GOT nor PLT.
    
    	[BZ #18822]
    	* include/gshadow.h (__fgetsgent_r): Add attribute_hidden.
    	(__sgetsgent_r): Likewise.

diff --git a/ChangeLog b/ChangeLog
index 9409555..0ed599d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,12 @@
 2017-10-01  H.J. Lu  <hongjiu.lu@intel.com>
 
 	[BZ #18822]
+	* include/gshadow.h (__fgetsgent_r): Add attribute_hidden.
+	(__sgetsgent_r): Likewise.
+
+2017-10-01  H.J. Lu  <hongjiu.lu@intel.com>
+
+	[BZ #18822]
 	* include/sys/statfs.h (__fstatfs): Add attribute_hidden.
 	(__statfs64): Likewise.
 	(__fstatfs64): Likewise.
diff --git a/include/gshadow.h b/include/gshadow.h
index 532801a..aa6a5a6 100644
--- a/include/gshadow.h
+++ b/include/gshadow.h
@@ -4,9 +4,11 @@
 # ifndef _ISOMAC
 
 extern int __fgetsgent_r (FILE *stream, struct sgrp *resbuf, char *buffer,
-			  size_t buflen, struct sgrp **result);
+			  size_t buflen, struct sgrp **result)
+     attribute_hidden;
 extern int __sgetsgent_r (const char *string, struct sgrp *resbuf,
-			  char *buffer, size_t buflen, struct sgrp **result);
+			  char *buffer, size_t buflen, struct sgrp **result)
+     attribute_hidden;
 
 struct parser_data;
 extern int _nss_files_parse_sgent (char *line, struct sgrp *result,

http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=e1b33bba7c30b36be33fa8bb1e6cffbb65b97730

commit e1b33bba7c30b36be33fa8bb1e6cffbb65b97730
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Oct 1 15:18:09 2017 -0700

    Mark internal statfs functions with attribute_hidden [BZ #18822]
    
    Mark internal statfs functions with attribute_hidden to allow direct
    access within libc.so and libc.a without using GOT nor PLT.
    
    	[BZ #18822]
    	* include/sys/statfs.h (__fstatfs): Add attribute_hidden.
    	(__statfs64): Likewise.
    	(__fstatfs64): Likewise.
    	* include/sys/statvfs.h (__statvfs64): Likewise.
    	(__fstatvfs64): Likewise.
    	* sysdeps/unix/sysv/linux/pathconf.h (__statfs_link_max): Likewise.
    	(__statfs_filesize_max): Likewise.
    	(__statfs_symlinks): Likewise.
    	(__statfs_chown_restricted): Likewise.

diff --git a/ChangeLog b/ChangeLog
index 4a8d173..9409555 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,19 @@
 2017-10-01  H.J. Lu  <hongjiu.lu@intel.com>
 
 	[BZ #18822]
+	* include/sys/statfs.h (__fstatfs): Add attribute_hidden.
+	(__statfs64): Likewise.
+	(__fstatfs64): Likewise.
+	* include/sys/statvfs.h (__statvfs64): Likewise.
+	(__fstatvfs64): Likewise.
+	* sysdeps/unix/sysv/linux/pathconf.h (__statfs_link_max): Likewise.
+	(__statfs_filesize_max): Likewise.
+	(__statfs_symlinks): Likewise.
+	(__statfs_chown_restricted): Likewise.
+
+2017-10-01  H.J. Lu  <hongjiu.lu@intel.com>
+
+	[BZ #18822]
 	* include/time.h (__tzstring): Add attribute_hidden.
 	(__tzfile_read): Likewise.
 	(__tzfile_compute): Likewise.
diff --git a/include/sys/statfs.h b/include/sys/statfs.h
index 3fac4a3..8a9f5a7 100644
--- a/include/sys/statfs.h
+++ b/include/sys/statfs.h
@@ -6,9 +6,12 @@
 /* Now define the internal interfaces.  */
 extern int __statfs (const char *__file, struct statfs *__buf);
 libc_hidden_proto (__statfs)
-extern int __fstatfs (int __fildes, struct statfs *__buf);
-extern int __statfs64 (const char *__file, struct statfs64 *__buf);
-extern int __fstatfs64 (int __fildes, struct statfs64 *__buf);
+extern int __fstatfs (int __fildes, struct statfs *__buf)
+     attribute_hidden;
+extern int __statfs64 (const char *__file, struct statfs64 *__buf)
+     attribute_hidden;
+extern int __fstatfs64 (int __fildes, struct statfs64 *__buf)
+     attribute_hidden;
 
 # endif /* !_ISOMAC */
 #endif
diff --git a/include/sys/statvfs.h b/include/sys/statvfs.h
index fa30453..4cd1977 100644
--- a/include/sys/statvfs.h
+++ b/include/sys/statvfs.h
@@ -3,8 +3,10 @@
 
 #ifndef _ISOMAC
 /* Now define the internal interfaces.  */
-extern int __statvfs64 (const char *__file, struct statvfs64 *__buf);
-extern int __fstatvfs64 (int __fildes, struct statvfs64 *__buf);
+extern int __statvfs64 (const char *__file, struct statvfs64 *__buf)
+     attribute_hidden;
+extern int __fstatvfs64 (int __fildes, struct statvfs64 *__buf)
+     attribute_hidden;
 
 libc_hidden_proto (statvfs)
 libc_hidden_proto (fstatvfs)
diff --git a/sysdeps/unix/sysv/linux/pathconf.h b/sysdeps/unix/sysv/linux/pathconf.h
index 5de2915..b9de04f 100644
--- a/sysdeps/unix/sysv/linux/pathconf.h
+++ b/sysdeps/unix/sysv/linux/pathconf.h
@@ -24,17 +24,21 @@
 /* Used like: return __statfs_link_max (__statfs (name, &buf), &buf,
 					name, -1); */
 extern long int __statfs_link_max (int result, const struct statfs *fsbuf,
-				   const char *file, int fd);
+				   const char *file, int fd)
+     attribute_hidden;
 
 
 /* Used like: return __statfs_filesize_max (__statfs (name, &buf), &buf); */
-extern long int __statfs_filesize_max (int result, const struct statfs *fsbuf);
+extern long int __statfs_filesize_max (int result, const struct statfs *fsbuf)
+     attribute_hidden;
 
 
 /* Used like: return __statfs_link_max (__statfs (name, &buf), &buf); */
-extern long int __statfs_symlinks (int result, const struct statfs *fsbuf);
+extern long int __statfs_symlinks (int result, const struct statfs *fsbuf)
+     attribute_hidden;
 
 
 /* Used like: return __statfs_chown_restricted (__statfs (name, &buf), &buf);*/
 extern long int __statfs_chown_restricted (int result,
-					   const struct statfs *fsbuf);
+					   const struct statfs *fsbuf)
+     attribute_hidden;

http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=b0f5678494d727b6868435dfc32b066ade6d3e49

commit b0f5678494d727b6868435dfc32b066ade6d3e49
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Oct 1 15:17:19 2017 -0700

    Mark internal time functions with attribute_hidden [BZ #18822]
    
    Mark internal time functions with attribute_hidden to allow direct
    access within libc.so and libc.a without using GOT nor PLT.
    
    	[BZ #18822]
    	* include/time.h (__tzstring): Add attribute_hidden.
    	(__tzfile_read): Likewise.
    	(__tzfile_compute): Likewise.
    	(__tzfile_default): Likewise.
    	(__tzset_parse_tz): Likewise.
    	(__offtime): Likewise.
    	(__asctime_r): Likewise.
    	(__tzset): Likewise.
    	(__tz_convert): Likewise.
    	(__getdate_r): Likewise.
    	(__getclktck): Likewise.

diff --git a/ChangeLog b/ChangeLog
index 170d079..4a8d173 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,21 @@
 2017-10-01  H.J. Lu  <hongjiu.lu@intel.com>
 
 	[BZ #18822]
+	* include/time.h (__tzstring): Add attribute_hidden.
+	(__tzfile_read): Likewise.
+	(__tzfile_compute): Likewise.
+	(__tzfile_default): Likewise.
+	(__tzset_parse_tz): Likewise.
+	(__offtime): Likewise.
+	(__asctime_r): Likewise.
+	(__tzset): Likewise.
+	(__tz_convert): Likewise.
+	(__getdate_r): Likewise.
+	(__getclktck): Likewise.
+
+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.
diff --git a/include/time.h b/include/time.h
index e8c07bb..aab26d7 100644
--- a/include/time.h
+++ b/include/time.h
@@ -33,18 +33,19 @@ extern const unsigned short int __mon_yday[2][13] attribute_hidden;
 extern struct tm _tmbuf attribute_hidden;
 
 /* Defined in tzset.c.  */
-extern char *__tzstring (const char *string);
+extern char *__tzstring (const char *string) attribute_hidden;
 
 extern int __use_tzfile attribute_hidden;
 
 extern void __tzfile_read (const char *file, size_t extra,
-			   char **extrap);
+			   char **extrap) attribute_hidden;
 extern void __tzfile_compute (time_t timer, int use_localtime,
 			      long int *leap_correct, int *leap_hit,
-			      struct tm *tp);
+			      struct tm *tp) attribute_hidden;
 extern void __tzfile_default (const char *std, const char *dst,
-			      long int stdoff, long int dstoff);
-extern void __tzset_parse_tz (const char *tz);
+			      long int stdoff, long int dstoff)
+  attribute_hidden;
+extern void __tzset_parse_tz (const char *tz) attribute_hidden;
 extern void __tz_compute (time_t timer, struct tm *tm, int use_localtime)
   __THROW attribute_hidden;
 
@@ -68,22 +69,25 @@ libc_hidden_proto (__gmtime_r)
    Return nonzero if successful.  */
 extern int __offtime (const time_t *__timer,
 		      long int __offset,
-		      struct tm *__tp);
+		      struct tm *__tp) attribute_hidden;
 
-extern char *__asctime_r (const struct tm *__tp, char *__buf);
-extern void __tzset (void);
+extern char *__asctime_r (const struct tm *__tp, char *__buf)
+  attribute_hidden;
+extern void __tzset (void) attribute_hidden;
 
 /* Prototype for the internal function to get information based on TZ.  */
-extern struct tm *__tz_convert (const time_t *timer, int use_localtime, struct tm *tp);
+extern struct tm *__tz_convert (const time_t *timer, int use_localtime,
+				struct tm *tp) attribute_hidden;
 
 extern int __nanosleep (const struct timespec *__requested_time,
 			struct timespec *__remaining);
 hidden_proto (__nanosleep)
-extern int __getdate_r (const char *__string, struct tm *__resbufp);
+extern int __getdate_r (const char *__string, struct tm *__resbufp)
+  attribute_hidden;
 
 
 /* Determine CLK_TCK value.  */
-extern int __getclktck (void);
+extern int __getclktck (void) attribute_hidden;
 
 
 /* strptime support.  */

http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=a4338d994fe4b1802db040140153b4b6bc36c817

commit a4338d994fe4b1802db040140153b4b6bc36c817
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Oct 1 15:16:13 2017 -0700

    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.

diff --git a/ChangeLog b/ChangeLog
index d1ab720..170d079 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 96170bf..9155218 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 7c61821..2ec0885 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 */

http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=a2ca165230cfa951605e5904be838c3e3e04be0b

commit a2ca165230cfa951605e5904be838c3e3e04be0b
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Oct 1 15:15:15 2017 -0700

    Mark internal gmp functions with attribute_hidden [BZ #18822]
    
    Mark internal gmp functions with attribute_hidden to allow direct
    access within libc.so and libc.a without using GOT nor PLT.
    
    	[BZ #18822]
    	* include/gmp.h: Declare internal functions only if _ISOMAC is
    	undefined.
    	(__mpn_extract_double): Add attribute_hidden.
    	(__mpn_extract_long_double): Likewise.
    	(__mpn_extract_float128): Likewise.
    	(__mpn_construct_float): Likewise.
    	(__mpn_construct_double): Likewise.
    	(__mpn_construct_long_double): Likewise.
    	(__mpn_construct_float128): Likewise.
    	(mpn_add_1): Likewise.
    	(mpn_addmul_1): Likewise.
    	(mpn_add_n): Likewise.
    	(mpn_cmp): Likewise.
    	(mpn_divrem): Likewise.
    	(mpn_lshift): Likewise.
    	(mpn_mul): Likewise.
    	(mpn_mul_1): Likewise.
    	(mpn_rshift): Likewise.
    	(mpn_sub_1): Likewise.
    	(mpn_submul_1): Likewise.
    	(mpn_sub_n): Likewise.

diff --git a/ChangeLog b/ChangeLog
index c168da1..d1ab720 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,31 @@
 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.
+	(__mpn_extract_long_double): Likewise.
+	(__mpn_extract_float128): Likewise.
+	(__mpn_construct_float): Likewise.
+	(__mpn_construct_double): Likewise.
+	(__mpn_construct_long_double): Likewise.
+	(__mpn_construct_float128): Likewise.
+	(mpn_add_1): Likewise.
+	(mpn_addmul_1): Likewise.
+	(mpn_add_n): Likewise.
+	(mpn_cmp): Likewise.
+	(mpn_divrem): Likewise.
+	(mpn_lshift): Likewise.
+	(mpn_mul): Likewise.
+	(mpn_mul_1): Likewise.
+	(mpn_rshift): Likewise.
+	(mpn_sub_1): Likewise.
+	(mpn_submul_1): Likewise.
+	(mpn_sub_n): Likewise.
+
+2017-10-01  H.J. Lu  <hongjiu.lu@intel.com>
+
+	[BZ #18822]
 	* include/wchar.h (__wcsnlen): Add attribute_hidden.
 	(__wcscat): Likewise.
 	(__btowc): Likewise.
diff --git a/include/gmp.h b/include/gmp.h
index 3590acf..657c7a0 100644
--- a/include/gmp.h
+++ b/include/gmp.h
@@ -8,32 +8,51 @@
 
 #include <bits/floatn.h>
 
+#ifndef _ISOMAC
 /* Now define the internal interfaces.  */
 extern mp_size_t __mpn_extract_double (mp_ptr res_ptr, mp_size_t size,
 				       int *expt, int *is_neg,
-				       double value);
+				       double value) attribute_hidden;
 
 extern mp_size_t __mpn_extract_long_double (mp_ptr res_ptr, mp_size_t size,
 					    int *expt, int *is_neg,
-					    long double value);
+					    long double value)
+     attribute_hidden;
 
 #if __HAVE_DISTINCT_FLOAT128
 extern mp_size_t __mpn_extract_float128 (mp_ptr res_ptr, mp_size_t size,
 					 int *expt, int *is_neg,
-					 _Float128 value);
+					 _Float128 value)
+     attribute_hidden;
 #endif
 
-extern float __mpn_construct_float (mp_srcptr frac_ptr, int expt, int sign);
+extern float __mpn_construct_float (mp_srcptr frac_ptr, int expt, int sign)
+     attribute_hidden;
 
 extern double __mpn_construct_double (mp_srcptr frac_ptr, int expt,
-				      int negative);
+				      int negative) attribute_hidden;
 
 extern long double __mpn_construct_long_double (mp_srcptr frac_ptr, int expt,
-						int sign);
+						int sign)
+     attribute_hidden;
 
 #if __HAVE_DISTINCT_FLOAT128
 extern _Float128 __mpn_construct_float128 (mp_srcptr frac_ptr, int expt,
-					   int sign);
+					   int sign) attribute_hidden;
+#endif
+
+extern __typeof (mpn_add_1) mpn_add_1 attribute_hidden;
+extern __typeof (mpn_addmul_1) mpn_addmul_1 attribute_hidden;
+extern __typeof (mpn_add_n) mpn_add_n attribute_hidden;
+extern __typeof (mpn_cmp) mpn_cmp attribute_hidden;
+extern __typeof (mpn_divrem) mpn_divrem attribute_hidden;
+extern __typeof (mpn_lshift) mpn_lshift attribute_hidden;
+extern __typeof (mpn_mul) mpn_mul attribute_hidden;
+extern __typeof (mpn_mul_1) mpn_mul_1 attribute_hidden;
+extern __typeof (mpn_rshift) mpn_rshift attribute_hidden;
+extern __typeof (mpn_sub_1) mpn_sub_1 attribute_hidden;
+extern __typeof (mpn_submul_1) mpn_submul_1 attribute_hidden;
+extern __typeof (mpn_sub_n) mpn_sub_n attribute_hidden;
 #endif
 
 #endif
diff --git a/stdlib/gmp-impl.h b/stdlib/gmp-impl.h
index 42d3e4a..cbbf947 100644
--- a/stdlib/gmp-impl.h
+++ b/stdlib/gmp-impl.h
@@ -308,13 +308,17 @@ typedef unsigned int UHWtype;
 
 /* Prototypes for internal mpn calls.  */
 extern void impn_mul_n_basecase _PROTO ((mp_ptr prodp, mp_srcptr up,
-					 mp_srcptr vp, mp_size_t size));
+					 mp_srcptr vp, mp_size_t size))
+     attribute_hidden;
 extern void impn_mul_n _PROTO ((mp_ptr prodp, mp_srcptr up, mp_srcptr vp,
-				mp_size_t size, mp_ptr tspace));
+				mp_size_t size, mp_ptr tspace))
+     attribute_hidden;
 extern void impn_sqr_n_basecase _PROTO ((mp_ptr prodp, mp_srcptr up,
-					 mp_size_t size));
+					 mp_size_t size))
+     attribute_hidden;
 extern void impn_sqr_n _PROTO ((mp_ptr prodp, mp_srcptr up, mp_size_t size,
-				mp_ptr tspace));
+				mp_ptr tspace))
+     attribute_hidden;
 
 
 

http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=44af8a32c341672b5160fdc2839767e9a837ad26

commit 44af8a32c341672b5160fdc2839767e9a837ad26
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Oct 1 15:14:17 2017 -0700

    Mark internal wchar functions with attribute_hidden [BZ #18822]
    
    Mark internal wchar functions with attribute_hidden to allow direct
    access within libc.so and libc.a without using GOT nor PLT.
    
    	[BZ #18822]
    	* include/wchar.h (__wcsnlen): Add attribute_hidden.
    	(__wcscat): Likewise.
    	(__btowc): Likewise.
    	(__wcrtomb): Likewise.
    	(__mbsrtowcs): Likewise.
    	(__wcsrtombs): Likewise.
    	(__mbsnrtowcs): Likewise.
    	(__wcsnrtombs): Likewise.
    	(__wcsncpy): Likewise.
    	(__wcpncpy): Likewise.
    	(__wmemcpy): Likewise.
    	(__wmempcpy): Likewise.
    	(__wmemmove): Likewise.
    	(__wcschrnul): Likewise.
    	(__vfwscanf): Likewise.
    	(__vswprintf): Likewise.
    	(__fwprintf): Likewise.
    	(__vfwprintf): Likewise.

diff --git a/ChangeLog b/ChangeLog
index f626ba4..c168da1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,28 @@
 2017-10-01  H.J. Lu  <hongjiu.lu@intel.com>
 
 	[BZ #18822]
+	* include/wchar.h (__wcsnlen): Add attribute_hidden.
+	(__wcscat): Likewise.
+	(__btowc): Likewise.
+	(__wcrtomb): Likewise.
+	(__mbsrtowcs): Likewise.
+	(__wcsrtombs): Likewise.
+	(__mbsnrtowcs): Likewise.
+	(__wcsnrtombs): Likewise.
+	(__wcsncpy): Likewise.
+	(__wcpncpy): Likewise.
+	(__wmemcpy): Likewise.
+	(__wmempcpy): Likewise.
+	(__wmemmove): Likewise.
+	(__wcschrnul): Likewise.
+	(__vfwscanf): Likewise.
+	(__vswprintf): Likewise.
+	(__fwprintf): Likewise.
+	(__vfwprintf): Likewise.
+
+2017-10-01  H.J. Lu  <hongjiu.lu@intel.com>
+
+	[BZ #18822]
 	* include/grp.h (__fgetgrent_r): Add attribute_hidden.
 	(__getgrgid_r): Likewise.
 	(__getgrnam_r): Likewise.
diff --git a/include/wchar.h b/include/wchar.h
index eb472da..24b2eaa 100644
--- a/include/wchar.h
+++ b/include/wchar.h
@@ -152,9 +152,10 @@ extern int __wcsncasecmp (const wchar_t *__s1, const wchar_t *__s2,
      __attribute_pure__;
 extern size_t __wcslen (const wchar_t *__s) __attribute_pure__;
 extern size_t __wcsnlen (const wchar_t *__s, size_t __maxlen)
-     __attribute_pure__;
-extern wchar_t *__wcscat (wchar_t *dest, const wchar_t *src);
-extern wint_t __btowc (int __c);
+     attribute_hidden __attribute_pure__;
+extern wchar_t *__wcscat (wchar_t *dest, const wchar_t *src)
+     attribute_hidden;
+extern wint_t __btowc (int __c) attribute_hidden;
 extern int __mbsinit (const __mbstate_t *__ps);
 extern size_t __mbrtowc (wchar_t *__restrict __pwc,
 			 const char *__restrict __s, size_t __n,
@@ -162,34 +163,39 @@ extern size_t __mbrtowc (wchar_t *__restrict __pwc,
 libc_hidden_proto (__mbrtowc)
 libc_hidden_proto (__mbrlen)
 extern size_t __wcrtomb (char *__restrict __s, wchar_t __wc,
-			 __mbstate_t *__restrict __ps);
+			 __mbstate_t *__restrict __ps) attribute_hidden;
 extern size_t __mbsrtowcs (wchar_t *__restrict __dst,
 			   const char **__restrict __src,
-			   size_t __len, __mbstate_t *__restrict __ps);
+			   size_t __len, __mbstate_t *__restrict __ps)
+     attribute_hidden;
 extern size_t __wcsrtombs (char *__restrict __dst,
 			   const wchar_t **__restrict __src,
-			   size_t __len, __mbstate_t *__restrict __ps);
+			   size_t __len, __mbstate_t *__restrict __ps)
+     attribute_hidden;
 extern size_t __mbsnrtowcs (wchar_t *__restrict __dst,
 			    const char **__restrict __src, size_t __nmc,
-			    size_t __len, __mbstate_t *__restrict __ps);
+			    size_t __len, __mbstate_t *__restrict __ps)
+     attribute_hidden;
 extern size_t __wcsnrtombs (char *__restrict __dst,
 			    const wchar_t **__restrict __src,
 			    size_t __nwc, size_t __len,
-			    __mbstate_t *__restrict __ps);
+			    __mbstate_t *__restrict __ps)
+     attribute_hidden;
 extern wchar_t *__wcsncpy (wchar_t *__restrict __dest,
-			   const wchar_t *__restrict __src, size_t __n);
+			   const wchar_t *__restrict __src, size_t __n)
+     attribute_hidden;
 extern wchar_t *__wcpcpy (wchar_t *__dest, const wchar_t *__src);
 extern wchar_t *__wcpncpy (wchar_t *__dest, const wchar_t *__src,
-			   size_t __n);
+			   size_t __n) attribute_hidden;
 extern wchar_t *__wmemcpy (wchar_t *__s1, const wchar_t *s2,
-			   size_t __n);
+			   size_t __n) attribute_hidden;
 extern wchar_t *__wmempcpy (wchar_t *__restrict __s1,
 			    const wchar_t *__restrict __s2,
-			    size_t __n);
+			    size_t __n) attribute_hidden;
 extern wchar_t *__wmemmove (wchar_t *__s1, const wchar_t *__s2,
-			    size_t __n);
+			    size_t __n) attribute_hidden;
 extern wchar_t *__wcschrnul (const wchar_t *__s, wchar_t __wc)
-     __attribute_pure__;
+     attribute_hidden __attribute_pure__;
 
 extern wchar_t *__wmemset_chk (wchar_t *__s, wchar_t __c, size_t __n,
 			       size_t __ns) __THROW;
@@ -197,17 +203,21 @@ extern wchar_t *__wmemset_chk (wchar_t *__s, wchar_t __c, size_t __n,
 extern int __vfwscanf (__FILE *__restrict __s,
 		       const wchar_t *__restrict __format,
 		       __gnuc_va_list __arg)
+     attribute_hidden
      /* __attribute__ ((__format__ (__wscanf__, 2, 0)) */;
 extern int __vswprintf (wchar_t *__restrict __s, size_t __n,
 			const wchar_t *__restrict __format,
 			__gnuc_va_list __arg)
+     attribute_hidden
      /* __attribute__ ((__format__ (__wprintf__, 3, 0))) */;
 extern int __fwprintf (__FILE *__restrict __s,
 		       const wchar_t *__restrict __format, ...)
+     attribute_hidden
      /* __attribute__ ((__format__ (__wprintf__, 2, 3))) */;
 extern int __vfwprintf (__FILE *__restrict __s,
 			const wchar_t *__restrict __format,
 			__gnuc_va_list __arg)
+     attribute_hidden
      /* __attribute__ ((__format__ (__wprintf__, 2, 0))) */;
 extern int __vfwprintf_chk (FILE *__restrict __s, int __flag,
 			    const wchar_t *__restrict __format,

http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=783cd767af5f3746b639f76b1de5e0e3c3d64683

commit 783cd767af5f3746b639f76b1de5e0e3c3d64683
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Oct 1 15:12:57 2017 -0700

    Mark internal grp/pwd/shadow functions with attribute_hidden [BZ #18822]
    
    Mark internal grp/pwd/shadow functions with attribute_hidden to allow
    direct access within libc.so and libc.a without using GOT nor PLT.
    
    	[BZ #18822]
    	* include/grp.h (__fgetgrent_r): Add attribute_hidden.
    	(__getgrgid_r): Likewise.
    	(__getgrnam_r): Likewise.
    	* include/pwd.h (__getpwuid_r): Likewise.
    	(__getpwnam_r): Likewise.
    	(__fgetpwent_r): Likewise.
    	* include/shadow.h (__getspnam_r): Likewise.
    	(__sgetspent_r): Likewise.
    	(__fgetspent_r): Likewise.

diff --git a/ChangeLog b/ChangeLog
index 1c2b7e9..f626ba4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,19 @@
 2017-10-01  H.J. Lu  <hongjiu.lu@intel.com>
 
 	[BZ #18822]
+	* include/grp.h (__fgetgrent_r): Add attribute_hidden.
+	(__getgrgid_r): Likewise.
+	(__getgrnam_r): Likewise.
+	* include/pwd.h (__getpwuid_r): Likewise.
+	(__getpwnam_r): Likewise.
+	(__fgetpwent_r): Likewise.
+	* include/shadow.h (__getspnam_r): Likewise.
+	(__sgetspent_r): Likewise.
+	(__fgetspent_r): Likewise.
+
+2017-10-01  H.J. Lu  <hongjiu.lu@intel.com>
+
+	[BZ #18822]
 	* include/unistd.h (__access): Add attribute_hidden.
 	(__lseek64): Likewise.
 	(__libc_pread64): Likewise.
diff --git a/include/grp.h b/include/grp.h
index 0fb5c9a..871701a 100644
--- a/include/grp.h
+++ b/include/grp.h
@@ -12,12 +12,12 @@ extern int __old_getgrent_r (struct group *__resultbuf, char *buffer,
 			     size_t __buflen, struct group **__result);
 extern int __fgetgrent_r (FILE * __stream, struct group *__resultbuf,
 			  char *buffer, size_t __buflen,
-			  struct group **__result);
+			  struct group **__result) attribute_hidden;
 
 /* Search for an entry with a matching group ID.  */
 extern int __getgrgid_r (__gid_t __gid, struct group *__resultbuf,
 			 char *__buffer, size_t __buflen,
-			 struct group **__result);
+			 struct group **__result) attribute_hidden;
 extern int __old_getgrgid_r (__gid_t __gid, struct group *__resultbuf,
 			     char *__buffer, size_t __buflen,
 			     struct group **__result);
@@ -25,7 +25,7 @@ extern int __old_getgrgid_r (__gid_t __gid, struct group *__resultbuf,
 /* Search for an entry with a matching group name.  */
 extern int __getgrnam_r (const char *__name, struct group *__resultbuf,
 			 char *__buffer, size_t __buflen,
-			 struct group **__result);
+			 struct group **__result) attribute_hidden;
 extern int __old_getgrnam_r (const char *__name, struct group *__resultbuf,
 			     char *__buffer, size_t __buflen,
 			     struct group **__result);
diff --git a/include/pwd.h b/include/pwd.h
index 3b0f725..fc99506 100644
--- a/include/pwd.h
+++ b/include/pwd.h
@@ -10,19 +10,19 @@ extern int __old_getpwent_r (struct passwd *__resultbuf, char *__buffer,
 			     size_t __buflen, struct passwd **__result);
 extern int __getpwuid_r (__uid_t __uid, struct passwd *__resultbuf,
 			 char *__buffer, size_t __buflen,
-			 struct passwd **__result);
+			 struct passwd **__result) attribute_hidden;
 extern int __old_getpwuid_r (__uid_t __uid, struct passwd *__resultbuf,
 			     char *__buffer, size_t __buflen,
 			     struct passwd **__result);
 extern int __getpwnam_r (const char *__name, struct passwd *__resultbuf,
 			 char *__buffer, size_t __buflen,
-			 struct passwd **__result);
+			 struct passwd **__result) attribute_hidden;
 extern int __old_getpwnam_r (const char *__name, struct passwd *__resultbuf,
 			     char *__buffer, size_t __buflen,
 			     struct passwd **__result);
 extern int __fgetpwent_r (FILE * __stream, struct passwd *__resultbuf,
 			  char *__buffer, size_t __buflen,
-			  struct passwd **__result);
+			  struct passwd **__result) attribute_hidden;
 
 #include <nss.h>
 
diff --git a/include/shadow.h b/include/shadow.h
index 124a1ab..366ea83 100644
--- a/include/shadow.h
+++ b/include/shadow.h
@@ -11,16 +11,17 @@ extern int __old_getspent_r (struct spwd *__result_buf, char *__buffer,
 			     size_t __buflen, struct spwd **__result);
 extern int __getspnam_r (const char *__name, struct spwd *__result_buf,
 			 char *__buffer, size_t __buflen,
-			 struct spwd **__result);
+			 struct spwd **__result) attribute_hidden;
 extern int __old_getspnam_r (const char *__name, struct spwd *__result_buf,
 			     char *__buffer, size_t __buflen,
 			     struct spwd **__result);
 extern int __sgetspent_r (const char *__string,
 			  struct spwd *__result_buf, char *__buffer,
-			  size_t __buflen, struct spwd **__result);
+			  size_t __buflen, struct spwd **__result)
+     attribute_hidden;
 extern int __fgetspent_r (FILE *__stream, struct spwd *__result_buf,
 			  char *__buffer, size_t __buflen,
-			  struct spwd **__result);
+			  struct spwd **__result) attribute_hidden;
 extern int __lckpwdf (void);
 extern int __ulckpwdf (void);
 

http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=7ec4b39ac484ba65e011dde4e8ff0b7f478efc7c

commit 7ec4b39ac484ba65e011dde4e8ff0b7f478efc7c
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Oct 1 15:11:40 2017 -0700

    Mark internal unistd functions with attribute_hidden [BZ #18822]
    
    Mark internal unistd functions with attribute_hidden to allow direct
    access to them within libc.so and libc.a without using GOT nor PLT.
    
    	[BZ #18822]
    	* include/unistd.h (__access): Add attribute_hidden.
    	(__lseek64): Likewise.
    	(__libc_pread64): Likewise.
    	(__pipe2): Likewise.
    	(__sleep): Likewise.
    	(__chdir): Likewise.
    	(__fchdir): Likewise.
    	(__getcwd): Likewise.
    	(__rmdir): Likewise.
    	(__execvpe): Likewise.
    	(__execve): Likewise.
    	(__setsid): Likewise.
    	(__getuid): Likewise.
    	(__geteuid): Likewise.
    	(__getgid): Likewise.
    	(__getegid): Likewise.
    	(__getgroups): Likewise.
    	(__group_member): Likewise.
    	(__ttyname_r): Likewise.
    	(__isatty): Likewise.
    	(__readlink): Likewise.
    	(__unlink): Likewise.
    	(__gethostname): Likewise.
    	(__profil): Likewise.
    	(__getdtablesize): Likewise.
    	(__brk): Likewise.
    	(__ftruncate): Likewise.
    	(__ftruncate64): Likewise.

diff --git a/ChangeLog b/ChangeLog
index a877d9c..1c2b7e9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,38 @@
 2017-10-01  H.J. Lu  <hongjiu.lu@intel.com>
 
 	[BZ #18822]
+	* include/unistd.h (__access): Add attribute_hidden.
+	(__lseek64): Likewise.
+	(__libc_pread64): Likewise.
+	(__pipe2): Likewise.
+	(__sleep): Likewise.
+	(__chdir): Likewise.
+	(__fchdir): Likewise.
+	(__getcwd): Likewise.
+	(__rmdir): Likewise.
+	(__execvpe): Likewise.
+	(__execve): Likewise.
+	(__setsid): Likewise.
+	(__getuid): Likewise.
+	(__geteuid): Likewise.
+	(__getgid): Likewise.
+	(__getegid): Likewise.
+	(__getgroups): Likewise.
+	(__group_member): Likewise.
+	(__ttyname_r): Likewise.
+	(__isatty): Likewise.
+	(__readlink): Likewise.
+	(__unlink): Likewise.
+	(__gethostname): Likewise.
+	(__profil): Likewise.
+	(__getdtablesize): Likewise.
+	(__brk): Likewise.
+	(__ftruncate): Likewise.
+	(__ftruncate64): Likewise.
+
+2017-10-01  H.J. Lu  <hongjiu.lu@intel.com>
+
+	[BZ #18822]
 	* argp/argp-fmtstream.c: Include <argp-fmtstream.h>.
 	* argp/argp-fs-xinl.c: Likewise.
 	* argp/argp-help.c: Include <argp.h> and <argp-fmtstream.h>.
diff --git a/include/unistd.h b/include/unistd.h
index bfe0e4d..f884fda 100644
--- a/include/unistd.h
+++ b/include/unistd.h
@@ -23,9 +23,10 @@ libc_hidden_proto (tcgetpgrp)
 libc_hidden_proto (readlinkat)
 
 /* Now define the internal interfaces.  */
-extern int __access (const char *__name, int __type);
+extern int __access (const char *__name, int __type) attribute_hidden;
 extern int __euidaccess (const char *__name, int __type);
-extern __off64_t __lseek64 (int __fd, __off64_t __offset, int __whence);
+extern __off64_t __lseek64 (int __fd, __off64_t __offset, int __whence)
+     attribute_hidden;
 extern __off_t __lseek (int __fd, __off_t __offset, int __whence);
 libc_hidden_proto (__lseek)
 extern __off_t __libc_lseek (int __fd, __off_t __offset, int __whence);
@@ -39,7 +40,7 @@ extern ssize_t __pread64 (int __fd, void *__buf, size_t __nbytes,
 			  __off64_t __offset);
 libc_hidden_proto (__pread64);
 extern ssize_t __libc_pread64 (int __fd, void *__buf, size_t __nbytes,
-			       __off64_t __offset);
+			       __off64_t __offset) attribute_hidden;
 extern ssize_t __pwrite (int __fd, const void *__buf, size_t __n,
 			 __off_t __offset);
 libc_hidden_proto (__pwrite)
@@ -58,8 +59,8 @@ libc_hidden_proto (__libc_write)
 libc_hidden_proto (write)
 extern int __pipe (int __pipedes[2]);
 libc_hidden_proto (__pipe)
-extern int __pipe2 (int __pipedes[2], int __flags);
-extern unsigned int __sleep (unsigned int __seconds);
+extern int __pipe2 (int __pipedes[2], int __flags) attribute_hidden;
+extern unsigned int __sleep (unsigned int __seconds) attribute_hidden;
 extern int __chown (const char *__file,
 		    __uid_t __owner, __gid_t __group);
 libc_hidden_proto (__chown)
@@ -67,12 +68,12 @@ extern int __fchown (int __fd,
 		     __uid_t __owner, __gid_t __group);
 extern int __lchown (const char *__file, __uid_t __owner,
 		     __gid_t __group);
-extern int __chdir (const char *__path);
-extern int __fchdir (int __fd);
-extern char *__getcwd (char *__buf, size_t __size);
-extern int __rmdir (const char *__path);
+extern int __chdir (const char *__path) attribute_hidden;
+extern int __fchdir (int __fd) attribute_hidden;
+extern char *__getcwd (char *__buf, size_t __size) attribute_hidden;
+extern int __rmdir (const char *__path) attribute_hidden;
 extern int __execvpe (const char *file, char *const argv[],
-		      char *const envp[]);
+		      char *const envp[]) attribute_hidden;
 
 /* Get the canonical absolute name of the named directory, and put it in SIZE
    bytes of BUF.  Returns NULL if the directory couldn't be determined or
@@ -91,7 +92,7 @@ libc_hidden_proto (__dup2)
 extern int __dup3 (int __fd, int __fd2, int flags);
 libc_hidden_proto (__dup3)
 extern int __execve (const char *__path, char *const __argv[],
-		     char *const __envp[]);
+		     char *const __envp[]) attribute_hidden;
 extern long int __pathconf (const char *__path, int __name);
 extern long int __fpathconf (int __fd, int __name);
 extern long int __sysconf (int __name);
@@ -99,14 +100,14 @@ libc_hidden_proto (__sysconf)
 extern __pid_t __getpid (void);
 libc_hidden_proto (__getpid)
 extern __pid_t __getppid (void);
-extern __pid_t __setsid (void);
-extern __uid_t __getuid (void);
-extern __uid_t __geteuid (void);
-extern __gid_t __getgid (void);
-extern __gid_t __getegid (void);
-extern int __getgroups (int __size, __gid_t __list[]);
+extern __pid_t __setsid (void) attribute_hidden;
+extern __uid_t __getuid (void) attribute_hidden;
+extern __uid_t __geteuid (void) attribute_hidden;
+extern __gid_t __getgid (void) attribute_hidden;
+extern __gid_t __getegid (void) attribute_hidden;
+extern int __getgroups (int __size, __gid_t __list[]) attribute_hidden;
 libc_hidden_proto (__getpgid)
-extern int __group_member (__gid_t __gid);
+extern int __group_member (__gid_t __gid) attribute_hidden;
 extern int __setuid (__uid_t __uid);
 extern int __setreuid (__uid_t __ruid, __uid_t __euid);
 extern int __setgid (__gid_t __gid);
@@ -123,18 +124,21 @@ libc_hidden_proto (__setresuid)
 libc_hidden_proto (__setresgid)
 extern __pid_t __vfork (void);
 libc_hidden_proto (__vfork)
-extern int __ttyname_r (int __fd, char *__buf, size_t __buflen);
-extern int __isatty (int __fd);
+extern int __ttyname_r (int __fd, char *__buf, size_t __buflen)
+     attribute_hidden;
+extern int __isatty (int __fd) attribute_hidden;
 extern int __link (const char *__from, const char *__to);
 extern int __symlink (const char *__from, const char *__to);
-extern ssize_t __readlink (const char *__path, char *__buf, size_t __len);
-extern int __unlink (const char *__name);
-extern int __gethostname (char *__name, size_t __len);
+extern ssize_t __readlink (const char *__path, char *__buf, size_t __len)
+     attribute_hidden;
+extern int __unlink (const char *__name) attribute_hidden;
+extern int __gethostname (char *__name, size_t __len) attribute_hidden;
 extern int __revoke (const char *__file);
 extern int __profil (unsigned short int *__sample_buffer, size_t __size,
-		     size_t __offset, unsigned int __scale);
-extern int __getdtablesize (void);
-extern int __brk (void *__addr);
+		     size_t __offset, unsigned int __scale)
+     attribute_hidden;
+extern int __getdtablesize (void) attribute_hidden;
+extern int __brk (void *__addr) attribute_hidden;
 extern int __close (int __fd);
 libc_hidden_proto (__close)
 extern int __libc_close (int __fd);
@@ -146,8 +150,8 @@ extern __pid_t __fork (void);
 libc_hidden_proto (__fork)
 extern int __getpagesize (void) __attribute__ ((__const__));
 libc_hidden_proto (__getpagesize)
-extern int __ftruncate (int __fd, __off_t __length);
-extern int __ftruncate64 (int __fd, __off64_t __length);
+extern int __ftruncate (int __fd, __off_t __length) attribute_hidden;
+extern int __ftruncate64 (int __fd, __off64_t __length) attribute_hidden;
 extern int __truncate (const char *path, __off_t __length);
 extern void *__sbrk (intptr_t __delta);
 libc_hidden_proto (__sbrk)

http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=8345a76018851ba52e05216e3d7c772e24d5da44

commit 8345a76018851ba52e05216e3d7c772e24d5da44
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Oct 1 15:10:12 2017 -0700

    Mark internal argp functions with attribute_hidden [BZ #18822]
    
    Mark internal argp functions with attribute_hidden to allow direct
    access to them within libc.so and libc.a without using GOT nor PLT.
    
    	[BZ #18822]
    	* argp/argp-fmtstream.c: Include <argp-fmtstream.h>.
    	* argp/argp-fs-xinl.c: Likewise.
    	* argp/argp-help.c: Include <argp.h> and <argp-fmtstream.h>.
    	* argp/argp-parse.c: Include <argp.h>.
    	* argp/argp-xinl.c: Likewise.
    	* include/argp-fmtstream.h: New file.
    	* include/argp.h (__argp_error): Add attribute_hidden.
    	(__argp_failure): Likewise.
    	(__argp_input): Likewise.
    	(__argp_state_help): Likewise.

diff --git a/ChangeLog b/ChangeLog
index 15c90bc..a877d9c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,20 @@
 2017-10-01  H.J. Lu  <hongjiu.lu@intel.com>
 
 	[BZ #18822]
+	* argp/argp-fmtstream.c: Include <argp-fmtstream.h>.
+	* argp/argp-fs-xinl.c: Likewise.
+	* argp/argp-help.c: Include <argp.h> and <argp-fmtstream.h>.
+	* argp/argp-parse.c: Include <argp.h>.
+	* argp/argp-xinl.c: Likewise.
+	* include/argp-fmtstream.h: New file.
+	* include/argp.h (__argp_error): Add attribute_hidden.
+	(__argp_failure): Likewise.
+	(__argp_input): Likewise.
+	(__argp_state_help): Likewise.
+
+2017-10-01  H.J. Lu  <hongjiu.lu@intel.com>
+
+	[BZ #18822]
 	* include/wchar.h (____wcstof_l_internal): New prototype.
 	(____wcstod_l_internal): Likewise.
 	(____wcstold_l_internal): Likewise.
diff --git a/argp/argp-fmtstream.c b/argp/argp-fmtstream.c
index 9e41708..f12c265 100644
--- a/argp/argp-fmtstream.c
+++ b/argp/argp-fmtstream.c
@@ -30,7 +30,7 @@
 #include <stdarg.h>
 #include <ctype.h>
 
-#include "argp-fmtstream.h"
+#include <argp-fmtstream.h>
 #include "argp-namefrob.h"
 
 #ifndef ARGP_FMTSTREAM_USE_LINEWRAP
diff --git a/argp/argp-fs-xinl.c b/argp/argp-fs-xinl.c
index f0ce509..8ebbb8e 100644
--- a/argp/argp-fs-xinl.c
+++ b/argp/argp-fs-xinl.c
@@ -24,7 +24,7 @@
 #define ARGP_FS_EI
 #undef __OPTIMIZE__
 #define __OPTIMIZE__ 1
-#include "argp-fmtstream.h"
+#include <argp-fmtstream.h>
 
 #if 0
 /* Not exported.  */
diff --git a/argp/argp-help.c b/argp/argp-help.c
index e704c5a..821d98c 100644
--- a/argp/argp-help.c
+++ b/argp/argp-help.c
@@ -79,8 +79,8 @@ char *strerror (int errnum);
 # endif
 #endif
 
-#include "argp.h"
-#include "argp-fmtstream.h"
+#include <argp.h>
+#include <argp-fmtstream.h>
 #include "argp-namefrob.h"
 
 #ifndef SIZE_MAX
diff --git a/argp/argp-parse.c b/argp/argp-parse.c
index 662eed3..691c462 100644
--- a/argp/argp-parse.c
+++ b/argp/argp-parse.c
@@ -62,7 +62,7 @@ char *alloca ();
 # define N_(msgid) (msgid)
 #endif
 
-#include "argp.h"
+#include <argp.h>
 #include "argp-namefrob.h"
 
 /* Getopt return values.  */
diff --git a/argp/argp-xinl.c b/argp/argp-xinl.c
index 0b45bdc..206d0e4 100644
--- a/argp/argp-xinl.c
+++ b/argp/argp-xinl.c
@@ -31,7 +31,7 @@
 #define ARGP_EI
 #undef __OPTIMIZE__
 #define __OPTIMIZE__ 1
-#include "argp.h"
+#include <argp.h>
 
 /* Add weak aliases.  */
 #if _LIBC - 0 && defined (weak_alias)
diff --git a/include/argp-fmtstream.h b/include/argp-fmtstream.h
new file mode 100644
index 0000000..45c65ce
--- /dev/null
+++ b/include/argp-fmtstream.h
@@ -0,0 +1,19 @@
+#ifndef _ARGP_FMTSTREAM_H
+#include <argp/argp-fmtstream.h>
+
+#ifndef _ISOMAC
+extern __typeof (__argp_fmtstream_ensure) __argp_fmtstream_ensure
+      attribute_hidden;
+extern __typeof (__argp_fmtstream_free) __argp_fmtstream_free
+      attribute_hidden;
+extern __typeof (__argp_fmtstream_printf) __argp_fmtstream_printf
+      attribute_hidden;
+extern __typeof (__argp_fmtstream_update) __argp_fmtstream_update
+      attribute_hidden;
+extern __typeof (__argp_fmtstream_write) __argp_fmtstream_write
+      attribute_hidden;
+extern __typeof (__argp_make_fmtstream) __argp_make_fmtstream
+      attribute_hidden;
+#endif
+
+#endif
diff --git a/include/argp.h b/include/argp.h
index 92be5f9..6cf8782 100644
--- a/include/argp.h
+++ b/include/argp.h
@@ -1 +1,11 @@
+#ifndef _ARGP_H
 #include <argp/argp.h>
+
+#ifndef _ISOMAC
+extern __typeof (__argp_error) __argp_error attribute_hidden;
+extern __typeof (__argp_failure) __argp_failure attribute_hidden;
+extern __typeof (__argp_input) __argp_input attribute_hidden;
+extern __typeof (__argp_state_help) __argp_state_help attribute_hidden;
+#endif
+
+#endif

http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=c26dd7c600a2192d031efa2a0fb28b1ded85bf1d

commit c26dd7c600a2192d031efa2a0fb28b1ded85bf1d
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Oct 1 15:09:11 2017 -0700

    Mark ____wcsto*_l_internal functions with attribute_hidden [BZ #18822]
    
    Mark ____wcsto*_l_internal functions with attribute_hidden to allow
    direct access to them within libc.so and libc.a without using GOT nor
    PLT.
    
    	[BZ #18822]
    	* include/wchar.h (____wcstof_l_internal): New prototype.
    	(____wcstod_l_internal): Likewise.
    	(____wcstold_l_internal): Likewise.
    	(____wcstol_l_internal): Likewise.
    	(____wcstoul_l_internal): Likewise.
    	(____wcstoll_l_internal): Likewise.
    	(____wcstoull_l_internal): Likewise.
    	(____wcstof128_l_internal): Likewise.
    	* sysdeps/ieee754/float128/wcstof128.c
    	(____wcstof128_l_internal): Removed.
    	* sysdeps/ieee754/float128/wcstof128_l.c
    	(____wcstof128_l_internal): Likewise.
    	* wcsmbs/wcstod.c (____wcstod_l_internal): Likewise.
    	* wcsmbs/wcstod_l.c (____wcstod_l_internal): Likewise.
    	* wcsmbs/wcstof.c (____wcstof_l_internal): Likewise.
    	* wcsmbs/wcstof_l.c (____wcstof_l_internal): Likewise.
    	* wcsmbs/wcstol_l.c (____wcstol_l_internal): Likewise.
    	* wcsmbs/wcstold.c (____wcstold_l_internal): Likewise.
    	* wcsmbs/wcstold_l.c (____wcstold_l_internal): Likewise.
    	* wcsmbs/wcstoll_l.c (____wcstoll_l_internal): Likewise.
    	* wcsmbs/wcstoul_l.c (____wcstoul_l_internal): Likewise.
    	* wcsmbs/wcstoull_l.c (____wcstoull_l_internal): Likewise.

diff --git a/ChangeLog b/ChangeLog
index 7a4e5cf..15c90bc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,32 @@
 2017-10-01  H.J. Lu  <hongjiu.lu@intel.com>
 
 	[BZ #18822]
+	* include/wchar.h (____wcstof_l_internal): New prototype.
+	(____wcstod_l_internal): Likewise.
+	(____wcstold_l_internal): Likewise.
+	(____wcstol_l_internal): Likewise.
+	(____wcstoul_l_internal): Likewise.
+	(____wcstoll_l_internal): Likewise.
+	(____wcstoull_l_internal): Likewise.
+	(____wcstof128_l_internal): Likewise.
+	* sysdeps/ieee754/float128/wcstof128.c
+	(____wcstof128_l_internal): Removed.
+	* sysdeps/ieee754/float128/wcstof128_l.c
+	(____wcstof128_l_internal): Likewise.
+	* wcsmbs/wcstod.c (____wcstod_l_internal): Likewise.
+	* wcsmbs/wcstod_l.c (____wcstod_l_internal): Likewise.
+	* wcsmbs/wcstof.c (____wcstof_l_internal): Likewise.
+	* wcsmbs/wcstof_l.c (____wcstof_l_internal): Likewise.
+	* wcsmbs/wcstol_l.c (____wcstol_l_internal): Likewise.
+	* wcsmbs/wcstold.c (____wcstold_l_internal): Likewise.
+	* wcsmbs/wcstold_l.c (____wcstold_l_internal): Likewise.
+	* wcsmbs/wcstoll_l.c (____wcstoll_l_internal): Likewise.
+	* wcsmbs/wcstoul_l.c (____wcstoul_l_internal): Likewise.
+	* wcsmbs/wcstoull_l.c (____wcstoull_l_internal): Likewise.
+
+2017-10-01  H.J. Lu  <hongjiu.lu@intel.com>
+
+	[BZ #18822]
 	* sysdeps/unix/sysv/linux/fstatvfs.c: Include "internal_statvfs.h"
 	instead of <sys/statvfs.h>.
 	(__internal_statvfs): Removed.
diff --git a/include/wchar.h b/include/wchar.h
index 7bf042c..eb472da 100644
--- a/include/wchar.h
+++ b/include/wchar.h
@@ -70,6 +70,26 @@ libc_hidden_proto (wcstoll)
 libc_hidden_proto (wcstoul)
 libc_hidden_proto (wcstoull)
 
+extern float ____wcstof_l_internal (const wchar_t *, wchar_t **, int,
+				    locale_t) attribute_hidden;
+extern double ____wcstod_l_internal (const wchar_t *, wchar_t **, int,
+				     locale_t) attribute_hidden;
+extern long double ____wcstold_l_internal (const wchar_t *, wchar_t **,
+					   int, locale_t) attribute_hidden;
+extern long int ____wcstol_l_internal (const wchar_t *, wchar_t **, int,
+				       int, locale_t) attribute_hidden;
+extern unsigned long int ____wcstoul_l_internal (const wchar_t *,
+						 wchar_t **,
+						 int, int, locale_t)
+     attribute_hidden;
+extern long long int ____wcstoll_l_internal (const wchar_t *, wchar_t **,
+					     int, int, locale_t)
+     attribute_hidden;
+extern unsigned long long int ____wcstoull_l_internal (const wchar_t *,
+						       wchar_t **, int, int,
+						       locale_t)
+     attribute_hidden;
+
 #if __HAVE_DISTINCT_FLOAT128
 extern __typeof (wcstof128_l) __wcstof128_l;
 libc_hidden_proto (__wcstof128_l)
@@ -77,6 +97,9 @@ extern _Float128 __wcstof128_internal (const wchar_t *__restrict __nptr,
 				       wchar_t **__restrict __endptr,
 				       int __group) __THROW;
 
+extern _Float128 ____wcstof128_l_internal (const wchar_t *, wchar_t **, int,
+					   locale_t) attribute_hidden;
+
 libc_hidden_proto (__wcstof128_internal)
 libc_hidden_proto (wcstof128)
 #endif
diff --git a/sysdeps/ieee754/float128/wcstof128.c b/sysdeps/ieee754/float128/wcstof128.c
index 49aa4d6..bab8c24 100644
--- a/sysdeps/ieee754/float128/wcstof128.c
+++ b/sysdeps/ieee754/float128/wcstof128.c
@@ -24,7 +24,4 @@
 /* Bring in _Float128 typedef if needed.  */
 #include <bits/floatn.h>
 
-extern _Float128 ____wcstof128_l_internal (const wchar_t *, wchar_t **, int,
-					   locale_t);
-
 #include "strtof128.c"
diff --git a/sysdeps/ieee754/float128/wcstof128_l.c b/sysdeps/ieee754/float128/wcstof128_l.c
index b295087..33fcccd 100644
--- a/sysdeps/ieee754/float128/wcstof128_l.c
+++ b/sysdeps/ieee754/float128/wcstof128_l.c
@@ -24,7 +24,4 @@
 
 #include <bits/floatn.h>
 
-extern _Float128 ____wcstof128_l_internal (const wchar_t *, wchar_t **, int,
-					   locale_t);
-
 #include "strtof128_l.c"
diff --git a/wcsmbs/wcstod.c b/wcsmbs/wcstod.c
index 4604f51..4c6343c 100644
--- a/wcsmbs/wcstod.c
+++ b/wcsmbs/wcstod.c
@@ -22,7 +22,4 @@
 
 #define	USE_WIDE_CHAR	1
 
-extern double ____wcstod_l_internal (const wchar_t *, wchar_t **, int,
-				     locale_t);
-
 #include <stdlib/strtod.c>
diff --git a/wcsmbs/wcstod_l.c b/wcsmbs/wcstod_l.c
index 7790f5a..25effe9 100644
--- a/wcsmbs/wcstod_l.c
+++ b/wcsmbs/wcstod_l.c
@@ -21,9 +21,6 @@
 #include <locale.h>
 
 
-extern double ____wcstod_l_internal (const wchar_t *, wchar_t **, int,
-				     locale_t);
-
 #define	USE_WIDE_CHAR	1
 
 #include <stdlib/strtod_l.c>
diff --git a/wcsmbs/wcstof.c b/wcsmbs/wcstof.c
index e91c09c..1f91ab5 100644
--- a/wcsmbs/wcstof.c
+++ b/wcsmbs/wcstof.c
@@ -21,7 +21,4 @@
 
 #define	USE_WIDE_CHAR	1
 
-extern float ____wcstof_l_internal (const wchar_t *, wchar_t **, int,
-				    locale_t);
-
 #include <stdlib/strtof.c>
diff --git a/wcsmbs/wcstof_l.c b/wcsmbs/wcstof_l.c
index 143b716..8b99b69 100644
--- a/wcsmbs/wcstof_l.c
+++ b/wcsmbs/wcstof_l.c
@@ -23,7 +23,4 @@
 
 #define	USE_WIDE_CHAR	1
 
-extern float ____wcstof_l_internal (const wchar_t *, wchar_t **, int,
-				    locale_t);
-
 #include <stdlib/strtof_l.c>
diff --git a/wcsmbs/wcstol_l.c b/wcsmbs/wcstol_l.c
index 42bd842..36eaf56 100644
--- a/wcsmbs/wcstol_l.c
+++ b/wcsmbs/wcstol_l.c
@@ -23,7 +23,4 @@
 
 #define	USE_WIDE_CHAR	1
 
-extern long int ____wcstol_l_internal (const wchar_t *, wchar_t **, int, int,
-				       locale_t);
-
 #include <stdlib/strtol_l.c>
diff --git a/wcsmbs/wcstold.c b/wcsmbs/wcstold.c
index 7a14cd2..481fcc4 100644
--- a/wcsmbs/wcstold.c
+++ b/wcsmbs/wcstold.c
@@ -21,7 +21,4 @@
 
 #define USE_WIDE_CHAR	1
 
-extern long double ____wcstold_l_internal (const wchar_t *, wchar_t **, int,
-					   locale_t);
-
 #include <stdlib/strtold.c>
diff --git a/wcsmbs/wcstold_l.c b/wcsmbs/wcstold_l.c
index a7ab025..8192620 100644
--- a/wcsmbs/wcstold_l.c
+++ b/wcsmbs/wcstold_l.c
@@ -22,7 +22,4 @@
 
 #define USE_WIDE_CHAR	1
 
-extern long double ____wcstold_l_internal (const wchar_t *, wchar_t **, int,
-					   locale_t);
-
 #include <strtold_l.c>
diff --git a/wcsmbs/wcstoll_l.c b/wcsmbs/wcstoll_l.c
index 598d3f5..4a71282 100644
--- a/wcsmbs/wcstoll_l.c
+++ b/wcsmbs/wcstoll_l.c
@@ -23,7 +23,4 @@
 
 #define QUAD	1
 
-extern long long int ____wcstoll_l_internal (const wchar_t *, wchar_t **,
-					     int, int, locale_t);
-
 #include <wcstol_l.c>
diff --git a/wcsmbs/wcstoul_l.c b/wcsmbs/wcstoul_l.c
index f9f3808..1a345d4 100644
--- a/wcsmbs/wcstoul_l.c
+++ b/wcsmbs/wcstoul_l.c
@@ -23,7 +23,4 @@
 
 #define UNSIGNED	1
 
-extern unsigned long int ____wcstoul_l_internal (const wchar_t *, wchar_t **,
-						 int, int, locale_t);
-
 #include "wcstol_l.c"
diff --git a/wcsmbs/wcstoull_l.c b/wcsmbs/wcstoull_l.c
index 412a9fc..1666d50 100644
--- a/wcsmbs/wcstoull_l.c
+++ b/wcsmbs/wcstoull_l.c
@@ -23,8 +23,4 @@
 
 #define UNSIGNED	1
 
-extern unsigned long long int ____wcstoull_l_internal (const wchar_t *,
-						       wchar_t **, int, int,
-						       locale_t);
-
 #include <wcstoll_l.c>

http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=3aff56444e96300fba1e2c25bd0b2545613a20fa

commit 3aff56444e96300fba1e2c25bd0b2545613a20fa
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Oct 1 15:08:14 2017 -0700

    Mark __internal_statvfs[64] with attribute_hidden [BZ #18822]
    
    Mark __internal_statvfs[64] with attribute_hidden to allow direct access
    to them within libc.so and libc.a without using GOT nor PLT.
    
    	[BZ #18822]
    	* sysdeps/unix/sysv/linux/fstatvfs.c: Include "internal_statvfs.h"
    	instead of <sys/statvfs.h>.
    	(__internal_statvfs): Removed.
    	* sysdeps/unix/sysv/linux/fstatvfs64.c Include "internal_statvfs.h"
    	instead of <sys/statvfs.h>.
    	(__internal_statvfs64): Removed.
    	* sysdeps/unix/sysv/linux/internal_statvfs.c: Include
    	"internal_statvfs.h" instead of <sys/statvfs.h>.
    	* sysdeps/unix/sysv/linux/internal_statvfs.h: New file.
    	* sysdeps/unix/sysv/linux/statvfs.c Include "internal_statvfs.h"
    	instead of <sys/statvfs.h>.
    	(__internal_statvfs): Removed.
    	* sysdeps/unix/sysv/linux/statvfs64.c Include "internal_statvfs.h"
    	instead of <sys/statvfs.h>.
    	(__internal_statvfs64): Removed.

diff --git a/ChangeLog b/ChangeLog
index f0935d1..7a4e5cf 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,25 @@
 2017-10-01  H.J. Lu  <hongjiu.lu@intel.com>
 
 	[BZ #18822]
+	* sysdeps/unix/sysv/linux/fstatvfs.c: Include "internal_statvfs.h"
+	instead of <sys/statvfs.h>.
+	(__internal_statvfs): Removed.
+	* sysdeps/unix/sysv/linux/fstatvfs64.c Include "internal_statvfs.h"
+	instead of <sys/statvfs.h>.
+	(__internal_statvfs64): Removed.
+	* sysdeps/unix/sysv/linux/internal_statvfs.c: Include
+	"internal_statvfs.h" instead of <sys/statvfs.h>.
+	* sysdeps/unix/sysv/linux/internal_statvfs.h: New file.
+	* sysdeps/unix/sysv/linux/statvfs.c Include "internal_statvfs.h"
+	instead of <sys/statvfs.h>.
+	(__internal_statvfs): Removed.
+	* sysdeps/unix/sysv/linux/statvfs64.c Include "internal_statvfs.h"
+	instead of <sys/statvfs.h>.
+	(__internal_statvfs64): Removed.
+
+2017-10-01  H.J. Lu  <hongjiu.lu@intel.com>
+
+	[BZ #18822]
 	* iconv/gconv_int.h (__gconv_open): Add attribute_hidden.
 	(__gconv_close): Likewise.
 	(__gconv): Likewise.
diff --git a/sysdeps/unix/sysv/linux/fstatvfs.c b/sysdeps/unix/sysv/linux/fstatvfs.c
index e07a5b9..1b2f279 100644
--- a/sysdeps/unix/sysv/linux/fstatvfs.c
+++ b/sysdeps/unix/sysv/linux/fstatvfs.c
@@ -19,11 +19,7 @@
 #include <stddef.h>
 #include <sys/stat.h>
 #include <sys/statfs.h>
-#include <sys/statvfs.h>
-
-extern void __internal_statvfs (const char *name, struct statvfs *buf,
-				struct statfs *fsbuf, int fd);
-
+#include "internal_statvfs.h"
 
 int
 __fstatvfs (int fd, struct statvfs *buf)
diff --git a/sysdeps/unix/sysv/linux/fstatvfs64.c b/sysdeps/unix/sysv/linux/fstatvfs64.c
index 02a0d7e..c923208 100644
--- a/sysdeps/unix/sysv/linux/fstatvfs64.c
+++ b/sysdeps/unix/sysv/linux/fstatvfs64.c
@@ -20,14 +20,9 @@
 #include <string.h>
 #include <sys/stat.h>
 #include <sys/statfs.h>
-#include <sys/statvfs.h>
+#include "internal_statvfs.h"
 #include <kernel-features.h>
 
-
-extern void __internal_statvfs64 (const char *name, struct statvfs64 *buf,
-				  struct statfs64 *fsbuf, int fd);
-
-
 /* Return information about the filesystem on which FD resides.  */
 int
 __fstatvfs64 (int fd, struct statvfs64 *buf)
diff --git a/sysdeps/unix/sysv/linux/internal_statvfs.c b/sysdeps/unix/sysv/linux/internal_statvfs.c
index 9a17ca5..0a8dc35 100644
--- a/sysdeps/unix/sysv/linux/internal_statvfs.c
+++ b/sysdeps/unix/sysv/linux/internal_statvfs.c
@@ -26,7 +26,7 @@
 #include <sys/mount.h>
 #include <sys/stat.h>
 #include <sys/statfs.h>
-#include <sys/statvfs.h>
+#include "internal_statvfs.h"
 #include "linux_fsinfo.h"
 #include <kernel-features.h>
 
diff --git a/sysdeps/unix/sysv/linux/fstatvfs.c b/sysdeps/unix/sysv/linux/internal_statvfs.h
similarity index 57%
copy from sysdeps/unix/sysv/linux/fstatvfs.c
copy to sysdeps/unix/sysv/linux/internal_statvfs.h
index e07a5b9..1762bbc 100644
--- a/sysdeps/unix/sysv/linux/fstatvfs.c
+++ b/sysdeps/unix/sysv/linux/internal_statvfs.h
@@ -1,6 +1,6 @@
-/* Copyright (C) 1998-2017 Free Software Foundation, Inc.
+/* Internal statvfs/statvfs64 function prototypes.
+   Copyright (C) 2017 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
 
    The GNU C Library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Lesser General Public
@@ -16,29 +16,11 @@
    License along with the GNU C Library; if not, see
    <http://www.gnu.org/licenses/>.  */
 
-#include <stddef.h>
-#include <sys/stat.h>
-#include <sys/statfs.h>
 #include <sys/statvfs.h>
 
 extern void __internal_statvfs (const char *name, struct statvfs *buf,
-				struct statfs *fsbuf, int fd);
-
-
-int
-__fstatvfs (int fd, struct statvfs *buf)
-{
-  struct statfs fsbuf;
-
-  /* Get as much information as possible from the system.  */
-  if (__fstatfs (fd, &fsbuf) < 0)
-    return -1;
-
-  /* Convert the result.  */
-  __internal_statvfs (NULL, buf, &fsbuf, fd);
-
-  /* We signal success if the statfs call succeeded.  */
-  return 0;
-}
-weak_alias (__fstatvfs, fstatvfs)
-libc_hidden_weak (fstatvfs)
+				struct statfs *fsbuf, int fd)
+      attribute_hidden;
+extern void __internal_statvfs64 (const char *name, struct statvfs64 *buf,
+				  struct statfs64 *fsbuf, int fd)
+      attribute_hidden;
diff --git a/sysdeps/unix/sysv/linux/statvfs.c b/sysdeps/unix/sysv/linux/statvfs.c
index 744336e..1edf1ac 100644
--- a/sysdeps/unix/sysv/linux/statvfs.c
+++ b/sysdeps/unix/sysv/linux/statvfs.c
@@ -19,11 +19,7 @@
 #include <stddef.h>
 #include <sys/stat.h>
 #include <sys/statfs.h>
-#include <sys/statvfs.h>
-
-extern void __internal_statvfs (const char *name, struct statvfs *buf,
-				struct statfs *fsbuf, int fd);
-
+#include "internal_statvfs.h"
 
 int
 __statvfs (const char *file, struct statvfs *buf)
diff --git a/sysdeps/unix/sysv/linux/statvfs64.c b/sysdeps/unix/sysv/linux/statvfs64.c
index a89f720..005495f 100644
--- a/sysdeps/unix/sysv/linux/statvfs64.c
+++ b/sysdeps/unix/sysv/linux/statvfs64.c
@@ -21,14 +21,9 @@
 #include <string.h>
 #include <sys/stat.h>
 #include <sys/statfs.h>
-#include <sys/statvfs.h>
+#include "internal_statvfs.h"
 #include <kernel-features.h>
 
-
-extern void __internal_statvfs64 (const char *name, struct statvfs64 *buf,
-				  struct statfs64 *fsbuf, int fd);
-
-
 /* Return information about the filesystem on which FILE resides.  */
 int
 __statvfs64 (const char *file, struct statvfs64 *buf)

http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=8bcdb7e0c5346d2e9d61b208d80fd8213e1dbd90

commit 8bcdb7e0c5346d2e9d61b208d80fd8213e1dbd90
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Oct 1 15:07:06 2017 -0700

    Mark internal functions with attribute_hidden [BZ #18822]
    
    Mark internal functions with attribute_hidden to allow direct access to
    internal functions within libc.so and libc.a without using GOT nor PLT.
    
    Size comparison of libc.so:
    
    On x86-64:
            text	   data	    bss	    dec	    hex
    Before: 1728577	  20584	  17088	1766249	 1af369
    After : 1728593	  20584	  17088	1766265	 1af379
    
    The only change is __gconv_release_shlib in iconv/gconv_dl.c is inlined
    since it is hidden, which increases the code size of gconv_dl.os by 18
    bytes.
    
    On i686:
            text	   data	    bss	    dec	    hex
    Before: 1869039	  11444	  11112	1891595	 1cdd0b
    After : 1868635	  11444	  11112	1891191	 1cdb77
    
    The code size is decreased by avoiding GOT/PLT for hidden functions.
    
    	[BZ #18822]
    	* iconv/gconv_int.h (__gconv_open): Add attribute_hidden.
    	(__gconv_close): Likewise.
    	(__gconv): Likewise.
    	(__gconv_find_transform): Likewise.
    	(__gconv_lookup_cache): Likewise.
    	(__gconv_compare_alias_cache): Likewise.
    	(__gconv_load_cache): Likewise.
    	(__gconv_get_path): Likewise.
    	(__gconv_close_transform): Likewise.
    	(__gconv_release_cache): Likewise.
    	(__gconv_find_shlib): Likewise.
    	(__gconv_release_shlib): Likewise.
    	(__gconv_get_builtin_trans): Likewise.
    	(__gconv_compare_alias): Likewise.
    	* include/dlfcn.h (_dlerror_run): Likewise.
    	* include/stdio.h (__fortify_fail_abort): Likewise.
    	* include/time.h (__tz_compute): Likewise.
    	(__strptime_internal): Likewise.
    	* intl/gettextP.h (_nl_find_domain): Likewise.
    	(_nl_load_domain): Likewise.
    	(_nl_find_msg): Likewise.
    	* intl/plural-exp.h (FREE_EXPRESSION): Likewise.
    	(EXTRACT_PLURAL_EXPRESSION): Likewise.
    	* locale/coll-lookup.h (__collidx_table_lookup): Likewise.
    	* resolv/gai_misc.h (__gai_enqueue_request): Likewise.
    	(__gai_find_request): Likewise.
    	(__gai_remove_request): Likewise.
    	(__gai_notify): Likewise.
    	(__gai_notify_only): Likewise.
    	* sysdeps/generic/aio_misc.h (__aio_sigqueue): Likewise.
    	* sysdeps/generic/ldsodefs.h (_dl_fini): Likewise.
    	(_dl_non_dynamic_init): Likewise.
    	(_dl_aux_init): Likewise.
    	* sysdeps/i386/machine-gmon.h (mcount_internal): Likewise.
    	* sysdeps/unix/sysv/linux/i386/olddirent.h (__old_getdents64):
    	Likewise.
    	* wcsmbs/wcsmbsload.h (__wcsmbs_load_conv): Likewise.
    	(__wcsmbs_clone_conv): Likewise.
    	(__wcsmbs_named_conv): Likewise.

diff --git a/ChangeLog b/ChangeLog
index e940586..f0935d1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,49 @@
 2017-10-01  H.J. Lu  <hongjiu.lu@intel.com>
 
 	[BZ #18822]
+	* iconv/gconv_int.h (__gconv_open): Add attribute_hidden.
+	(__gconv_close): Likewise.
+	(__gconv): Likewise.
+	(__gconv_find_transform): Likewise.
+	(__gconv_lookup_cache): Likewise.
+	(__gconv_compare_alias_cache): Likewise.
+	(__gconv_load_cache): Likewise.
+	(__gconv_get_path): Likewise.
+	(__gconv_close_transform): Likewise.
+	(__gconv_release_cache): Likewise.
+	(__gconv_find_shlib): Likewise.
+	(__gconv_release_shlib): Likewise.
+	(__gconv_get_builtin_trans): Likewise.
+	(__gconv_compare_alias): Likewise.
+	* include/dlfcn.h (_dlerror_run): Likewise.
+	* include/stdio.h (__fortify_fail_abort): Likewise.
+	* include/time.h (__tz_compute): Likewise.
+	(__strptime_internal): Likewise.
+	* intl/gettextP.h (_nl_find_domain): Likewise.
+	(_nl_load_domain): Likewise.
+	(_nl_find_msg): Likewise.
+	* intl/plural-exp.h (FREE_EXPRESSION): Likewise.
+	(EXTRACT_PLURAL_EXPRESSION): Likewise.
+	* locale/coll-lookup.h (__collidx_table_lookup): Likewise.
+	* resolv/gai_misc.h (__gai_enqueue_request): Likewise.
+	(__gai_find_request): Likewise.
+	(__gai_remove_request): Likewise.
+	(__gai_notify): Likewise.
+	(__gai_notify_only): Likewise.
+	* sysdeps/generic/aio_misc.h (__aio_sigqueue): Likewise.
+	* sysdeps/generic/ldsodefs.h (_dl_fini): Likewise.
+	(_dl_non_dynamic_init): Likewise.
+	(_dl_aux_init): Likewise.
+	* sysdeps/i386/machine-gmon.h (mcount_internal): Likewise.
+	* sysdeps/unix/sysv/linux/i386/olddirent.h (__old_getdents64):
+	Likewise.
+	* wcsmbs/wcsmbsload.h (__wcsmbs_load_conv): Likewise.
+	(__wcsmbs_clone_conv): Likewise.
+	(__wcsmbs_named_conv): Likewise.
+
+2017-10-01  H.J. Lu  <hongjiu.lu@intel.com>
+
+	[BZ #18822]
 	* include/stdlib.h (__random): Add attribute_hidden.
 	(__random_r): Likewise.
 	(__srandom_r): Likewise.
diff --git a/iconv/gconv_int.h b/iconv/gconv_int.h
index b1433f8..2afd12a 100644
--- a/iconv/gconv_int.h
+++ b/iconv/gconv_int.h
@@ -156,10 +156,12 @@ __libc_lock_define (extern, __gconv_lock attribute_hidden)
 
 /* Return in *HANDLE decriptor for transformation from FROMSET to TOSET.  */
 extern int __gconv_open (const char *toset, const char *fromset,
-			 __gconv_t *handle, int flags);
+			 __gconv_t *handle, int flags)
+     attribute_hidden;
 
 /* Free resources associated with transformation descriptor CD.  */
-extern int __gconv_close (__gconv_t cd);
+extern int __gconv_close (__gconv_t cd)
+     attribute_hidden;
 
 /* Transform at most *INBYTESLEFT bytes from buffer starting at *INBUF
    according to rules described by CD and place up to *OUTBYTESLEFT
@@ -167,33 +169,38 @@ extern int __gconv_close (__gconv_t cd);
    conversions in *IRREVERSIBLE if this pointer is not null.  */
 extern int __gconv (__gconv_t cd, const unsigned char **inbuf,
 		    const unsigned char *inbufend, unsigned char **outbuf,
-		    unsigned char *outbufend, size_t *irreversible);
+		    unsigned char *outbufend, size_t *irreversible)
+     attribute_hidden;
 
 /* Return in *HANDLE a pointer to an array with *NSTEPS elements describing
    the single steps necessary for transformation from FROMSET to TOSET.  */
 extern int __gconv_find_transform (const char *toset, const char *fromset,
 				   struct __gconv_step **handle,
-				   size_t *nsteps, int flags);
+				   size_t *nsteps, int flags)
+     attribute_hidden;
 
 /* Search for transformation in cache data.  */
 extern int __gconv_lookup_cache (const char *toset, const char *fromset,
 				 struct __gconv_step **handle, size_t *nsteps,
-				 int flags);
+				 int flags)
+     attribute_hidden;
 
 /* Compare the two name for whether they are after alias expansion the
    same.  This function uses the cache and fails if none is
    loaded.  */
 extern int __gconv_compare_alias_cache (const char *name1, const char *name2,
-					int *result);
+					int *result)
+     attribute_hidden;
 
 /* Free data associated with a step's structure.  */
-extern void __gconv_release_step (struct __gconv_step *step);
+extern void __gconv_release_step (struct __gconv_step *step)
+     attribute_hidden;
 
 /* Read all the configuration data and cache it.  */
 extern void __gconv_read_conf (void) attribute_hidden;
 
 /* Try to read module cache file.  */
-extern int __gconv_load_cache (void);
+extern int __gconv_load_cache (void) attribute_hidden;
 
 /* Retrieve pointer to internal cache.  */
 extern void *__gconv_get_cache (void);
@@ -205,7 +212,7 @@ extern struct gconv_module *__gconv_get_modules_db (void);
 extern void *__gconv_get_alias_db (void);
 
 /* Determine the directories we are looking in.  */
-extern void __gconv_get_path (void);
+extern void __gconv_get_path (void) attribute_hidden;
 
 /* Comparison function to search alias.  */
 extern int __gconv_alias_compare (const void *p1, const void *p2)
@@ -214,28 +221,34 @@ extern int __gconv_alias_compare (const void *p1, const void *p2)
 /* Clear reference to transformation step implementations which might
    cause the code to be unloaded.  */
 extern int __gconv_close_transform (struct __gconv_step *steps,
-				    size_t nsteps);
+				    size_t nsteps)
+     attribute_hidden;
 
 /* Free all resources allocated for the transformation record when
    using the cache.  */
-extern void __gconv_release_cache (struct __gconv_step *steps, size_t nsteps);
+extern void __gconv_release_cache (struct __gconv_step *steps, size_t nsteps)
+     attribute_hidden;
 
 /* Load shared object named by NAME.  If already loaded increment reference
    count.  */
-extern struct __gconv_loaded_object *__gconv_find_shlib (const char *name);
+extern struct __gconv_loaded_object *__gconv_find_shlib (const char *name)
+     attribute_hidden;
 
 /* Release shared object.  If no further reference is available unload
    the object.  */
-extern void __gconv_release_shlib (struct __gconv_loaded_object *handle);
+extern void __gconv_release_shlib (struct __gconv_loaded_object *handle)
+     attribute_hidden;
 
 /* Fill STEP with information about builtin module with NAME.  */
 extern void __gconv_get_builtin_trans (const char *name,
-				       struct __gconv_step *step);
+				       struct __gconv_step *step)
+     attribute_hidden;
 
 libc_hidden_proto (__gconv_transliterate)
 
 /* If NAME is an codeset alias expand it.  */
-extern int __gconv_compare_alias (const char *name1, const char *name2);
+extern int __gconv_compare_alias (const char *name1, const char *name2)
+     attribute_hidden;
 
 
 /* Builtin transformations.  */
diff --git a/include/dlfcn.h b/include/dlfcn.h
index 888e84d..526086f 100644
--- a/include/dlfcn.h
+++ b/include/dlfcn.h
@@ -72,7 +72,8 @@ extern void *_dl_vsym (void *handle, const char *name, const char *version,
    _dl_catch_error.  Returns zero for success, nonzero for failure; and
    arranges for `dlerror' to return the error details.
    ARGS is passed as argument to OPERATE.  */
-extern int _dlerror_run (void (*operate) (void *), void *args);
+extern int _dlerror_run (void (*operate) (void *), void *args)
+    attribute_hidden;
 
 #ifdef SHARED
 # define DL_CALLER_DECL /* Nothing */
diff --git a/include/stdio.h b/include/stdio.h
index 87e0e10..7625a2a 100644
--- a/include/stdio.h
+++ b/include/stdio.h
@@ -100,7 +100,7 @@ extern void __libc_message (enum __libc_message_action action,
 			    const char *__fnt, ...);
 extern void __fortify_fail (const char *msg) __attribute__ ((__noreturn__));
 extern void __fortify_fail_abort (_Bool, const char *msg)
-  __attribute__ ((__noreturn__));
+  __attribute__ ((__noreturn__)) attribute_hidden;
 libc_hidden_proto (__fortify_fail)
 libc_hidden_proto (__fortify_fail_abort)
 
diff --git a/include/time.h b/include/time.h
index 870b7eb..e8c07bb 100644
--- a/include/time.h
+++ b/include/time.h
@@ -46,7 +46,7 @@ extern void __tzfile_default (const char *std, const char *dst,
 			      long int stdoff, long int dstoff);
 extern void __tzset_parse_tz (const char *tz);
 extern void __tz_compute (time_t timer, struct tm *tm, int use_localtime)
-  __THROW;
+  __THROW attribute_hidden;
 
 /* Subroutine of `mktime'.  Return the `time_t' representation of TP and
    normalize TP, given that a `struct tm *' maps to a `time_t' as performed
@@ -89,7 +89,7 @@ extern int __getclktck (void);
 /* strptime support.  */
 extern char * __strptime_internal (const char *rp, const char *fmt,
 				   struct tm *tm, void *statep,
-				   locale_t locparam);
+				   locale_t locparam) attribute_hidden;
 
 extern double __difftime (time_t time1, time_t time0);
 
diff --git a/intl/gettextP.h b/intl/gettextP.h
index 8fcfb5b..75b203a 100644
--- a/intl/gettextP.h
+++ b/intl/gettextP.h
@@ -251,19 +251,23 @@ extern const char *_nl_locale_name_default (void);
 
 struct loaded_l10nfile *_nl_find_domain (const char *__dirname, char *__locale,
 					 const char *__domainname,
-					 struct binding *__domainbinding);
+					 struct binding *__domainbinding)
+     attribute_hidden;
 void _nl_load_domain (struct loaded_l10nfile *__domain,
-		      struct binding *__domainbinding);
+		      struct binding *__domainbinding)
+     attribute_hidden;
 
 #ifdef IN_LIBGLOCALE
 char *_nl_find_msg (struct loaded_l10nfile *domain_file,
 		    struct binding *domainbinding, const char *encoding,
 		    const char *msgid,
-		    size_t *lengthp);
+		    size_t *lengthp)
+     attribute_hidden;
 #else
 char *_nl_find_msg (struct loaded_l10nfile *domain_file,
 		    struct binding *domainbinding, const char *msgid,
-		    int convert, size_t *lengthp);
+		    int convert, size_t *lengthp)
+     attribute_hidden;
 #endif
 
 /* The internal variables in the standalone libintl.a must have different
diff --git a/intl/plural-exp.h b/intl/plural-exp.h
index 4833fcd..a4ffff9 100644
--- a/intl/plural-exp.h
+++ b/intl/plural-exp.h
@@ -101,12 +101,13 @@ struct parse_args
 # define EXTRACT_PLURAL_EXPRESSION extract_plural_expression
 #endif
 
-extern void FREE_EXPRESSION (struct expression *exp);
+extern void FREE_EXPRESSION (struct expression *exp) attribute_hidden;
 extern int PLURAL_PARSE (struct parse_args *arg);
 extern const struct expression GERMANIC_PLURAL attribute_hidden;
 extern void EXTRACT_PLURAL_EXPRESSION (const char *nullentry,
 				       const struct expression **pluralp,
-				       unsigned long int *npluralsp);
+				       unsigned long int *npluralsp)
+     attribute_hidden;
 
 #if !defined (_LIBC) && !defined (IN_LIBINTL) && !defined (IN_LIBGLOCALE)
 extern unsigned long int plural_eval (const struct expression *pexp,
diff --git a/locale/coll-lookup.h b/locale/coll-lookup.h
index d1c488d..9e20d39 100644
--- a/locale/coll-lookup.h
+++ b/locale/coll-lookup.h
@@ -19,7 +19,9 @@
 #include <stdint.h>
 
 /* Lookup in a table of int32_t, with default value 0.  */
-extern int32_t __collidx_table_lookup (const char *table, uint32_t wc);
+extern int32_t __collidx_table_lookup (const char *table, uint32_t wc)
+     attribute_hidden;
 
 /* Lookup in a table of uint32_t, with default value 0xffffffff.  */
-extern uint32_t __collseq_table_lookup (const char *table, uint32_t wc);
+extern uint32_t __collseq_table_lookup (const char *table, uint32_t wc)
+     attribute_hidden;
diff --git a/resolv/gai_misc.h b/resolv/gai_misc.h
index 95d14ed..efadf13 100644
--- a/resolv/gai_misc.h
+++ b/resolv/gai_misc.h
@@ -75,19 +75,24 @@ extern pthread_mutex_t __gai_requests_mutex;
 
 
 /* Enqueue request.  */
-extern struct requestlist *__gai_enqueue_request (struct gaicb *gaicbp);
+extern struct requestlist *__gai_enqueue_request (struct gaicb *gaicbp)
+     attribute_hidden;
 
 /* Find request on wait list.  */
-extern struct requestlist *__gai_find_request (const struct gaicb *gaicbp);
+extern struct requestlist *__gai_find_request (const struct gaicb *gaicbp)
+     attribute_hidden;
 
 /* Remove request from waitlist.  */
-extern int __gai_remove_request (struct gaicb *gaicbp);
+extern int __gai_remove_request (struct gaicb *gaicbp)
+     attribute_hidden;
 
 /* Notify initiator of request and tell this everybody listening.  */
-extern void __gai_notify (struct requestlist *req);
+extern void __gai_notify (struct requestlist *req)
+     attribute_hidden;
 
 /* Notify initiator of request.  */
-extern int __gai_notify_only (struct sigevent *sigev, pid_t caller_pid);
+extern int __gai_notify_only (struct sigevent *sigev, pid_t caller_pid)
+     attribute_hidden;
 
 /* Send the signal.  */
 extern int __gai_sigqueue (int sig, const union sigval val, pid_t caller_pid);
diff --git a/sysdeps/generic/aio_misc.h b/sysdeps/generic/aio_misc.h
index c0622b2..d5a0297 100644
--- a/sysdeps/generic/aio_misc.h
+++ b/sysdeps/generic/aio_misc.h
@@ -40,7 +40,8 @@ typedef union
 
 
 /* Send the signal.  */
-extern int __aio_sigqueue (int sig, const union sigval val, pid_t caller_pid);
+extern int __aio_sigqueue (int sig, const union sigval val, pid_t caller_pid)
+     attribute_hidden;
 
 
 #endif /* aio_misc.h */
diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h
index 1a4449e..5efae2d 100644
--- a/sysdeps/generic/ldsodefs.h
+++ b/sysdeps/generic/ldsodefs.h
@@ -954,7 +954,7 @@ extern void _dl_init (struct link_map *main_map, int argc, char **argv,
 
 /* Call the finalizer functions of all shared objects whose
    initializer functions have completed.  */
-extern void _dl_fini (void);
+extern void _dl_fini (void) attribute_hidden;
 
 /* Sort array MAPS according to dependencies of the contained objects.  */
 extern void _dl_sort_fini (struct link_map **maps, size_t nmaps, char *used,
@@ -1123,10 +1123,12 @@ extern struct link_map *_dl_find_dso_for_object (const ElfW(Addr) addr);
 rtld_hidden_proto (_dl_find_dso_for_object)
 
 /* Initialization which is normally done by the dynamic linker.  */
-extern void _dl_non_dynamic_init (void);
+extern void _dl_non_dynamic_init (void)
+     attribute_hidden;
 
 /* Used by static binaries to check the auxiliary vector.  */
-extern void _dl_aux_init (ElfW(auxv_t) *av);
+extern void _dl_aux_init (ElfW(auxv_t) *av)
+     attribute_hidden;
 
 
 __END_DECLS
diff --git a/sysdeps/i386/machine-gmon.h b/sysdeps/i386/machine-gmon.h
index 3e90b8c..81e168e 100644
--- a/sysdeps/i386/machine-gmon.h
+++ b/sysdeps/i386/machine-gmon.h
@@ -30,7 +30,7 @@
 #define mcount_internal __mcount_internal
 
 extern void mcount_internal (u_long frompc, u_long selfpc)
-  __attribute__ ((regparm (2)));
+  __attribute__ ((regparm (2))) attribute_hidden;
 
 #define _MCOUNT_DECL(frompc, selfpc)                \
   __attribute__ ((regparm (2)))			    \
diff --git a/sysdeps/unix/sysv/linux/olddirent.h b/sysdeps/unix/sysv/linux/olddirent.h
index 0b4c81d..5510ab2 100644
--- a/sysdeps/unix/sysv/linux/olddirent.h
+++ b/sysdeps/unix/sysv/linux/olddirent.h
@@ -34,7 +34,8 @@ extern struct __old_dirent64 *__old_readdir64 (DIR *__dirp);
 libc_hidden_proto (__old_readdir64);
 extern int __old_readdir64_r (DIR *__dirp, struct __old_dirent64 *__entry,
 			  struct __old_dirent64 **__result);
-extern __ssize_t __old_getdents64 (int __fd, char *__buf, size_t __nbytes);
+extern __ssize_t __old_getdents64 (int __fd, char *__buf, size_t __nbytes)
+	attribute_hidden;
 int __old_scandir64 (const char * __dir,
 		     struct __old_dirent64 *** __namelist,
 		     int (*__selector) (const struct __old_dirent64 *),
diff --git a/wcsmbs/wcsmbsload.h b/wcsmbs/wcsmbsload.h
index 7efe2c1..57fad53 100644
--- a/wcsmbs/wcsmbsload.h
+++ b/wcsmbs/wcsmbsload.h
@@ -37,13 +37,16 @@ struct gconv_fcts
 extern const struct gconv_fcts __wcsmbs_gconv_fcts_c attribute_hidden;
 
 /* Load conversion functions for the currently selected locale.  */
-extern void __wcsmbs_load_conv (struct __locale_data *new_category);
+extern void __wcsmbs_load_conv (struct __locale_data *new_category)
+     attribute_hidden;
 
 /* Clone the current `__wcsmbs_load_conv' value.  */
-extern void __wcsmbs_clone_conv (struct gconv_fcts *copy);
+extern void __wcsmbs_clone_conv (struct gconv_fcts *copy)
+     attribute_hidden;
 
 /* Find the conversion functions for converting to and from NAME.  */
-extern int __wcsmbs_named_conv (struct gconv_fcts *copy, const char *name);
+extern int __wcsmbs_named_conv (struct gconv_fcts *copy, const char *name)
+     attribute_hidden;
 
 /* Function used for the `private.cleanup' hook.  */
 extern void _nl_cleanup_ctype (struct __locale_data *) attribute_hidden;

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                                          |  280 ++++++++++++++++++++
 argp/argp-fmtstream.c                              |    2 +-
 argp/argp-fs-xinl.c                                |    2 +-
 argp/argp-help.c                                   |    4 +-
 argp/argp-parse.c                                  |    2 +-
 argp/argp-xinl.c                                   |    2 +-
 iconv/gconv_int.h                                  |   43 ++-
 include/aliases.h                                  |    3 +-
 include/argp-fmtstream.h                           |   19 ++
 include/argp.h                                     |   10 +
 include/dlfcn.h                                    |    3 +-
 include/gmp.h                                      |   33 ++-
 include/grp.h                                      |    6 +-
 include/gshadow.h                                  |    6 +-
 include/netdb.h                                    |   30 ++-
 include/pwd.h                                      |    6 +-
 include/rpc/netdb.h                                |    4 +-
 include/shadow.h                                   |    7 +-
 include/stdio.h                                    |   20 +-
 include/sys/statfs.h                               |    9 +-
 include/sys/statvfs.h                              |    6 +-
 include/time.h                                     |   30 ++-
 include/unistd.h                                   |   60 +++--
 include/wchar.h                                    |   61 ++++-
 intl/gettextP.h                                    |   12 +-
 intl/plural-exp.h                                  |    5 +-
 locale/coll-lookup.h                               |    6 +-
 nscd/nscd-client.h                                 |   12 +-
 nscd/nscd_proto.h                                  |   34 ++-
 nss/getXXbyYY.c                                    |    3 +-
 resolv/gai_misc.h                                  |   15 +-
 stdlib/gmp-impl.h                                  |   12 +-
 sysdeps/generic/aio_misc.h                         |    3 +-
 sysdeps/generic/ldsodefs.h                         |    8 +-
 sysdeps/i386/machine-gmon.h                        |    2 +-
 sysdeps/ieee754/float128/wcstof128.c               |    3 -
 sysdeps/ieee754/float128/wcstof128_l.c             |    3 -
 sysdeps/unix/sysv/linux/fstatvfs.c                 |    6 +-
 sysdeps/unix/sysv/linux/fstatvfs64.c               |    7 +-
 sysdeps/unix/sysv/linux/internal_statvfs.c         |    2 +-
 .../unix/sysv/linux/internal_statvfs.h             |   19 +-
 sysdeps/unix/sysv/linux/olddirent.h                |    3 +-
 sysdeps/unix/sysv/linux/pathconf.h                 |   12 +-
 sysdeps/unix/sysv/linux/statvfs.c                  |    6 +-
 sysdeps/unix/sysv/linux/statvfs64.c                |    7 +-
 wcsmbs/wcsmbsload.h                                |    9 +-
 wcsmbs/wcstod.c                                    |    3 -
 wcsmbs/wcstod_l.c                                  |    3 -
 wcsmbs/wcstof.c                                    |    3 -
 wcsmbs/wcstof_l.c                                  |    3 -
 wcsmbs/wcstol_l.c                                  |    3 -
 wcsmbs/wcstold.c                                   |    3 -
 wcsmbs/wcstold_l.c                                 |    3 -
 wcsmbs/wcstoll_l.c                                 |    3 -
 wcsmbs/wcstoul_l.c                                 |    3 -
 wcsmbs/wcstoull_l.c                                |    4 -
 56 files changed, 626 insertions(+), 242 deletions(-)
 create mode 100644 include/argp-fmtstream.h
 copy bits/stdint-intn.h => sysdeps/unix/sysv/linux/internal_statvfs.h (69%)


hooks/post-receive
-- 
GNU C Library master sources


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]