glibc/include
H.J. Lu 8bcdb7e0c5 Mark internal functions with attribute_hidden [BZ #18822]
Mark internal functions with attribute_hidden to allow direct access to
internal functions within libc.so and libc.a without using GOT nor PLT.

Size comparison of libc.so:

On x86-64:
        text	   data	    bss	    dec	    hex
Before: 1728577	  20584	  17088	1766249	 1af369
After : 1728593	  20584	  17088	1766265	 1af379

The only change is __gconv_release_shlib in iconv/gconv_dl.c is inlined
since it is hidden, which increases the code size of gconv_dl.os by 18
bytes.

On i686:
        text	   data	    bss	    dec	    hex
Before: 1869039	  11444	  11112	1891595	 1cdd0b
After : 1868635	  11444	  11112	1891191	 1cdb77

The code size is decreased by avoiding GOT/PLT for hidden functions.

	[BZ #18822]
	* iconv/gconv_int.h (__gconv_open): Add attribute_hidden.
	(__gconv_close): Likewise.
	(__gconv): Likewise.
	(__gconv_find_transform): Likewise.
	(__gconv_lookup_cache): Likewise.
	(__gconv_compare_alias_cache): Likewise.
	(__gconv_load_cache): Likewise.
	(__gconv_get_path): Likewise.
	(__gconv_close_transform): Likewise.
	(__gconv_release_cache): Likewise.
	(__gconv_find_shlib): Likewise.
	(__gconv_release_shlib): Likewise.
	(__gconv_get_builtin_trans): Likewise.
	(__gconv_compare_alias): Likewise.
	* include/dlfcn.h (_dlerror_run): Likewise.
	* include/stdio.h (__fortify_fail_abort): Likewise.
	* include/time.h (__tz_compute): Likewise.
	(__strptime_internal): Likewise.
	* intl/gettextP.h (_nl_find_domain): Likewise.
	(_nl_load_domain): Likewise.
	(_nl_find_msg): Likewise.
	* intl/plural-exp.h (FREE_EXPRESSION): Likewise.
	(EXTRACT_PLURAL_EXPRESSION): Likewise.
	* locale/coll-lookup.h (__collidx_table_lookup): Likewise.
	* resolv/gai_misc.h (__gai_enqueue_request): Likewise.
	(__gai_find_request): Likewise.
	(__gai_remove_request): Likewise.
	(__gai_notify): Likewise.
	(__gai_notify_only): Likewise.
	* sysdeps/generic/aio_misc.h (__aio_sigqueue): Likewise.
	* sysdeps/generic/ldsodefs.h (_dl_fini): Likewise.
	(_dl_non_dynamic_init): Likewise.
	(_dl_aux_init): Likewise.
	* sysdeps/i386/machine-gmon.h (mcount_internal): Likewise.
	* sysdeps/unix/sysv/linux/i386/olddirent.h (__old_getdents64):
	Likewise.
	* wcsmbs/wcsmbsload.h (__wcsmbs_load_conv): Likewise.
	(__wcsmbs_clone_conv): Likewise.
	(__wcsmbs_named_conv): Likewise.
2017-10-01 15:07:23 -07:00
..
arpa nss_dns: Replace local declarations with declarations from a header file 2017-04-04 20:56:23 +02:00
bits Fix sigval namespace (bug 21944). 2017-08-16 20:33:59 +00:00
gnu Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
net Fix resolver if_* namespace (bug 17717). 2014-12-16 18:18:49 +00:00
netinet Installed header hygiene (BZ#20366): Test of installed headers. 2016-09-23 08:43:56 -04:00
programs Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
protocols
rpc sunrpc: Remove internal_function attribute 2017-08-31 15:59:02 +02:00
rpcsvc Deprecate libnsl by default (only shared library will be 2017-03-21 15:14:27 +01:00
sys Hide __chmod and __mkdir [BZ #18822] 2017-09-04 13:38:51 -07:00
aio.h First steps to get conformtest fully working 2012-02-25 23:18:39 -05:00
aliases.h Installed header hygiene (BZ#20366): Test of installed headers. 2016-09-23 08:43:56 -04:00
alloc_buffer.h Implement allocation buffers for internal use 2017-06-21 22:43:57 +02:00
alloca.h Installed header hygiene (BZ#20366): Test of installed headers. 2016-09-23 08:43:56 -04:00
argp.h Update. 2000-12-28 15:08:51 +00:00
argz.h Mark internal argz functions with attribute_hidden [BZ #18822] 2017-08-18 09:31:33 -07:00
assert.h Remove NOT_IN_libc 2014-11-24 15:03:45 +05:30
atomic.h Optimize generic spinlock code and use C11 like atomic macros. 2017-06-06 09:41:56 +02:00
byteswap.h
caller.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
complex.h float128: Add private _Float128 declarations for libm. 2017-05-15 10:23:28 -03:00
cpio.h Add more headers to include/ for conform tests. 2014-12-11 21:41:30 +00:00
crypt.h Add include/crypt.h. 2016-10-28 22:40:16 -04:00
ctype.h Rename bits/libc-tsd.h to libc-tsd.h (bug 14912). 2015-09-03 20:33:46 +00:00
des.h
dirent.h hurd: Fix seekdir' symbol exposition from rewinddir' 2017-09-28 00:49:59 +02:00
dlfcn.h Mark internal functions with attribute_hidden [BZ #18822] 2017-10-01 15:07:23 -07:00
dso_handle.h Mark __dso_handle as hidden [BZ #18822] 2017-09-26 16:53:44 -07:00
elf.h Installed header hygiene (BZ#20366): Test of installed headers. 2016-09-23 08:43:56 -04:00
endian.h Update. 2001-03-30 05:34:59 +00:00
envz.h Installed header hygiene (BZ#20366): Test of installed headers. 2016-09-23 08:43:56 -04:00
err.h Installed header hygiene (BZ#20366): Test of installed headers. 2016-09-23 08:43:56 -04:00
errno.h Remove __need macros from errno.h (__need_Emath, __need_error_t). 2017-06-14 08:14:34 -04:00
error.h
execinfo.h Installed header hygiene (BZ#20366): Test of installed headers. 2016-09-23 08:43:56 -04:00
fcntl.h Consolidate remaning non cancellable definitions 2017-08-23 10:47:03 -03:00
features.h Update for 2.26 release 2017-08-02 18:27:16 +05:30
fenv.h Mark fegetround pure (bug 16296). 2015-09-15 20:36:50 +00:00
float.h Include libc-header-start.h in include/float.h 2017-06-23 10:30:04 -03: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 Installed header hygiene (BZ#20366): Test of installed headers. 2016-09-23 08:43:56 -04:00
ftw.h
gconv.h
getopt_int.h Update. 2004-03-09 10:36:53 +00:00
getopt.h getopt: remove USE_NONOPTION_FLAGS 2017-04-07 07:45:53 -04:00
glob.h First steps to get conformtest fully working 2012-02-25 23:18:39 -05:00
gmp.h float128: Add strtof128, wcstof128, and related functions. 2017-06-12 14:48:53 -03:00
gnu-versions.h posix: Add compat glob symbol to not follow dangling symbols 2017-09-25 18:04:16 -07:00
grp-merge.h NSS: Implement group merging support. 2016-04-29 22:18:21 -04:00
grp.h First steps to get conformtest fully working 2012-02-25 23:18:39 -05:00
gshadow.h Installed header hygiene (BZ#20366): Test of installed headers. 2016-09-23 08:43:56 -04:00
iconv.h
ifaddrs.h hurd: Fix getifaddrs' and freeifaddrs' symbol exposition 2017-09-28 01:05:18 +02:00
ifunc-impl-list.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
inline-hashtab.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
langinfo.h Add first fixes for conformtest for POSIX2008 2012-02-26 21:32:56 -05:00
libc-diag.h Split DIAG_* macros to new header libc-diag.h. 2017-02-25 09:59:46 -05:00
libc-internal.h Mark __libc_multiple_libcs with attribute_hidden [BZ #18822] 2017-08-21 05:32:39 -07:00
libc-pointer-arith.h Narrowing the visibility of libc-internal.h even further. 2017-03-01 20:33:46 -05:00
libc-symbols.h libc-symbols.h: Remove definition of internal_function 2017-08-31 18:52:00 +02:00
libgen.h
libintl.h Installed header hygiene (BZ#20366): Test of installed headers. 2016-09-23 08:43:56 -04:00
libio.h Remove _IO_MTSAFE_IO from public headers. 2017-05-11 19:14:11 -04:00
limits.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
link.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
list_t.h Remove __need_list_t and __need_res_state. 2017-05-20 19:01:46 -04:00
list.h Remove __need_list_t and __need_res_state. 2017-05-20 19:01:46 -04:00
locale.h First steps to get conformtest fully working 2012-02-25 23:18:39 -05:00
malloc.h Installed header hygiene (BZ#20366): Test of installed headers. 2016-09-23 08:43:56 -04:00
math.h Make more libm functions into weak aliases. 2017-09-14 22:28:53 +00:00
mcheck.h Installed header hygiene (BZ#20366): Test of installed headers. 2016-09-23 08:43:56 -04:00
memory.h
mntent.h Installed header hygiene (BZ#20366): Test of installed headers. 2016-09-23 08:43:56 -04:00
monetary.h Use locale_t, not __locale_t, throughout glibc 2017-06-20 20:30:06 -04:00
mqueue.h Fix mq_receive, mq_send mq_timed* namespace (bug 18545). 2015-06-17 20:19:04 +00:00
netdb.h Fix network headers stdint.h namespace (bug 21455). 2017-05-04 20:36:42 +00:00
netgroup.h
nl_types.h
nss.h NSS: Remove internal_function function attribute 2017-08-31 15:59:06 +02:00
nsswitch.h
obstack.h Installed header hygiene (BZ#20366): Test of installed headers. 2016-09-23 08:43:56 -04:00
poll.h Update. 2000-08-21 16:02:48 +00:00
printf.h Hide internal printf functions [BZ #18822/21986] 2017-08-22 07:50:57 -07:00
pthread.h Fix mq_notify pthread_barrier_* namespace (bug 18544). 2015-06-17 20:16:56 +00:00
pty.h Installed header hygiene (BZ#20366): Test of installed headers. 2016-09-23 08:43:56 -04:00
pwd.h Harden putpwent, putgrent, putspent, putspent against injection [BZ #18724] 2015-10-02 11:34:13 +02:00
regex.h First steps to get conformtest fully working 2012-02-25 23:18:39 -05:00
resolv.h resolv: Introduce struct resolv_context [BZ #21668] 2017-07-03 20:52:59 +02:00
rounding-mode.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
sched.h Clean pthread functions namespaces for C11 threads 2017-06-23 17:38:17 -03:00
scratch_buffer.h scratch_buffer: use union for internal buffer 2017-09-25 18:04:22 -07:00
search.h Fix sem_* tdelete, tfind, tsearch, twalk namespace (bug 18536). 2015-06-17 20:11:58 +00:00
set-hooks.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
setjmp.h Move ____longjmp_chk prototype to include/setjmp.h 2017-08-20 06:30:46 -07:00
sgtty.h
shadow.h Installed header hygiene (BZ#20366): Test of installed headers. 2016-09-23 08:43:56 -04:00
shlib-compat.h Fix tests that are testing obsoleted functionality 2017-09-05 12:24:00 -07:00
signal.h Consolidate remaning non cancellable definitions 2017-08-23 10:47:03 -03:00
spawn.h Update. 2000-10-01 19:15:29 +00:00
stab.h
stackinfo.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
stap-probe.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
stdc-predef.h Bug 21533: Update to Unicode 10.0.0 2017-06-22 17:02:55 +02:00
stdio_ext.h Installed header hygiene (BZ#20366): Test of installed headers. 2016-09-23 08:43:56 -04:00
stdio.h Mark internal functions with attribute_hidden [BZ #18822] 2017-10-01 15:07:23 -07:00
stdlib.h Mark internal stdlib functions with attribute_hidden [BZ #18822] 2017-10-01 14:34:54 -07:00
string.h Remove bits/string.h. 2017-06-20 08:21:24 -04:00
strings.h
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
sysexits.h
syslog.h
tar.h
termios.h Clean pthread functions namespaces for C11 threads 2017-06-23 17:38:17 -03:00
tgmath.h
time.h Mark internal functions with attribute_hidden [BZ #18822] 2017-10-01 15:07:23 -07:00
ttyent.h Installed header hygiene (BZ#20366): Test of installed headers. 2016-09-23 08:43:56 -04:00
uchar.h First steps to get conformtest fully working 2012-02-25 23:18:39 -05:00
ucontext.h
ulimit.h First steps to get conformtest fully working 2012-02-25 23:18:39 -05:00
unistd.h hurd: Fix revoke' symbol exposition from unlockpt' 2017-09-28 00:49:05 +02:00
utime.h First steps to get conformtest fully working 2012-02-25 23:18:39 -05:00
utmp.h Installed header hygiene (BZ#20366): Test of installed headers. 2016-09-23 08:43:56 -04:00
values.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
wchar.h Use locale_t, not __locale_t, throughout glibc 2017-06-20 20:30:06 -04:00
wctype.h Remove __need macros from stdio.h and wchar.h. 2017-06-08 13:58:17 -04:00
wordexp.h First steps to get conformtest fully working 2012-02-25 23:18:39 -05:00