about summary refs log tree commit diff
path: root/stdlib
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2017-10-01 14:34:18 -0700
committerH.J. Lu <hjl.tools@gmail.com>2017-10-01 14:34:54 -0700
commit8ed3b64330cd24e2a17d8794a871cab034707a33 (patch)
treec0866d5ce8606469bddba2cf06a430c9c4145aaa /stdlib
parentef9b6f73f45a46d079018f63e2d9184eaa0db1d5 (diff)
downloadglibc-8ed3b64330cd24e2a17d8794a871cab034707a33.tar.gz
glibc-8ed3b64330cd24e2a17d8794a871cab034707a33.tar.xz
glibc-8ed3b64330cd24e2a17d8794a871cab034707a33.zip
Mark internal stdlib functions with attribute_hidden [BZ #18822]
Mark internal stdlib functions with attribute_hidden to allow direct
access within libc.so and libc.a without using GOT nor PLT.  __realpath
is hidden with libc_hidden_proto and libc_hidden_def since the exported
realpath is an alias of __realpath.

	[BZ #18822]
	* include/stdlib.h (__random): Add attribute_hidden.
	(__random_r): Likewise.
	(__srandom_r): Likewise.
	(__initstate_r): Likewise.
	(__setstate_r): Likewise.
	(__erand48_r): Likewise.
	(__nrand48_r): Likewise.
	(__jrand48_r): Likewise.
	(__srand48_r): Likewise.
	(__seed48_r): Likewise.
	(__lcong48_r): Likewise.
	(__drand48_iterate): Likewise.
	(__setenv): Likewise.
	(__unsetenv): Likewise.
	(__clearenv): Likewise.
	(__ptsname_r): Likewise.
	(__posix_openpt): Likewise.
	(__add_to_environ): Likewise.
	(__realpath): Add libc_hidden_proto.
	(__ecvt_r): Likewise.
	(__fcvt_r): Likewise.
	(__qecvt_r): Likewise.
	(__qfcvt_r): Likewise.
	* misc/efgcvt_r.c (cvt_symbol_1): Add libc_hidden_def (local).
	* stdlib/canonicalize.c (__realpath): Add libc_hidden_def.
Diffstat (limited to 'stdlib')
-rw-r--r--stdlib/canonicalize.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/stdlib/canonicalize.c b/stdlib/canonicalize.c
index c3d892c862..4ff7e0feb8 100644
--- a/stdlib/canonicalize.c
+++ b/stdlib/canonicalize.c
@@ -218,6 +218,7 @@ error:
     free (rpath);
   return NULL;
 }
+libc_hidden_def (__realpath)
 versioned_symbol (libc, __realpath, realpath, GLIBC_2_3);