about summary refs log tree commit diff
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2017-10-01 15:18:09 -0700
committerH.J. Lu <hjl.tools@gmail.com>2017-10-01 15:18:25 -0700
commite1b33bba7c30b36be33fa8bb1e6cffbb65b97730 (patch)
tree101e3d18d9f9814916d1b27237d02f8e7867236c
parentb0f5678494d727b6868435dfc32b066ade6d3e49 (diff)
downloadglibc-e1b33bba7c30b36be33fa8bb1e6cffbb65b97730.tar.gz
glibc-e1b33bba7c30b36be33fa8bb1e6cffbb65b97730.tar.xz
glibc-e1b33bba7c30b36be33fa8bb1e6cffbb65b97730.zip
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.
-rw-r--r--ChangeLog13
-rw-r--r--include/sys/statfs.h9
-rw-r--r--include/sys/statvfs.h6
-rw-r--r--sysdeps/unix/sysv/linux/pathconf.h12
4 files changed, 31 insertions, 9 deletions
diff --git a/ChangeLog b/ChangeLog
index 4a8d173be5..94095558a3 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 3fac4a3490..8a9f5a7b3b 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 fa3045386d..4cd1977c35 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 5de2915f40..b9de04f268 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;