From 8303c7409cee86f42485177061d1e0ce04c07e9f Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Thu, 15 Oct 2015 14:15:26 -0700 Subject: [PATCH] Mark internal dirent functions hidden Since internal dirent functions are only used internally in ld.so and libc.so, they can be made hidden. [BZ #19122] * include/dirent.h (__opendirat): Add attribute_hidden. (__getdents): Likewise. (__getdents64): Likewise. (__alloc_dir): Likewise. [IS_IN (rtld)] (__closedir): Likewise. [IS_IN (rtld)] (__fdopendir): Likewise. [IS_IN (rtld)] (__readdir): Likewise. [IS_IN (rtld)] (__readdir64): Likewise. [IS_IN (rtld)] (__rewinddir): Likewise. --- ChangeLog | 10 ++++++++++ include/dirent.h | 17 +++++++++++++---- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 110d6706fe..d0dbccfb15 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,16 @@ 2015-10-15 H.J. Lu [BZ #19122] + * include/dirent.h (__opendirat): Add attribute_hidden. + (__getdents): Likewise. + (__getdents64): Likewise. + (__alloc_dir): Likewise. + [IS_IN (rtld)] (__closedir): Likewise. + [IS_IN (rtld)] (__fdopendir): Likewise. + [IS_IN (rtld)] (__readdir): Likewise. + [IS_IN (rtld)] (__readdir64): Likewise. + [IS_IN (rtld)] (__rewinddir): Likewise. + * include/dlfcn.h (_dl_catch_error): Moved to ... * sysdeps/generic/ldsodefs.h (_dl_catch_error): Add attribute_hidden. diff --git a/include/dirent.h b/include/dirent.h index 258f2d0791..c792e53c96 100644 --- a/include/dirent.h +++ b/include/dirent.h @@ -16,7 +16,8 @@ struct scandir_cancel_struct /* Now define the internal interfaces. */ extern DIR *__opendir (const char *__name); -extern DIR *__opendirat (int dfd, const char *__name) internal_function; +extern DIR *__opendirat (int dfd, const char *__name) + internal_function attribute_hidden; extern DIR *__fdopendir (int __fd); extern int __closedir (DIR *__dirp); extern struct dirent *__readdir (DIR *__dirp); @@ -35,9 +36,9 @@ extern __ssize_t __getdirentries (int __fd, char *__restrict __buf, __off_t *__restrict __basep) __THROW __nonnull ((2, 4)); extern __ssize_t __getdents (int __fd, char *__buf, size_t __nbytes) - internal_function; + internal_function attribute_hidden; extern __ssize_t __getdents64 (int __fd, char *__buf, size_t __nbytes) - internal_function; + internal_function attribute_hidden; extern int __alphasort64 (const struct dirent64 **a, const struct dirent64 **b) __attribute_pure__; extern int __versionsort64 (const struct dirent64 **a, @@ -45,7 +46,7 @@ extern int __versionsort64 (const struct dirent64 **a, __attribute_pure__; extern DIR *__alloc_dir (int fd, bool close_fd, int flags, const struct stat64 *statp) - internal_function; + internal_function attribute_hidden; extern __typeof (rewinddir) __rewinddir; extern void __scandir_cancel_handler (void *arg) attribute_hidden; @@ -74,6 +75,14 @@ libc_hidden_proto (__rewinddir) extern __typeof (scandirat) __scandirat; libc_hidden_proto (__scandirat) libc_hidden_proto (scandirat64) + +# if IS_IN (rtld) +extern __typeof (__closedir) __closedir attribute_hidden; +extern __typeof (__fdopendir) __fdopendir attribute_hidden; +extern __typeof (__readdir) __readdir attribute_hidden; +extern __typeof (__readdir64) __readdir64 attribute_hidden; +extern __typeof (__rewinddir) __rewinddir attribute_hidden; +# endif # endif #endif