From e1b33bba7c30b36be33fa8bb1e6cffbb65b97730 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Sun, 1 Oct 2017 15:18:09 -0700 Subject: [PATCH] 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. --- ChangeLog | 13 +++++++++++++ include/sys/statfs.h | 9 ++++++--- include/sys/statvfs.h | 6 ++++-- sysdeps/unix/sysv/linux/pathconf.h | 12 ++++++++---- 4 files changed, 31 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4a8d173be5..94095558a3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,16 @@ +2017-10-01 H.J. Lu + + [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 [BZ #18822] 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;