diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2017-10-01 15:50:56 -0700 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2017-10-01 15:51:11 -0700 |
commit | 4587a421c54a8912b3e24913c7e1501293042b40 (patch) | |
tree | 21ff4ebe25d895d5c55ebbc59a33d0f1603b7e2a /sysdeps/unix/sysv/linux | |
parent | 9635ce69626bfe41196bdef8efe4aba8d8a7b58f (diff) | |
download | glibc-4587a421c54a8912b3e24913c7e1501293042b40.tar glibc-4587a421c54a8912b3e24913c7e1501293042b40.tar.gz glibc-4587a421c54a8912b3e24913c7e1501293042b40.tar.bz2 glibc-4587a421c54a8912b3e24913c7e1501293042b40.zip |
Mark internal dirent functions with attribute_hidden [BZ #18822]
Mark internal dirent functions with attribute_hidden to allow direct
access within libc.so and libc.a without using GOT nor PLT. __readdir64
is hidden with libc_hidden_proto and libc_hidden_def since the exported
readdir64 is an alias of __readdir64.
[BZ #18822]
* include/dirent.h (__opendir): Always add attribute_hidden.
(__fdopendir): Likewise.
(__closedir): Likewise.
(__readdir): Likewise.
(__readdir64): Add libc_hidden_proto.
* sysdeps/mach/hurd/readdir64.c (__readdir64): Add libc_hidden_def.
* sysdeps/unix/sysv/linux/i386/readdir64.c (__readdir64): Likewise.
* sysdeps/unix/sysv/linux/readdir64.c (__readdir64): Likewise.
* sysdeps/unix/sysv/linux/wordsize-64/readdir.c (__GI___readdir64):
New alias.
Diffstat (limited to 'sysdeps/unix/sysv/linux')
-rw-r--r-- | sysdeps/unix/sysv/linux/i386/readdir64.c | 1 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/readdir64.c | 1 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/wordsize-64/readdir.c | 1 |
3 files changed, 3 insertions, 0 deletions
diff --git a/sysdeps/unix/sysv/linux/i386/readdir64.c b/sysdeps/unix/sysv/linux/i386/readdir64.c index da3defd379..013bb252f4 100644 --- a/sysdeps/unix/sysv/linux/i386/readdir64.c +++ b/sysdeps/unix/sysv/linux/i386/readdir64.c @@ -27,6 +27,7 @@ #undef __GETDENTS #undef DIRENT_TYPE +libc_hidden_def (__readdir64) versioned_symbol (libc, __readdir64, readdir64, GLIBC_2_2); #if SHLIB_COMPAT(libc, GLIBC_2_1, GLIBC_2_2) diff --git a/sysdeps/unix/sysv/linux/readdir64.c b/sysdeps/unix/sysv/linux/readdir64.c index 224f53db88..6d154fe988 100644 --- a/sysdeps/unix/sysv/linux/readdir64.c +++ b/sysdeps/unix/sysv/linux/readdir64.c @@ -4,4 +4,5 @@ #include <sysdeps/posix/readdir.c> +libc_hidden_def (__readdir64) weak_alias (__readdir64, readdir64) diff --git a/sysdeps/unix/sysv/linux/wordsize-64/readdir.c b/sysdeps/unix/sysv/linux/wordsize-64/readdir.c index e197d93b00..0d5798849d 100644 --- a/sysdeps/unix/sysv/linux/wordsize-64/readdir.c +++ b/sysdeps/unix/sysv/linux/wordsize-64/readdir.c @@ -3,5 +3,6 @@ #include <sysdeps/posix/readdir.c> #undef __readdir64 strong_alias (__readdir, __readdir64) +strong_alias (__readdir, __GI___readdir64) #undef readdir64 weak_alias (__readdir, readdir64) |