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.
This commit is contained in:
H.J. Lu 2017-10-01 15:18:09 -07:00
parent b0f5678494
commit e1b33bba7c
4 changed files with 31 additions and 9 deletions

View File

@ -1,3 +1,16 @@
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]

View File

@ -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

View File

@ -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)

View File

@ -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;