This is the mail archive of the glibc-bugs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug libc/18822] Internal functions are called via PLT


https://sourceware.org/bugzilla/show_bug.cgi?id=18822

--- Comment #14 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot gnu.org> ---
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, hjl/pr18822 has been created
        at  bdc7f649114e96f0405bc0b9475820a8e53b2b4c (commit)

- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=bdc7f649114e96f0405bc0b9475820a8e53b2b4c

commit bdc7f649114e96f0405bc0b9475820a8e53b2b4c
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri Aug 18 05:43:12 2017 -0700

    Mark internal unistd.h functions with attribute_hidden [BZ #18822]

    Mark internal unistd.h functions with attribute_hidden to allow direct
    access to them within libc.so and libc.a without using GOT nor PLT.

        [BZ #18822]
        * include/unistd.h (__access): Add attribute_hidden.
        (__lseek64): Likewise.
        (__libc_pread64): Likewise.
        (__pipe2): Likewise.
        (): Likewise.
        (): Likewise.
        (): Likewise.
        (): Likewise.
        (): Likewise.
        (): Likewise.
        (): Likewise.
        (): Likewise.
        (): Likewise.
        (): Likewise.
        (): Likewise.
        (): Likewise.
        (): Likewise.
        (): Likewise.
        (): Likewise.
        (): Likewise.
        (): Likewise.
        (): Likewise.
        (): Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=39d080565037294558df92ffd596cefa9b28604e

commit 39d080565037294558df92ffd596cefa9b28604e
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri Aug 18 05:19:36 2017 -0700

    Mark internal argz functions with attribute_hidden [BZ #18822]

    Mark internal argz functions with attribute_hidden to allow direct
    access to them within libc.so and libc.a without using GOT nor PLT.

        [BZ #18822]
        * include/argz.h (__argz_add): Add attribute_hidden.
        (__argz_add_sep): Likewise.
        (__argz_append): Likewise.
        (__argz_create_sep): Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=c75a94449305a8ef4d4fea6f5e2bad3170be6172

commit c75a94449305a8ef4d4fea6f5e2bad3170be6172
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu Aug 17 13:17:12 2017 -0700

    Mark internal argp functions with attribute_hidden [BZ #18822]

    Mark internal argp functions with attribute_hidden to allow direct
    access to them within libc.so and libc.a without using GOT nor PLT.

        [BZ #18822]
        * argp/argp-fmtstream.c: Include <argp-fmtstream.h>.
        * argp/argp-fs-xinl.c: Likewise.
        * argp/argp-help.c: Include <argp.h> and <argp-fmtstream.h>.
        * argp/argp-parse.c: Include <argp.h>.
        * argp/argp-xinl.c: Likewise.
        * include/argp-fmtstream.h: New file.
        * include/argp.h (__argp_error): Add attribute_hidden.
        (__argp_failure): Likewise.
        (__argp_input): Likewise.
        (__argp_state_help): Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=2546cb10b5d76beb7b29a607b902ff63b279fd62

commit 2546cb10b5d76beb7b29a607b902ff63b279fd62
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu Aug 17 12:48:28 2017 -0700

    Mark ____wcsto*_l_internal functions with attribute_hidden [BZ #18822]

    Mark ____wcsto*_l_internal functions with attribute_hidden to allow
    direct access to them within libc.so and libc.a without using GOT nor
    PLT.

        [BZ #18822]
        * include/wchar.h (____wcstof_l_internal): New prototype.
        (____wcstod_l_internal): Likewise.
        (____wcstold_l_internal): Likewise.
        (____wcstol_l_internal): Likewise.
        (____wcstoul_l_internal): Likewise.
        (____wcstoll_l_internal): Likewise.
        (____wcstoull_l_internal): Likewise.
        (____wcstof128_l_internal): Likewise.
        * sysdeps/ieee754/float128/wcstof128.c
        (____wcstof128_l_internal): Removed.
        * sysdeps/ieee754/float128/wcstof128_l.c
        (____wcstof128_l_internal): Likewise.
        * wcsmbs/wcstod.c (____wcstod_l_internal): Likewise.
        * wcsmbs/wcstod_l.c (____wcstod_l_internal): Likewise.
        * wcsmbs/wcstof.c (____wcstof_l_internal): Likewise.
        * wcsmbs/wcstof_l.c (____wcstof_l_internal): Likewise.
        * wcsmbs/wcstol_l.c (____wcstol_l_internal): Likewise.
        * wcsmbs/wcstold.c (____wcstold_l_internal): Likewise.
        * wcsmbs/wcstold_l.c (____wcstold_l_internal): Likewise.
        * wcsmbs/wcstoll_l.c (____wcstoll_l_internal): Likewise.
        * wcsmbs/wcstoul_l.c (____wcstoul_l_internal): Likewise.
        * wcsmbs/wcstoull_l.c (____wcstoull_l_internal): Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=56b39a518feb68b045657647938b4a098f742ed3

commit 56b39a518feb68b045657647938b4a098f742ed3
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu Aug 17 12:35:02 2017 -0700

    Mark __internal_statvfs[64] with attribute_hidden [BZ #18822]

    Mark __internal_statvfs[64] with attribute_hidden to allow direct access
    to them within libc.so and libc.a without using GOT nor PLT.

        [BZ #18822]
        * include/sys/statvfs.h (__internal_statvfs): New prototype.
        (__internal_statvfs64): Likewise.
        * sysdeps/unix/sysv/linux/fstatvfs.c (__internal_statvfs):
        Removed.
        * sysdeps/unix/sysv/linux/fstatvfs64.c (__internal_statvfs64):
        Likewise.
        * sysdeps/unix/sysv/linux/statvfs.c (__internal_statvfs):
        Likewise.
        * sysdeps/unix/sysv/linux/statvfs64.c (__internal_statvfs64):
        Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=b37dedb40a3788f219307fca8ea1dc5eafb8df3a

commit b37dedb40a3788f219307fca8ea1dc5eafb8df3a
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu Aug 17 12:26:17 2017 -0700

    Mark 3 *_internal functions with attribute_hidden [BZ #18822]

    Mark __ptsname_internal, __mktime_internal and __fopen_internal with
    attribute_hidden to allow direct access to them within libc.so and
    libc.a without using GOT nor PLT.

        [BZ #18822]
        * include/stdlib.h (__ptsname_internal): Add attribute_hidden.
        * include/time.h (__mktime_internal): Likewise.
        * libio/iolibio.h (__fopen_internal): Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=695abbdf691d7742b17ab4801c4ffa849cc31978

commit 695abbdf691d7742b17ab4801c4ffa849cc31978
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Aug 13 07:00:22 2017 -0700

    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_symbol_value): Likewise.
        (_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.

-----------------------------------------------------------------------

-- 
You are receiving this mail because:
You are on the CC list for the bug.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]