glibc/include
Joseph Myers 1769608794 Use libc_hidden_proto / libc_hidden_def with __strnlen.
Various code in glibc uses __strnlen instead of strnlen for namespace
reasons.  However, __strnlen does not use libc_hidden_proto /
libc_hidden_def (as is normally done for any function defined and
called within the same library, whether or not exported from the
library and whatever namespace it is in), so the compiler does not
know that those calls are to a function within libc.

This patch uses libc_hidden_proto / libc_hidden_def with __strnlen.
On x86_64, it makes no difference to the installed stripped shared
libraries.  On 32-bit x86, it causes __strnlen calls to go to the same
place as strnlen calls (the fallback strnlen implementation), rather
than through a PLT entry for the strnlen IFUNC; I'm not sure of the
logic behind when calls from within libc should use IFUNCs versus when
they should go direct to a particular function implementation, but
clearly it doesn't make sense for strnlen and __strnlen to be handled
differently in this regard.

Tested for x86_64 and x86 (testsuite, and comparison of installed
shared libraries as described above).

	* string/strnlen.c [!STRNLEN] (__strnlen): Use libc_hidden_def.
	* include/string.h (__strnlen): Use libc_hidden_proto.
	* sysdeps/aarch64/strnlen.S (__strnlen): Use libc_hidden_def.
	* sysdeps/i386/i686/multiarch/strnlen-c.c [SHARED]
	(libc_hidden_def): Define __GI___strnlen as well as __GI_strnlen.
	* sysdeps/powerpc/powerpc32/power4/multiarch/strnlen-power7.S
	(libc_hidden_def): Undefine and redefine.
	* sysdeps/powerpc/powerpc32/power4/multiarch/strnlen-ppc32.c
	[SHARED] (libc_hidden_def): Define __GI___strnlen as well as
	__GI_strnlen.
	* sysdeps/powerpc/powerpc32/power7/strnlen.S (__strnlen): Use
	libc_hidden_def.
	* sysdeps/tile/tilegx/strnlen.c (__strnlen): Likewise.
