glibc/locale
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
..
bits Rename xlocale.h to bits/types/__locale_t.h. 2017-06-20 20:28:11 -04:00
programs Consistently use uintN_t not u_intN_t everywhere. 2017-08-07 19:55:34 +00:00
broken_cur_max.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
C_name.c
C-address.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
C-collate.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
C-ctype.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
C-identification.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
C-measurement.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
C-messages.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
C-monetary.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
C-name.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
C-numeric.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
C-paper.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
C-telephone.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
C-time.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
C-translit.h Regenerate locale/C-translit.h. 2015-12-09 22:24:26 -05:00
C-translit.h.in Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
categories.def Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
coll-lookup.c iconv, intl, locale, wcsmbs: Remove internal_function 2017-08-31 15:59:06 +02:00
coll-lookup.h Mark internal functions with attribute_hidden [BZ #18822] 2017-10-01 15:07:23 -07:00
duplocale.c Use locale_t, not __locale_t, throughout glibc 2017-06-20 20:30:06 -04:00
elem-hash.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
findlocale.c iconv, intl, locale, wcsmbs: Remove internal_function 2017-08-31 15:59:06 +02:00
freelocale.c Use locale_t, not __locale_t, throughout glibc 2017-06-20 20:30:06 -04:00
gen-translit.pl Make shebang interpreter directives consistent 2016-01-07 04:03:21 -05:00
global-locale.c Use locale_t, not __locale_t, throughout glibc 2017-06-20 20:30:06 -04:00
hashval.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
indigits.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
indigitswc.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
iso-639.def Finish change from “Bengali” to “Bangla” 2017-09-09 12:41:54 +02:00
iso-3166.def Fix typos in 3166.def. 2013-10-04 18:51:42 -04:00
iso-4217.def localedata: CLDRv29: update LC_MONETARY int_curr_symbol & currency_symbol 2016-04-15 13:42:29 -04:00
langinfo.h Use locale_t, not __locale_t, throughout glibc 2017-06-20 20:30:06 -04:00
lc-address.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
lc-collate.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
lc-ctype.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
lc-identification.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
lc-measurement.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
lc-messages.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
lc-monetary.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
lc-name.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
lc-numeric.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
lc-paper.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
lc-telephone.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
lc-time.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
loadarchive.c iconv, intl, locale, wcsmbs: Remove internal_function 2017-08-31 15:59:06 +02:00
loadlocale.c iconv, intl, locale, wcsmbs: Remove internal_function 2017-08-31 15:59:06 +02:00
locale.h Use locale_t, not __locale_t, throughout glibc 2017-06-20 20:30:06 -04:00
localeconv.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
localeinfo.h iconv, intl, locale, wcsmbs: Remove internal_function 2017-08-31 15:59:06 +02:00
localename.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
locarchive.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
Makefile Rename xlocale.h to bits/types/__locale_t.h. 2017-06-20 20:28:11 -04:00
mb_cur_max.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
newlocale.c Use locale_t, not __locale_t, throughout glibc 2017-06-20 20:30:06 -04:00
nl_langinfo_l.c Use locale_t, not __locale_t, throughout glibc 2017-06-20 20:30:06 -04:00
nl_langinfo.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
outdigits.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
outdigitswc.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
setlocale.c Remove the str(n)dup inlines from string/bits/string2.h. Although inlining 2017-03-13 18:45:42 +00:00
strlen-hash.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
SYS_libc.c
tst-C-locale.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
tst-duplocale.c
tst-locname.c
uselocale.c Use locale_t, not __locale_t, throughout glibc 2017-06-20 20:30:06 -04:00
Versions
weight.h Narrowing the visibility of libc-internal.h even further. 2017-03-01 20:33:46 -05:00
weightwc.h Narrowing the visibility of libc-internal.h even further. 2017-03-01 20:33:46 -05:00
xlocale.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00