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
..
2017-04-04 20:56:23 +02:00
2017-08-16 20:33:59 +00:00
2017-01-01 00:14:16 +00:00
2014-12-16 18:18:49 +00:00
2016-09-23 08:43:56 -04:00
2017-01-01 00:14:16 +00:00
2017-08-31 15:59:02 +02:00
2017-03-21 15:14:27 +01:00
2017-09-04 13:38:51 -07:00
2012-02-25 23:18:39 -05:00
2016-09-23 08:43:56 -04:00
2017-06-21 22:43:57 +02:00
2016-09-23 08:43:56 -04:00
2017-08-18 09:31:33 -07:00
2014-11-24 15:03:45 +05:30
2017-06-06 09:41:56 +02:00
2017-01-01 00:14:16 +00:00
2017-05-15 10:23:28 -03:00
2014-12-11 21:41:30 +00:00
2016-10-28 22:40:16 -04:00
2015-09-03 20:33:46 +00:00
2017-09-28 00:49:59 +02:00
2017-10-01 15:07:23 -07:00
2017-09-26 16:53:44 -07:00
2016-09-23 08:43:56 -04:00
2016-09-23 08:43:56 -04:00
2016-09-23 08:43:56 -04:00
2017-06-14 08:14:34 -04:00
2016-09-23 08:43:56 -04:00
2017-08-23 10:47:03 -03:00
2017-08-02 18:27:16 +05:30
2015-09-15 20:36:50 +00:00
2017-06-23 10:30:04 -03:00
2014-12-11 21:41:30 +00:00
2012-02-25 23:18:39 -05:00
2016-09-23 08:43:56 -04:00
2017-04-07 07:45:53 -04:00
2012-02-25 23:18:39 -05:00
2017-06-12 14:48:53 -03:00
2017-09-25 18:04:16 -07:00
2016-04-29 22:18:21 -04:00
2012-02-25 23:18:39 -05:00
2016-09-23 08:43:56 -04:00
2017-09-28 01:05:18 +02:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2012-02-26 21:32:56 -05:00
2017-02-25 09:59:46 -05:00
2017-08-21 05:32:39 -07:00
2017-03-01 20:33:46 -05:00
2017-08-31 18:52:00 +02:00
2016-09-23 08:43:56 -04:00
2017-05-11 19:14:11 -04:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-05-20 19:01:46 -04:00
2017-05-20 19:01:46 -04:00
2012-02-25 23:18:39 -05:00
2016-09-23 08:43:56 -04:00
2017-09-14 22:28:53 +00:00
2016-09-23 08:43:56 -04:00
2016-09-23 08:43:56 -04:00
2017-06-20 20:30:06 -04:00
2015-06-17 20:19:04 +00:00
2017-05-04 20:36:42 +00:00
2017-08-31 15:59:06 +02:00
2016-09-23 08:43:56 -04:00
2017-08-22 07:50:57 -07:00
2015-06-17 20:16:56 +00:00
2016-09-23 08:43:56 -04:00
2015-10-02 11:34:13 +02:00
2012-02-25 23:18:39 -05:00
2017-07-03 20:52:59 +02:00
2017-01-01 00:14:16 +00:00
2017-06-23 17:38:17 -03:00
2017-09-25 18:04:22 -07:00
2015-06-17 20:11:58 +00:00
2017-01-01 00:14:16 +00:00
2017-08-20 06:30:46 -07:00
2016-09-23 08:43:56 -04:00
2017-09-05 12:24:00 -07:00
2017-08-23 10:47:03 -03:00
2017-01-01 00:14:16 +00:00
2017-01-01 00:14:16 +00:00
2017-06-22 17:02:55 +02:00
2016-09-23 08:43:56 -04:00
2017-10-01 15:07:23 -07:00
2017-10-01 14:34:54 -07:00
2017-06-20 08:21:24 -04:00
2012-02-25 23:18:39 -05:00
2017-06-23 17:38:17 -03:00
2017-10-01 15:07:23 -07:00
2016-09-23 08:43:56 -04:00
2012-02-25 23:18:39 -05:00
2012-02-25 23:18:39 -05:00
2017-09-28 00:49:05 +02:00
2012-02-25 23:18:39 -05:00
2016-09-23 08:43:56 -04:00
2017-01-01 00:14:16 +00:00
2017-06-20 20:30:06 -04:00
2017-06-08 13:58:17 -04:00
2012-02-25 23:18:39 -05:00