about summary refs log tree commit diff
Commit message (Collapse)AuthorAgeFilesLines
* fix gamma symbol for static linking and new targetsSzabolcs Nagy2017-10-024-0/+28
| | | | | | | | | | The lgamma compat code is no longer built for !LIBM_SVID_COMPAT targets, but the legacy gamma, gammaf and gammal symbols should be still defined, so make them aliases to the non-compat lgamma code. * math/w_lgamma.c: New file. * math/w_lgammaf.c: New file. * math/w_lgammal.c: New file.
* Do not wrap logf, log2f and powfSzabolcs Nagy2017-10-0213-6/+45
| | | | | | | | | | | | | | | | | | The new generic logf, log2f and powf code don't need wrappers any more, they set errno inline so only use the wrappers on targets that need it. * sysdeps/ieee754/flt-32/e_log2f.c (__log2f): Define without wrapper. * sysdeps/ieee754/flt-32/e_logf.c (__logf): Likewise * sysdeps/ieee754/flt-32/e_powf.c (__powf): Likewise * sysdeps/ieee754/flt-32/w_log2f.c: New file. * sysdeps/ieee754/flt-32/w_logf.c: New file. * sysdeps/ieee754/flt-32/w_powf.c: New file. * sysdeps/i386/fpu/w_log2f.c: New file. * sysdeps/i386/fpu/w_logf.c: New file. * sysdeps/i386/fpu/w_powf.c: New file. * sysdeps/m68k/m680x0/fpu/w_log2f.c: New file. * sysdeps/m68k/m680x0/fpu/w_logf.c: New file. * sysdeps/m68k/m680x0/fpu/w_powf.c: New file.
* Do not wrap expf and exp2fSzabolcs Nagy2017-10-0214-8/+50
| | | | | | | | | | | | | | | | | | | | | | | | | The new generic expf and exp2f code don't need wrappers any more, they set errno inline, so only use the wrappers on targets that need it. (If the wrapper is needed, then the top level wrapper code is included, otherwise empty w_exp*f.c is used to suppress the wrapper.) A powerpc64 expf implementation includes the expf c code directly which needed some changes. * sysdeps/ieee754/flt-32/e_exp2f.c (__exp2f): Define without wrapper. * sysdeps/ieee754/flt-32/e_expf.c (__expf): Likewise * sysdeps/ieee754/flt-32/w_exp2f.c: New file. * sysdeps/ieee754/flt-32/w_expf.c: New file. * sysdeps/powerpc/powerpc64/fpu/multiarch/e_expf-ppc64.c: Update for the new expf code. * sysdeps/powerpc/powerpc64/fpu/multiarch/w_expf.c: New file. * sysdeps/powerpc/powerpc64/power8/fpu/w_expf.c: New file. * sysdeps/m68k/m680x0/fpu/w_exp2f.c: New file. * sysdeps/m68k/m680x0/fpu/w_expf.c: New file. * sysdeps/i386/fpu/w_exp2f.c: New file. * sysdeps/i386/fpu/w_expf.c: New file. * sysdeps/i386/i686/fpu/multiarch/w_expf.c: New file. * sysdeps/x86_64/fpu/w_expf.c: New file.
* New symbol version for logf, log2f and powf without SVID compatSzabolcs Nagy2017-10-0237-14/+178
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch changes the logf, log2f and powf error handling semantics to only set errno accoring to POSIX rules. New symbol version is introduced at GLIBC_2.27. The old wrappers are kept for compat symbols. ia64 needed assembly change to have the new and compat versioned symbol map to the same function. All linux libm abilists are updated. * math/Versions (logf): New libm symbol at GLIBC_2.27. (log2f): Likewise. (powf): Likewise. * math/w_log2f.c: New file. * math/w_logf.c: New file. * math/w_powf.c: New file. * math/w_log2f_compat.c (__log2f_compat): For compat symbol only. * math/w_logf_compat.c (__logf_compat): Likewise. * math/w_powf_compat.c (__powf_compat): Likewise. * sysdeps/ia64/fpu/e_log2f.S: Add versioned symbols. * sysdeps/ia64/fpu/e_logf.S: Likewise. * sysdeps/ia64/fpu/e_powf.S: Likewise. * sysdeps/unix/sysv/linux/aarch64/libm.abilist: Update. * sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise.
* powerpc: Optimize memrchr for power8Rajalakshmi Srinivasaraghavan2017-10-026-3/+380
| | | | | | | Vectorized loops are used for sizes greater than 32B to improve performance over power7 optimization. This shows as an average of 25% improvement depending on the position of search character. The performance is same for shorter strings.
* Hide internal fadvise64/fallocate64 functions [BZ #18822]H.J. Lu2017-10-013-0/+13
| | | | | | | | | | | | Hide internal fadvise64/fallocate64 functions to allow direct access within libc.so and libc.a without using GOT nor PLT. [BZ #18822] * sysdeps/unix/sysv/linux/posix_fadvise64.c (__posix_fadvise64_l64): Add Add libc_hidden_proto and libc_hidden_def. * sysdeps/unix/sysv/linux/posix_fallocate64.c (__posix_fallocate64_l64): Likewise.
* Hide internal __sched_setaffinity_new function [BZ #18822]H.J. Lu2017-10-012-0/+11
| | | | | | | | | | Hide internal __sched_setaffinity_new function to allow direct access within libc.so and libc.a without using GOT nor PLT. [BZ #18822] * sysdeps/unix/sysv/linux/sched_setaffinity.c (__sched_setaffinity_new): Add libc_hidden_proto and libc_hidden_def.
* Hide internal __glob64 function [BZ #18822]H.J. Lu2017-10-013-0/+9
| | | | | | | | | | Hide internal __glob64 function to allow direct access within libc.so and libc.a without using GOT nor PLT. [BZ #18822] * include/glob.h (__glob64): Add libc_hidden_proto. * sysdeps/unix/sysv/linux/glob64.c (__glob64): Add libc_hidden_def.
* Hide internal __new_getrlimit function [BZ #18822]H.J. Lu2017-10-012-1/+8
| | | | | | | | | Hide internal __new_getrlimit function to allow direct access within libc.so and libc.a without using GOT nor PLT. [BZ #18822] * sysdeps/unix/sysv/linux/getrlimit64.c (__new_getrlimit): Add attribute_hidden.
* Hide internal __new_exitfn function [BZ #18822]H.J. Lu2017-10-012-2/+7
| | | | | | | | Hide internal __new_exitfn function to allow direct access within libc.so and libc.a without using GOT nor PLT. [BZ #18822] * stdlib/exit.h (__new_exitfn): Add attribute_hidden.
* Hide internal __moncontrol function [BZ #18822]H.J. Lu2017-10-012-0/+8
| | | | | | | | | Hide internal __moncontrol function to allow direct access within libc.so and libc.a without using GOT nor PLT. [BZ #18822] * mon/gmon.c (__moncontrol): Add libc_hidden_proto and libc_hidden_def.
* Hide internal __libc_print_version function [BZ #18822]H.J. Lu2017-10-012-1/+6
| | | | | | | | Hide internal __libc_print_version function to allow direct access within libc.so and libc.a without using GOT nor PLT. [BZ #18822] * csu/version.c (__libc_print_version): Add attribute_hidden.
* Hide internal __init_misc function [BZ #18822]H.J. Lu2017-10-012-1/+6
| | | | | | | | Hide internal __init_misc function to allow direct access within libc.so and libc.a without using GOT nor PLT. [BZ #18822] * include/libc-internal.h (__init_misc): Add attribute_hidden.
* Hide internal __setfpucw function [BZ #18822]H.J. Lu2017-10-012-1/+6
| | | | | | | | Hide internal __setfpucw function to allow direct access within libc.so and libc.a without using GOT nor PLT. [BZ #18822] * include/fpu_control.h (__setfpucw): Add attribute_hidden.
* Hide internal __nis_hash function [BZ #18822]H.J. Lu2017-10-012-0/+10
| | | | | | | | Hide internal __nis_hash function to allow direct access within libc.so and libc.a without using GOT nor PLT. [BZ #18822] * nscd/nscd_helper.c (__nis_hash): New prototype.
* Hide internal __tcgetattr function [BZ #18822]H.J. Lu2017-10-015-0/+13
| | | | | | | | | | | | Hide internal __tcgetattr function to allow direct access within libc.so and libc.a without using GOT nor PLT. [BZ #18822] * include/termios.h (__tcgetattr): Add libc_hidden_proto. * sysdeps/unix/bsd/tcgetattr.c (__tcgetattr): Add libc_hidden_def. * sysdeps/unix/sysv/linux/tcgetattr.c (__tcgetattr): Likewise. * termios/tcgetattr.c (__tcgetattr): Likewise.
* Hide internal __setrlimit function [BZ #18822]H.J. Lu2017-10-016-0/+16
| | | | | | | | | | | | Hide internal __setrlimit function to allow direct access within libc.so and libc.a without using GOT nor PLT. [BZ #18822] * include/sys/resource.h (__setrlimit): Add libc_hidden_proto. * resource/setrlimit.c (__setrlimit): Add libc_hidden_def. * sysdeps/mach/hurd/setrlimit.c (__setrlimit): Likewise. * sysdeps/unix/sysv/linux/setrlimit.c (__setrlimit): Likewise. * sysdeps/unix/sysv/linux/setrlimit64.c (__GI___setrlimit): New.
* Hide internal __vstrfmon_l function [BZ #18822]H.J. Lu2017-10-012-1/+7
| | | | | | | | Hide internal __vstrfmon_l function to allow direct access within libc.so and libc.a without using GOT nor PLT. [BZ #18822] * include/monetary.h (__vstrfmon_l): Add attribute_hidden.
* Hide internal __sched_setparam function [BZ #18822]H.J. Lu2017-10-013-0/+8
| | | | | | | | | | | | | Hide internal __sched_setparam function to allow direct access within libc.so and libc.a without using GOT nor PLT. __GI___sched_setparam is defined when sysdeps/unix/syscalls.list is used to generate sched_setparam. Otherwise libc_hidden_def is needed explicitly. [BZ #18822] * include/sched.h (__sched_setparam): Add libc_hidden_proto. * posix/sched_setp.c (__sched_setparam): Add libc_hidden_def.
* Hide internal __hash_string function [BZ #18822]H.J. Lu2017-10-012-1/+7
| | | | | | | | Hide internal __hash_string function to allow direct access within libc.so and libc.a without using GOT nor PLT. [BZ #18822] * intl/hash-string.h (__hash_string): Add attribute_hidden.
* Hide internal __hasmntopt function [BZ #18822]H.J. Lu2017-10-013-0/+8
| | | | | | | | | Hide internal __hasmntopt function to allow direct access within libc.so and libc.a without using GOT nor PLT. [BZ #18822] * include/mntent.h (__hasmntopt): Add libc_hidden_proto. * misc/mntent_r.c (__hasmntopt): Add libc_hidden_def.
* Hide internal __ifreq function [BZ #18822]H.J. Lu2017-10-014-24/+23
| | | | | | | | | | | | Hide internal __ifreq function to allow direct access within libc.so and libc.a without using GOT nor PLT. [BZ #18822] * include/ifreq.h: New file. * sysdeps/generic/ifreq.h (__if_nextreq): Removed. (__ifreq): Likewise. * sysdeps/mach/hurd/ifreq.h (__if_nextreq): Removed. (__ifreq): Likewise.
* Hide internal idna functions [BZ #18822]H.J. Lu2017-10-014-7/+22
| | | | | | | | | | | | | | | Hide internal idna functions to allow direct access within libc.so and libc.a without using GOT nor PLT. [BZ #18822] * include/idna.h: New file. * inet/getnameinfo.c: Include <idna.h> instead of <libidn/idna.h>. (__idna_to_unicode_lzlz): Removed. * sysdeps/posix/getaddrinfo.c: Include <idna.h> instead of <libidn/idna.h>. (__idna_to_ascii_lz): Removed. (__idna_to_unicode_lzlz): Likewise.
* Hide internal __gettextparse function [BZ #18822]H.J. Lu2017-10-013-1/+16
| | | | | | | | | | Hide internal __gettextparse function to allow direct access within libc.so and libc.a without using GOT nor PLT. [BZ #18822] * include/plural-exp.h: New file. * intl/plural-exp.c: Include <plural-exp.h> instead of "plural-exp.h".
* Hide internal __get_sol function [BZ #18822]H.J. Lu2017-10-014-4/+32
| | | | | | | | | | | | | Hide internal __get_sol function to allow direct access within libc.so and libc.a without using GOT nor PLT. [BZ #18822] * sysdeps/unix/sysv/linux/getsourcefilter.c: Include "getsourcefilter.h". * sysdeps/unix/sysv/linux/getsourcefilter.h: New file. * sysdeps/unix/sysv/linux/setsourcefilter.c: Include "getsourcefilter.h". (__get_sol): Removed.
* Move hidden_proto (__dl_iterate_phdr) to include/link.h [BZ #18822]H.J. Lu2017-10-013-1/+8
| | | | | | | | | | __dl_iterate_phdr is hidden and should be accessed directly within libc.so and libc.a without using GOT nor PLT. [BZ #18822] * elf/dl-iteratephdr.c (hidden_proto (__dl_iterate_phdr)): Moved to ... * include/link.h (hidden_proto (__dl_iterate_phdr)): Here.
* Hide internal __bsd_getpt function [BZ #18822]H.J. Lu2017-10-012-1/+7
| | | | | | | | | Hide internal __bsd_getpt function to allow direct access within libc.so and libc.a without using GOT nor PLT. [BZ #18822] * sysdeps/unix/sysv/linux/getpt.c (__bsd_getpt): Add attribute_hidden.
* Hide internal __fopen_maybe_mmap function [BZ #18822]H.J. Lu2017-10-012-1/+6
| | | | | | | | Hide internal __fopen_maybe_mmap function to allow direct access within libc.so and libc.a without using GOT nor PLT. [BZ #18822] * libio/iolibio.h (__fopen_maybe_mmap): Add attribute_hidden.
* Hide internal __tdestroy function [BZ #18822]H.J. Lu2017-10-013-0/+8
| | | | | | | | | Hide internal __tdestroy function to allow direct access within libc.so and libc.a without using GOT nor PLT. [BZ #18822] * include/search.h (__tdestroy): Add libc_hidden_proto. * misc/tsearch.c (__tdestroy): Add libc_hidden_def.
* Hide internal __assert_fail_base function [BZ #18822]H.J. Lu2017-10-012-1/+6
| | | | | | | | Hide internal __assert_fail_base function to allow direct access within libc.so and libc.a without using GOT nor PLT. [BZ #18822] * include/assert.h (__assert_fail_base): Add attribute_hidden.
* Hide internal __sysinfo function [BZ #18822]H.J. Lu2017-10-012-1/+7
| | | | | | | | | Hide internal __sysinfo function to allow direct access within libc.so and libc.a without using GOT nor PLT. [BZ #18822] * sysdeps/unix/sysv/linux/include/sys/sysinfo.h (__sysinfo): Add attribute_hidden.
* Hide internal signal functions [BZ #18822]H.J. Lu2017-10-0115-0/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Hide internal signal functions to allow direct access within libc.so and libc.a without using GOT nor PLT. __GI___kill and __GI___sigaltstack are defined when syscalls.list is used to generate them. Otherwise libc_hidden_def is needed explicitly. [BZ #18822] * include/signal.h (__kill): Add libc_hidden_proto. (__sigblock): Likewise. (__sigprocmask): Likewise. (__sigaltstack): Likewise. * signal/kill.c (__kill): Add libc_hidden_def. * signal/sigblock.c (__sigblock): Likewise. * signal/sigprocmask.c (__sigprocmask): Likewise. * sysdeps/mach/hurd/kill.c (__kill): Likewise. * sysdeps/mach/hurd/sigaltstack.c (__sigaltstack): Likewise. * sysdeps/mach/hurd/sigprocmask.c (__sigprocmask): Likewise. * sysdeps/posix/sigblock.c (__sigblock): Likewise. * sysdeps/unix/sysv/linux/alpha/sigprocmask.c (__sigprocmask): Likewise. * sysdeps/unix/sysv/linux/ia64/sigprocmask.c (__sigprocmask): Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/sigprocmask.c (__sigprocmask): Likewise. * sysdeps/unix/sysv/linux/sigprocmask.c (__sigprocmask): Likewise. * /sysdeps/unix/sysv/linux/sparc/sparc64/sigprocmask.c (__sigprocmask): Likewise. * sysdeps/unix/sysv/linux/x86_64/sigprocmask.c (__sigprocmask): Likewise.
* Hide internal __strsep function [BZ #18822]H.J. Lu2017-10-013-0/+8
| | | | | | | | | Hide internal __strsep function to allow direct access within libc.so and libc.a without using GOT nor PLT. [BZ #18822] * include/string.h (__strsep): Add libc_hidden_proto. * string/strsep.c (__strsep): Add libc_hidden_def.
* Hide __posix_spawn_file_actions_realloc/__spawni [BZ #18822]H.J. Lu2017-10-012-2/+10
| | | | | | | | | | | Hide internal __posix_spawn_file_actions_realloc and /__spawni functions to allow direct access within libc.so and libc.a without using GOT nor PLT. [BZ #18822] * posix/spawn_int.h (__posix_spawn_file_actions_realloc): Add attribute_hidden. (__spawni): Likewise.
* Hide internal __mremap function [BZ #18822]H.J. Lu2017-10-013-0/+9
| | | | | | | | | | | | | Hide internal __mremap function to allow direct access within libc.so and libc.a without using GOT nor PLT. __GI___mremap is defined when sysdeps/unix/syscalls.list is used to generate mremap. Otherwise libc_hidden_def is needed explicitly. [BZ #18822] * include/sys/mman.h (__mremap): Add libc_hidden_proto. * sysdeps/unix/sysv/linux/m68k/mremap.S (__mremap): Add libc_hidden_def.
* Hide internal __malloc_check_init function [BZ #18822]H.J. Lu2017-10-012-0/+7
| | | | | | | | Hide internal __malloc_check_init function to allow direct access within libc.so and libc.a without using GOT nor PLT. [BZ #18822] * include/malloc.h (__malloc_check_init): Add attribute_hidden.
* Hide internal __ioctl function [BZ #18822]H.J. Lu2017-10-018-0/+19
| | | | | | | | | | | | | | | | | | Hide internal __ioctl function to allow direct access within libc.so and libc.a without using GOT nor PLT. __GI___ioctl is defined when sysdeps/unix/syscalls.list is used to generate ioctl. Otherwise libc_hidden_def is needed explicitly. [BZ #18822] * include/sys/ioctl.h (__ioctl): Add libc_hidden_proto. * misc/ioctl.c (__ioctl): Add libc_hidden_def. * sysdeps/mach/hurd/ioctl.c (__ioctl): Likewise. * sysdeps/unix/sysv/linux/aarch64/ioctl.S (__ioctl): Likewise. * sysdeps/unix/sysv/linux/mips/mips64/n64/ioctl.S (__ioctl): Likewise. * sysdeps/unix/sysv/linux/powerpc/ioctl.c (__ioctl): Likewise. * sysdeps/unix/sysv/linux/tile/tilegx/ioctl.S (__ioctl): Likewise.
* Mark internal intl functions with attribute_hidden [BZ #18822]H.J. Lu2017-10-012-2/+9
| | | | | | | | | Mark internal intl functions with attribute_hidden to allow direct access within libc.so and libc.a without using GOT nor PLT. [BZ #18822] * intl/gettextP.h (__dcngettext): Add attribute_hidden. (__dcigettext): Likewise.
* Hide internal sysinfo functions [BZ #18822]H.J. Lu2017-10-015-1/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | Hide internal sysinfo functions to allow direct access within libc.so and libc.a without using GOT nor PLT. [BZ #18822] * include/sys/sysinfo.h (__get_nprocs_conf): Add libc_hidden_proto. (__get_nprocs): Likewise. (__get_phys_pages): Likewise. (__get_avphys_pages): Likewise. (__get_child_max): Add attribute_hidden. * misc/getsysstats.c (__get_nprocs_conf): Add libc_hidden_def. (__get_nprocs): Likewise. (__get_phys_pages): Likewise. (__get_avphys_pages): Likewise. * sysdeps/mach/getsysstats.c (__get_nprocs_conf): Add libc_hidden_def. (__get_nprocs): Likewise. (__get_phys_pages): Likewise. (__get_avphys_pages): Likewise. * sysdeps/unix/sysv/linux/getsysstats.c (__get_nprocs): Add libc_hidden_def. (__get_nprocs_conf): Likewise. (__get_phys_pages): Likewise. (__get_avphys_pages): Likewise.
* Mark internal netlink functions with attribute_hidden [BZ #18822]H.J. Lu2017-10-012-4/+15
| | | | | | | | | | | | Mark internal netlink functions with attribute_hidden to allow direct access within libc.so and libc.a without using GOT nor PLT. [BZ #18822] * sysdeps/unix/sysv/linux/netlinkaccess.h (__netlink_open): Add attribute_hidden. (__netlink_close): Likewise. (__netlink_free_handle): Likewise. (__netlink_request): Likewise.
* Mark internal rpc functions with attribute_hidden [BZ #18822]H.J. Lu2017-10-012-4/+13
| | | | | | | | | | | | Mark internal rpc functions with attribute_hidden to allow direct access within libc.so and libc.a without using GOT nor PLT. [BZ #18822] * include/rpc/rpc.h (__rpc_thread_variables): Add attribute_hidden. (__rpc_thread_svc_cleanup): Likewise. (__rpc_thread_clnt_cleanup): Likewise. (__rpc_thread_key_cleanup): Likewise.
* Hide __readv and __writev [BZ #18822]H.J. Lu2017-10-018-0/+24
| | | | | | | | | | | | | | | | | Hide internal __readv and __writev functions to allow direct access within libc.so and libc.a without using GOT nor PLT. [BZ #18822] * include/sys/uio.h (__readv): Add libc_hidden_proto. (__writev): Likewise. * misc/readv.c (__readv): Add libc_hidden_def. * misc/writev.c (__writev): Likewise. * sysdeps/posix/readv.c (__readv): Likewise. * sysdeps/posix/writev.c (__writev): Likewise. * sysdeps/unix/sysv/linux/readv.c: Include <sys/uio.h>. (__readv): Likewise. * sysdeps/unix/sysv/linux/writev.c: Include <sys/uio.h>. (__writev): Likewise.
* Hide internal regex functions [BZ #18822]H.J. Lu2017-10-014-1/+20
| | | | | | | | | | | | | | Hide internal regex functions to allow direct access within libc.so and libc.a without using GOT nor PLT. [BZ #18822] * include/regex.h (__re_compile_fastmap): Add attribute_hidden. (__regcomp): Add libc_hidden_proto. (__regexec): Likewise. (__regfree): Likewise. * posix/regcomp.c (__regcomp): Add libc_hidden_def. (__regfree): Likewise. * posix/regexec.c (__regexec): Likewise.
* Mark internal utmp functions with attribute_hidden [BZ #18822]H.J. Lu2017-10-019-3/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | Mark internal utmp functions with attribute_hidden to allow direct access within libc.so and libc.a without using GOT nor PLT. [BZ #18822] * include/utmp.h (__updwtmp): Add libc_hidden_proto. (__getutent): Likewise. (__getutid): Likewise. (__getutline): Likewise. (__pututline): Likewise. (__getutent_r): Likewise. (__getutid_r): Likewise. (__getutline_r): Likewise. (__utmpname): Add attribute_hidden. (__setutent): Likewise. (__endutent): Likewise. * login/getutent.c (__getutent): Add libc_hidden_def. * login/getutent_r.c (__getutent_r): Likewise. (__pututline): Likewise. * login/getutid.c (__getutid): Likewise. * login/getutid_r.c (__getutid_r): Likewise. * login/getutline.c (__getutline): Likewise. * login/getutline_r.c (__getutline_r): Likewise. * login/updwtmp.c (__updwtmp): Likewise.
* Mark internal dirent functions with attribute_hidden [BZ #18822]H.J. Lu2017-10-016-8/+23
| | | | | | | | | | | | | | | | | | | Mark internal dirent functions with attribute_hidden to allow direct access within libc.so and libc.a without using GOT nor PLT. __readdir64 is hidden with libc_hidden_proto and libc_hidden_def since the exported readdir64 is an alias of __readdir64. [BZ #18822] * include/dirent.h (__opendir): Always add attribute_hidden. (__fdopendir): Likewise. (__closedir): Likewise. (__readdir): Likewise. (__readdir64): Add libc_hidden_proto. * sysdeps/mach/hurd/readdir64.c (__readdir64): Add libc_hidden_def. * sysdeps/unix/sysv/linux/i386/readdir64.c (__readdir64): Likewise. * sysdeps/unix/sysv/linux/readdir64.c (__readdir64): Likewise. * sysdeps/unix/sysv/linux/wordsize-64/readdir.c (__GI___readdir64): New alias.
* Mark internal getXXXbyYYY functions with attribute_hidden [BZ #18822]H.J. Lu2017-10-015-14/+44
| | | | | | | | | | | | | | | | | | | | | Mark internal getXXXbyYYY functions with attribute_hidden to allow direct access within libc.so and libc.a without using GOT nor PLT. [BZ #18822] * include/aliases.h (__getaliasbyname_r): Add attribute_hidden. * include/netdb.h (__gethostbyaddr_r): Likewise. (__gethostbyname_r): Likewise. (__gethostbyname2_r): Likewise. (__getnetbyaddr_r): Likewise. (__getnetbyname_r): Likewise. (__getservbyname_r): Likewise. (__getservbyport_r): Likewise. (__getprotobyname_r): Likewise. (__getprotobynumber_r): Likewise. (__getnetgrent_r): Likewise. * include/rpc/netdb.h (__getrpcbyname_r): Likewise. (__getrpcbynumber_r): Likewise. * nss/getXXbyYY.c (INTERNAL (REENTRANT_NAME)): Likewise.
* Mark internal stdio functions with attribute_hidden [BZ #18822]H.J. Lu2017-10-012-9/+22
| | | | | | | | | | | | | | | | Mark internal stdio functions with attribute_hidden to allow direct access within libc.so and libc.a without using GOT nor PLT. [BZ #18822] * include/stdio.h (__fcloseall): Add attribute_hidden. (__getline): Likewise. (__path_search): Likewise. (__gen_tempname): Likewise. (__libc_message): Likewise. (__flockfile): Likewise. (__funlockfile): Likewise. (__fxprintf): Likewise. (__fxprintf_nocancel): Likewise.
* Mark internal gshadow functions with attribute_hidden [BZ #18822]H.J. Lu2017-10-012-2/+10
| | | | | | | | | Mark internal gshadow functions with attribute_hidden to allow direct access within libc.so and libc.a without using GOT nor PLT. [BZ #18822] * include/gshadow.h (__fgetsgent_r): Add attribute_hidden. (__sgetsgent_r): Likewise.
* Mark internal statfs functions with attribute_hidden [BZ #18822]H.J. Lu2017-10-014-9/+31
| | | | | | | | | | | | | | | | Mark internal statfs functions with attribute_hidden to allow direct access within libc.so and libc.a without using GOT nor PLT. [BZ #18822] * include/sys/statfs.h (__fstatfs): Add attribute_hidden. (__statfs64): Likewise. (__fstatfs64): Likewise. * include/sys/statvfs.h (__statvfs64): Likewise. (__fstatvfs64): Likewise. * sysdeps/unix/sysv/linux/pathconf.h (__statfs_link_max): Likewise. (__statfs_filesize_max): Likewise. (__statfs_symlinks): Likewise. (__statfs_chown_restricted): Likewise.
* Mark internal time functions with attribute_hidden [BZ #18822]H.J. Lu2017-10-012-11/+30
| | | | | | | | | | | | | | | | | | Mark internal time functions with attribute_hidden to allow direct access within libc.so and libc.a without using GOT nor PLT. [BZ #18822] * include/time.h (__tzstring): Add attribute_hidden. (__tzfile_read): Likewise. (__tzfile_compute): Likewise. (__tzfile_default): Likewise. (__tzset_parse_tz): Likewise. (__offtime): Likewise. (__asctime_r): Likewise. (__tzset): Likewise. (__tz_convert): Likewise. (__getdate_r): Likewise. (__getclktck): Likewise.