Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
H.J. Lu committed Oct 15, 2015
1 parent d6e855d commit 8303c74
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 4 deletions.
10 changes: 10 additions & 0 deletions ChangeLog
@@ -1,6 +1,16 @@
2015-10-15 H.J. Lu <hongjiu.lu@intel.com>

[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.
Expand Down
17 changes: 13 additions & 4 deletions include/dirent.h
Expand Up @@ -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);
Expand All @@ -35,17 +36,17 @@ 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,
const struct dirent64 **b)
__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;
Expand Down Expand Up @@ -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

0 comments on commit 8303c74

Please sign in to comment.