2015-06-02 20:24:25 +00:00
..
arpa Fix resolver inet_* namespace (bug 17722). 2014-12-17 18:09:11 +00:00
bits Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
gnu Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
net Fix resolver if_* namespace (bug 17717). 2014-12-16 18:18:49 +00:00
netinet First steps to get conformtest fully working 2012-02-25 23:18:39 -05:00
programs Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
protocols (abmon): Remove spaces. 1998-11-12 18:03:43 +00:00
rpc Avoid use of "register" as optimization hint. 2013-06-07 22:24:35 +00:00
rpcsvc * nis/nis_domain_of.c (__nis_domain_of): New function. 2007-04-19 14:28:01 +00:00
sys Fix posix_spawn getrlimit64 namespace (bug 17991). 2015-02-18 00:26:35 +00:00
aio.h First steps to get conformtest fully working 2012-02-25 23:18:39 -05:00
aliases.h Remove pre-ISO C support 2012-01-07 23:57:22 -05:00
alloca.h alloca: fix buf interaction 2015-02-24 13:29:40 -05:00
argp.h Update. 2000-12-28 15:08:51 +00:00
argz.h Remove use of INTDEF/INTUSE in intl 2012-05-24 23:08:18 +02:00
assert.h Remove NOT_IN_libc 2014-11-24 15:03:45 +05:30
atomic.h Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
byteswap.h Update. 1998-04-10 10:52:25 +00:00
caller.h Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
complex.h conformtest: Fix namespace testing. 2013-09-04 20:47:21 +00:00
cpio.h Add more headers to include/ for conform tests. 2014-12-11 21:41:30 +00:00
ctype.h Remove NOT_IN_libc 2014-11-24 15:03:45 +05:30
des.h Update. 1998-03-24 10:39:42 +00:00
dirent.h Refactor scandir/scandirat to use common tail. 2015-05-13 12:34:11 -07:00
dlfcn.h First steps to get conformtest fully working 2012-02-25 23:18:39 -05:00
elf.h Check supported DF_1_XXX bits 2012-11-21 06:33:19 -08:00
endian.h Update. 2001-03-30 05:34:59 +00:00
envz.h 2002-08-03 Roland McGrath <roland@redhat.com> 2002-08-04 01:28:06 +00:00
err.h * include/sys/syslog.h: Use libc_hidden_proto for syslog, vsyslog. 2002-08-03 12:59:33 +00:00
errno.h Remove NOT_IN_libc 2014-11-24 15:03:45 +05:30
error.h Update. 1997-06-21 02:59:26 +00:00
execinfo.h Remove pre-ISO C support 2012-01-07 23:57:22 -05:00
fcntl.h Remove __libc_creat function name. 2014-10-30 19:44:31 +00:00
features.h Update version.h and include/features.h for 2.21 release 2015-02-06 01:40:18 -05:00
fenv.h Fix libm feupdateenv namespace (bug 17748). 2015-01-07 19:01:20 +00:00
fmtmsg.h Add more headers to include/ for conform tests. 2014-12-11 21:41:30 +00:00
fnmatch.h First steps to get conformtest fully working 2012-02-25 23:18:39 -05:00
fpu_control.h Update. 1999-11-23 17:22:17 +00:00
ftw.h Update. 1997-06-21 02:59:26 +00:00
gconv.h Update. 1997-11-18 02:50:07 +00:00
getopt_int.h Update. 2004-03-09 10:36:53 +00:00
getopt.h Update. 2004-03-09 10:36:53 +00:00
glob.h First steps to get conformtest fully working 2012-02-25 23:18:39 -05:00
gmp.h * include/gmp.h: Include/gmp-mparam.h. * stdlib/strtod.c: Include gmp-mparam.h before gmp.h and gmp-impl.h. 2003-03-14 05:48:18 +00:00
gnu-versions.h Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
grp.h First steps to get conformtest fully working 2012-02-25 23:18:39 -05:00
gshadow.h [BZ #9955] 2009-04-23 18:29:30 +00:00
iconv.h Update. 1999-08-21 00:38:15 +00:00
ifaddrs.h Remove IS_IN_nscd 2014-11-24 11:41:44 +05:30
ifunc-impl-list.h Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
inline-hashtab.h Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
langinfo.h Add first fixes for conformtest for POSIX2008 2012-02-26 21:32:56 -05:00
libc-internal.h Define libc_max_align_t for internal use 2015-04-02 19:55:21 +02:00
libc-symbols.h Localplt testing for vector math library and libmvec_hidden_* macro series. 2015-05-25 21:20:20 +03:00
libgen.h Update. 1997-06-21 02:59:26 +00:00
libintl.h Remove use of INTDEF/INTUSE in intl 2012-05-24 23:08:18 +02:00
libio.h Remove use of INTDEF/INTUSE in libio 2012-05-24 23:06:20 +02:00
limits.h Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
link.h Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
list.h Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
locale.h First steps to get conformtest fully working 2012-02-25 23:18:39 -05:00
malloc.h * malloc/malloc.c (_int_free): Second argument is now mchunkptr. 2009-02-07 22:01:49 +00:00
math.h Remove NOT_IN_libc 2014-11-24 15:03:45 +05:30
mcheck.h * include/sys/resource.h: Use libc_hidden_proto for getpriority, 2002-08-04 03:50:21 +00:00
memory.h Update. 1997-06-21 02:59:26 +00:00
mntent.h Remove use of INTUSE/INTDEF in misc. 2012-05-31 13:10:02 +02:00
monetary.h Add first fixes for conformtest for POSIX2008 2012-02-26 21:32:56 -05:00
mqueue.h Use IS_IN internally only 2014-11-24 15:24:34 +05:30
netdb.h Remove NOT_IN_libc 2014-11-24 15:03:45 +05:30
netgroup.h Update. 1997-06-21 02:59:26 +00:00
nl_types.h Update. 1997-12-22 20:53:38 +00:00
nss.h Update. 1997-06-21 02:59:26 +00:00
nsswitch.h Update. 1997-06-21 02:59:26 +00:00
obstack.h Update. 2002-08-04 09:27:27 +00:00
poll.h Update. 2000-08-21 16:02:48 +00:00
printf.h Update. 2002-08-03 07:02:10 +00:00
pthread.h First steps to get conformtest fully working 2012-02-25 23:18:39 -05:00
pty.h Update. 2004-10-24 21:29:41 +00:00
pwd.h First steps to get conformtest fully working 2012-02-25 23:18:39 -05:00
regex.h First steps to get conformtest fully working 2012-02-25 23:18:39 -05:00
resolv.h Remove NOT_IN_libc 2014-11-24 15:03:45 +05:30
rounding-mode.h Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
sched.h First steps to get conformtest fully working 2012-02-25 23:18:39 -05:00
scratch_buffer.h Add struct scratch_buffer and its internal helper functions 2015-04-07 11:03:43 +02:00
search.h Fix search.h namespace (bug 17996). 2015-02-18 18:47:34 +00:00
set-hooks.h Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
setjmp.h First steps to get conformtest fully working 2012-02-25 23:18:39 -05:00
sgtty.h Update. 1997-06-21 02:59:26 +00:00
shadow.h Remove pre-ISO C support 2012-01-07 23:57:22 -05:00
shlib-compat.h Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
signal.h Fix scanf15.c testsuite build on sparc. 2015-01-13 11:28:17 -08:00
spawn.h Update. 2000-10-01 19:15:29 +00:00
stab.h Update. 1997-06-21 02:59:26 +00:00
stackinfo.h Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
stap-probe.h Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
stdc-predef.h Amendments to Unicode 7 update. 2015-02-23 11:35:24 -03:00
stdio_ext.h Remove use of INTDEF/INTUSE in libio 2012-05-24 23:06:20 +02:00
stdio.h Ensure `wint_t' is defined before use in include/stdio.h 2015-05-18 12:28:06 +05:30
stdlib.h Remove NOT_IN_libc 2014-11-24 15:03:45 +05:30
string.h Use libc_hidden_proto / libc_hidden_def with __strnlen. 2015-06-02 20:24:25 +00:00
strings.h Update. 1997-06-21 02:59:26 +00:00
stropts.h First steps to get conformtest fully working 2012-02-25 23:18:39 -05:00
stubs-prologue.h * sysdeps/generic/bits/libc-tsd.h [USE___THREAD]: Conditional 2002-10-11 10:52:20 +00:00
syscall.h Update. 1997-06-21 02:59:26 +00:00
sysexits.h Update. 1997-06-21 02:59:26 +00:00
syslog.h Update. 1997-06-21 02:59:26 +00:00
tar.h Update. 1997-06-21 02:59:26 +00:00
termios.h First steps to get conformtest fully working 2012-02-25 23:18:39 -05:00
tgmath.h Update. 1998-09-06 23:45:24 +00:00
time.h Fix symbol definitions for __clock_* functions 2013-06-11 11:11:11 +05:30
ttyent.h * include/search.h: Use libc_hidden_proto for hsearch_r, lfind. 2002-08-04 01:29:29 +00:00
uchar.h First steps to get conformtest fully working 2012-02-25 23:18:39 -05:00
ucontext.h Update. 1999-10-12 18:17:41 +00:00
ulimit.h First steps to get conformtest fully working 2012-02-25 23:18:39 -05:00
unistd.h Don't use INTVARDEF/INTUSE with __libc_enable_secure (bug 14132). 2014-10-10 11:13:11 +00:00
utime.h First steps to get conformtest fully working 2012-02-25 23:18:39 -05:00
utmp.h Remove pre-ISO C support 2012-01-07 23:57:22 -05:00
values.h Update copyright dates with scripts/update-copyrights. 2015-01-02 16:29:47 +00:00
wchar.h Fix strftime wcschr namespace (bug 17634). 2014-12-10 16:59:02 +00:00
wctype.h Fix fnmatch towlower namespace (bug 18469). 2015-06-02 20:23:09 +00:00
wordexp.h First steps to get conformtest fully working 2012-02-25 23:18:39 -05:00
xlocale.h Update. 1997-06-21 02:59:26 +00:00