[13/58] Mark internal statfs functions with attribute_hidden [BZ #18822]
Commit Message
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.
---
include/sys/statfs.h | 9 ++++++---
include/sys/statvfs.h | 6 ++++--
sysdeps/unix/sysv/linux/pathconf.h | 12 ++++++++----
3 files changed, 18 insertions(+), 9 deletions(-)
Comments
On 9/1/17, H.J. Lu <hjl.tools@gmail.com> wrote:
> 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.
Tested with build-many-glibcs.py. I am checking it in.
@@ -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
@@ -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)
@@ -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;