about summary refs log tree commit diff
path: root/elf
Commit message (Collapse)AuthorAgeFilesLines
* * elf/Makefile (ld.so): Adjust the sed script to insert _begin in toUlrich Drepper2009-01-311-2/+2
| | | | newer linker scripts.
* * sysdeps/generic/dl-osinfo.h (_dl_setup_stack_chk_guard): TakeUlrich Drepper2009-01-113-11/+22
| | | | | | | | | | | | | | | | | | | one parameter. If non-NULL use it to initialize return value. (_dl_setup_pointer_guard): New function. * sysdeps/unix/sysv/linux/dl-osinfo.h: Likewise. * sysdeps/generic/ldsodefs.h: Declare _dl_random. * elf/rtld.c (security_init): Pass _dl_random to _dl_setup_stack_chk_guard. Call _dl_setup_pointer_guard to initialize pointer_chk_guard. * elf/dl-sysdep.c (_dl_random): New variable. (_dl_sysdep_start): Handle AT_RANDOM. (_dl_show_auxv): Likewise. * elf/dl-support.c (_dl_random): New variable. (_dl_aux_init): Handle AT_RANDOM. * csu/libc-start.c [!SHARED] (libc_start_main): Pass _dl_random to _dl_setup_stack_chk_guard. * elf/elf.h (AT_RANDOM): Define AT_BASE_PLATFORM and AT_RANDOM.
* (AT_RANDOM): Define AT_BASE_PLATFORM and AT_RANDOM.Ulrich Drepper2009-01-111-0/+4
|
* * posix/getconf.c: Update copyright year.Ulrich Drepper2009-01-023-6/+6
| | | | | | | | | | | | | | | | | | * nss/getent.c: Likewise. * iconv/iconvconfig.c: Likewise. * iconv/iconv_prog.c: Likewise. * elf/ldconfig.c: Likewise. * catgets/gencat.c: Likewise. * csu/version.c: Likewise. * elf/ldd.bash.in: Likewise. * elf/sprof.c (print_version): Likewise. * locale/programs/locale.c: Likewise. * locale/programs/localedef.c: Likewise. * nscd/nscd.c (print_version): Likewise. * debug/xtrace.sh: Likewise. * malloc/memusage.sh: Likewise. * malloc/mtrace.pl: Likewise. * debug/catchsegv.sh: Likewise.
* * elf/elf.h (NT_386_IOPERM): New macro.Roland McGrath2008-11-261-0/+2
| | | | (NT_PPC_VSX): New macro.
* * elf/dl-tls.c (__tls_get_addr): After calling _dl_update_slotinfo cvs/fedora-glibc-20081031T2102Ulrich Drepper2008-10-314-2/+71
| | | | | | | refetch dtv, as it might have changed. * elf/Makefile: Add rules to build and run tst-tls18. * elf/tst-tls18.c: New test. * elf/tst-tlsmod18a.c: New file.
* * elf/Makefile: Add rules to build and run tst-tls17. cvs/fedora-glibc-20081019T1815Ulrich Drepper2008-10-174-1/+77
| | | | | | * elf/tst-tls17.c: New test. * elf/tst-tlsmod17a.c: New file. * elf/tst-tlsmod17b.c: Likewise.
* * stdlib/divmod_1.c: Use correct type for dummy variable.Ulrich Drepper2008-10-171-1/+1
| | | | * stdlib/mod_1.c: Likewise.
* (_dl_update_slotinfo): Copy all of the initial DTV.Ulrich Drepper2008-10-161-1/+1
|
* 2008-10-01 Mark Shinwell <shinwell@codesourcery.com>Roland McGrath2008-10-011-2/+11
| | | | | | | | | | * elf/elf.h (STO_MIPS_PLT): New. (R_MIPS_COPY): New. (R_MIPS_JUMP_SLOT): New. (R_MIPS_NUM): Redefine to 128. (DT_MIPS_PLTGOT): New. (DT_MIPS_RWPLT): New. (DT_MIPS_NUM): Redefine to 0x35.
* * Makefile (check-data): Check data directory in add-ons.Roland McGrath2008-08-191-2/+2
| | | | * elf/Makefile (check-data): Likewise.
* * sysdeps/unix/sysv/linux/dl-origin.c (_dl_get_origin): Undo allUlrich Drepper2008-08-143-12/+0
| | | | | | | | | | change related to AT_EXECFN. We cannot use that string. * sysdeps/generic/ldsodefs.h (struct rtld_global_ro): Remove _dl_execfn member. * elf/dl-support.c: Remove _dl_execfn variable. (_dl_aux_init): Remove handling of AT_EXECFN. * elf/dl-sysdep.c (_dl_sysdep_start): Remove handling of AT_EXECFN. * elf/rtld.c (process_envvars): Remove use of __ASSUME_AT_EXECFN.
* * elf/Makefile (check-localplt.out): Also check libresolv andUlrich Drepper2008-08-011-0/+2
| | | | libcrypt.
* 2008-07-28 Roland McGrath <roland@redhat.com>Roland McGrath2008-07-291-0/+1
| | | | * elf/dl-sysdep.c (_dl_show_auxv): Add AT_EXECFN to the table.
* * Makeconfig: Define pie-ccflag and PIE-ccflag variables.Ulrich Drepper2008-07-262-3/+3
| | | | | | * elf/Makefile: Use pie-ccflag variable. * nscd/Makefile: Likewise. * sysdeps/sparc/Makefile: Set $(pie-ccflag) to -fPIE.
* * sunrpc/clnt_udp.c (__libc_clntudp_bufcreate): Namespace cleanup.Ulrich Drepper2008-07-262-12/+7
| | | | | | | | | * elf/dl-load.c (local_strdup): Remove inline. (_dl_map_object_from_fd): Don't allocate l_symbolic_searchlist.r_list. * elf/dl-object.c (_dl_new_object): Allocate symbolic searchlist as part of the object. * sysdeps/unix/sysv/linux/dl-origin.c: Add const to avoid warning.
* * elf/elf.h: Define AT_EXECFN.Ulrich Drepper2008-07-244-1/+15
| | | | | | | | | | | | | | | | * elf/rtld.c [!__ASSUME_AT_EXECFN] (process_envvars): Don't handle LD_ORIGIN_PATH. * elf/dl-sysdep.c (_dl_sysdep_start): Handle AT_EXECFN. * elf/dl-support.c: Define _dl_execfn. Don't define _dl_origin_path if __ASSUME_AT_EXECFN is defined. (_dl_aux_init): Handle AT_EXECFN. * sysdeps/unix/sysv/linux/kernel-features.h: Define __ASSUME_AT_EXECFN for 2.6.27 and up. * sysdeps/generic/ldsodefs.h (rtld_global_ro): Add _dl_execfn. Don't define _dl_origin_path if __ASSUME_AT_EXECFN is defined. * sysdeps/unix/sysv/linux/dl-origin.c (_dl_get_origin): Use _dl_execfn if available and avoid compatibility code if __ASSUME_AT_EXECFN is defined.
* * shlib-versions (sparc.*-.*-.*, sparc64.*-.*-.*): Add ABI lines.Roland McGrath2008-05-221-4/+8
| | | | | | | | | | | | * Makefile (check-data): Use $(abi-name) before other guesses. Look in $(add-ons) dirs before scripts/data/. * elf/Makefile (check-data): Likewise. * scripts/soversions.awk: Grok ABI line. * Makeconfig ($(common-objpfx)soversions.mk): Likewise. Emit definition for abi-name variable. if [__USE_BSD].
* * elf/soinit.c (__EH_FRAME_BEGIN__): Remove.Jakub Jelinek2008-05-191-4/+0
| | | | | | 2008-05-19 Jakub Jelinek <jakub@redhat.com> * elf/soinit.c (__EH_FRAME_BEGIN__): Remove.
* Introduce TLS descriptors for i386 and x86_64.Ulrich Drepper2008-05-135-28/+229
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * include/inline-hashtab.h: New file, copied from 2005's libiberty, with fix for memory leak imported afterwards by Glauber de Oliveira Costa. * elf/tlsdeschtab.h: New file. * elf/dl-reloc.c (_dl_try_allocate_static_tls): Extract from... (_dl_allocate_static_tls): ... here. Rearrange failure path. (CHECK_STATIC_TLS): Move to... * elf/dynamic-link.h: ... this file. (TRY_STATIC_TLS): New macro. * elf/dl-conflict.c (CHECK_STATIC_TLS, TRY_STATIC_TLS): Override. * elf/elf.h (R_386_TLS_GOTDESC, R_386_TLS_DESC_CALL, R_386_TLS_DESC): Define. (R_X86_64_PC64, R_X86_GOTOFF64, R_X86_64_GOTPC32): Merge from binutils. (R_X86_64_GOTPC32_TLSDESC, R_X86_64_TLSDESC_CALL, R_X86_64_TLSDESC): Define. (R_386_NUM, R_X86_64_NUM): Adjust. * sysdeps/i386/Makefile (sysdep-dl-routines, sysdep_routines, systep-rtld-routines): Add tlsdesc and dl-tlsdesc for elf subdir. (gen-as-const-headers): Add tlsdesc.sym to csu subdir. * sysdeps/i386/dl-lookupcfg.h: New file. Introduce _dl_unmap to release tlsdesc_table. * sysdeps/i386/dl-machine.h: Include dl-tlsdesc.h. (elf_machine_type_class): Mark R_386_TLS_DESC as PLT class. (elf_machine_rel): Handle R_386_TLS_DESC. (elf_machine_rela): Likewise. (elf_machine_lazy_rel): Likewise. (elf_machine_lazy_rela): Likewise. * sysdeps/i386/dl-tls.h (struct dl_tls_index): Name it. * sysdeps/i386/dl-tlsdesc.S: New file. * sysdeps/i386/dl-tlsdesc.h: New file. * sysdeps/i386/tlsdesc.c: New file. * sysdeps/i386/tlsdesc.sym: New file. * sysdeps/i386/bits/linkmap.h (struct link_map_machine): Add tlsdesc_table. * sysdeps/x86_64/Makefile (sysdep-dl-routines, sysdep_routines, systep-rtld-routines): Add tlsdesc and dl-tlsdesc for elf subdir. (gen-as-const-headers): Add tlsdesc.sym to csu subdir. * sysdeps/x86_64/dl-lookupcfg.h: New file. Introduce _dl_unmap to release tlsdesc_table. * sysdeps/x86_64/dl-machine.h: Include dl-tlsdesc.h. (elf_machine_runtime_setup): Set up lazy TLSDESC GOT entry. (elf_machine_type_class): Mark R_X86_64_TLSDESC as PLT class. (elf_machine_rel): Handle R_X86_64_TLSDESC. (elf_machine_rela): Likewise. (elf_machine_lazy_rel): Likewise. * sysdeps/x86_64/dl-tls.h (struct dl_tls_index): Name it. (__tls_get_addr): Do not declare for non-shared compiles. * sysdeps/x86_64/dl-tlsdesc.S: New file. * sysdeps/x86_64/dl-tlsdesc.h: New file. * sysdeps/x86_64/tlsdesc.c: New file. * sysdeps/x86_64/tlsdesc.sym: New file. * sysdeps/x86_64/bits/linkmap.h (struct link_map_machine): Add tlsdesc_table for both 32- and 64-bit structs.
* * elf/dl-tls.c (__tls_get_addr): Optimize by moving slow path inUlrich Drepper2008-05-121-43/+56
| | | | its own function. This reduces the frame setup costs and more.
* * elf/tls-macros.h (__TLS_GET_ADDR): Define according to the ABIUlrich Drepper2008-04-111-2/+7
| | | | | | in use. (TLS_LD): Use __TLS_GET_ADDR instead of .__tls_get_addr. (TLS_GD): Likewise.
* * elf/Makefile (tests): Substitute tests-vis-yes here.Ulrich Drepper2008-04-101-7/+5
| | | | | (tests-vis-yes): Delete. (modules-name, modules-vis-yes): Similarly.
* Remove useless "if" before "free".Ulrich Drepper2008-03-191-2/+1
|
* * sysdeps/unix/sysv/linux/dl-sysdep.c: Avoid unnecessary code forUlrich Drepper2008-03-081-3/+4
| | | | | | .o file. * elf/Makefile (routines): Add dl-sysdep. (elide-routines.os): Likewise.
* [BZ #5786]Ulrich Drepper2008-03-083-3/+6
| | | | | | | | | | | | | * elf/dl-sysdep.c: Undefine ROUND after use. * sysdeps/generic/ldsodefs.h [HAVE_DL_DISCOVER_OSVERSION] (struct rtld_global_ro): Add _dl_tls_get_addr_soft element. * elf/rtld.c (rtld_global_ro): Initialize _dl_discover_osversion. * sysdeps/unix/sysv/linux/dl-osinfo.h: Move _dl_discover_osversion to ... * sysdeps/unix/sysv/linux/dl-sysdep.c: ...here. * sysdeps/unix/sysv/linux/dl-sysdep.h: Declare _dl_discover_osversion if necessary. * sysdeps/unix/sysv/linux/sysconf.c: Handle _SC_ARG_MAX here.
* * sysdeps/generic/ldsodefs.h (struct rtld_global_ro): AddUlrich Drepper2008-03-084-7/+7
| | | | | | | | | | | _dl_tls_get_addr_soft element. * elf/rtld.c (rtld_global_ro): Initialize _dl_tls_get_addr_soft. * elf/Versions (ld): Don't export _dl_tls_get_addr_soft. * dlfcn/dlinfo.c (dlinfo_doit): Access dl_tls_get_addr_soft through GLRO. * elf/dl-iteratephdr.c (__dl_iterate_phdr): Likewise. * elf/dl-tls.c (_dl_tls_get_addr_soft): Use attribute_hidden instead of internal_function.
* 2008-02-19 Roland McGrath <roland@redhat.com>Roland McGrath2008-02-201-0/+1
| | | | * elf/elf.h (SHT_GNU_ATTRIBUTES): New macro.
* * elf/elf.h (NT_PPC_SPE): New macro.Roland McGrath2008-02-091-0/+1
|
* 2008-01-30 Roland McGrath <roland@redhat.com>Roland McGrath2008-01-301-1/+3
| | | | * elf/elf.h (NT_386_TLS): New macro.
* * Makeconfig (sysd-rules-patterns): New variable.Roland McGrath2008-01-301-14/+8
| | | | | | | | | * Makerules ($(common-objpfx)sysd-rules): Drive the loop from that. (check-inhibit-asm): New canned sequence, replaces ... (open-check-inhibit-asm, close-check-inhibit-asm): ... these, removed. * elf/rtld-Rules ($(objpfx)rtld-%.os): Use $(rtld-CPPFLAGS) in commands. (rtld-CPPFLAGS): Renamed from CPPFLAGS-rtld. (CFLAGS-rtld): Variable removed.
* * include/link.h (FORCED_DYNAMIC_TLS_OFFSET): Define.Ulrich Drepper2008-01-177-10/+115
| | | | | | | | | | | | | * elf/dl-close.c (_dl_close): Check for it. * elf/dl-reloc.c (CHECK_STATIC_TLS): Likewise. (_dl_allocate_static_tls): Likewise. * elf/dl-tls.c (_dl_allocate_tls_init): Likewise. (__tls_get_addr): Protect from race conditions in setting l_tls_offset to it. * elf/tst-tls16.c: New file. * elf/tst-tlsmod16a.c: New file. * elf/tst-tlsmod16b.c: New file. * elf/Makefile: Add rules to build and run tst-tls16.
* * posix/getconf.c: Update copyright year.Ulrich Drepper2008-01-023-6/+6
| | | | | | | | | | | | | | | | | | * nss/getent.c: Likewise. * iconv/iconvconfig.c: Likewise. * iconv/iconv_prog.c: Likewise. * elf/ldconfig.c: Likewise. * catgets/gencat.c: Likewise. * csu/version.c: Likewise. * elf/ldd.bash.in: Likewise. * elf/sprof.c (print_version): Likewise. * locale/programs/locale.c: Likewise. * locale/programs/localedef.c: Likewise. * nscd/nscd.c (print_version): Likewise. * debug/xtrace.sh: Likewise. * malloc/memusage.sh: Likewise. * malloc/mtrace.pl: Likewise. * debug/catchsegv.sh: Likewise.
* * elf/tst-execstack.c (do_test): Don't fail if SELinux forbidsUlrich Drepper2007-12-171-3/+38
| | | | executable stacks.
* * elf/rtld.c (dl_main): Use the page size to find the map start.Ulrich Drepper2007-11-061-1/+2
|
* * elf/rtld.c (dl_main): Initialize stack and pointer guard earlyUlrich Drepper2007-10-311-23/+39
| | | | when using auditing libraries.
* [BZ #5222]Ulrich Drepper2007-10-281-1/+1
| | | | | | | 2007-10-28 Ulrich Drepper <drepper@redhat.com> [BZ #5222] * elf/dl-load.c (_dl_rtld_di_serinfo): Correct handling of short path elements in counting mode.
* 2007-10-19 Roland McGrath <roland@redhat.com>Roland McGrath2007-10-201-1/+1
| | | | | * elf/Makefile ($(objpfx)ld.so): Use $(AWK). * scripts/check-errnos.sh: Likewise.
* 2007-10-06 David S. Miller <davem@davemloft.net>Jakub Jelinek2007-10-191-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | * configure.in: Add sparcv9v2 and sparc64v2. * scripts/config.sub: Likewise. * configure: Regenerate. * elf/elf.h (HWCAP_SPARC_N2): New. * sysdeps/sparc/dl-procinfo.h (_DL_HWCAP_COUNT): Bump to 8. * sysdeps/sparc/dl-procinfo.c (_dl_sparc_cap_flags): Add 'v9v2'. (HWCAP_IMPORTANT): Add HWCAP_SPARC_N2. * sysdeps/sparc/sparc32/sparcv9/sparcv9v2/memcpy.S: New file. * sysdeps/sparc/sparc32/sparcv9/sparcv9v2/memset.S: New file. * sysdeps/sparc/sparc64/sparcv9v2/memcpy.S: New file. * sysdeps/sparc/sparc64/sparcv9v2/memset.S: New file. 2007-10-06 David S. Miller <davem@davemloft.net> * configure.in: Add sparcv9v2 and sparc64v2. * scripts/config.sub: Likewise. * configure: Regenerate. * elf/elf.h (HWCAP_SPARC_N2): New. * sysdeps/sparc/dl-procinfo.h (_DL_HWCAP_COUNT): Bump to 8. * sysdeps/sparc/dl-procinfo.c (_dl_sparc_cap_flags): Add 'v9v2'. (HWCAP_IMPORTANT): Add HWCAP_SPARC_N2. * sysdeps/sparc/sparc32/sparcv9/sparcv9v2/memcpy.S: New file. * sysdeps/sparc/sparc32/sparcv9/sparcv9v2/memset.S: New file. * sysdeps/sparc/sparc64/sparcv9v2/memcpy.S: New file. * sysdeps/sparc/sparc64/sparcv9v2/memset.S: New file.
* 2007-10-18 Roland McGrath <roland@redhat.com>Roland McGrath2007-10-181-0/+1
| | | | * elf/elf.h (NT_PPC_VMX): New macro.
* (save_aux_cache): Free memory allocated for temporary file name.Ulrich Drepper2007-10-131-0/+1
|
* [BZ #5104]Ulrich Drepper2007-10-051-1/+2
| | | | * elf/do-lookup.h (do_lookup_x): Don't ignore STT_COMMON symbols.
* * sysdeps/generic/ldsodefs.h (struct dl_scope_free_list): Store cvs/fedora-glibc-20070929T1859Ulrich Drepper2007-09-295-89/+179
| | | | | | | | | | | | | | | | | | | | | void * pointers instead of struct link_map **. (_dl_scope_free): Change argument type to void *. * include/link.h (struct link_map): Change type of l_reldeps to struct link_map_reldeps, move l_reldepsact into that struct too. * elf/dl-deps.c: Include atomic.h. (_dl_map_object_deps): Only change l->l_initfini when it is fully populated, use _dl_scope_free for freeing it. Optimize removal of libs from reldeps by using l_reserved flag, when some removal is needed, allocate a new list instead of reallocating and free the old with _dl_scope_free. Adjust for l_reldeps and l_reldepsact changes. * elf/dl-lookup.c (add_dependency): Likewise. Reorganize to allow searching in l_initfini and l_reldeps without holding dl_load_lock. * elf/dl-fini.c (_dl_sort_fini): Adjust for l_reldeps and l_reldepsact changes. * elf/dl-close.c (_dl_close_worker): Likewise. * elf/dl-open.c (_dl_scope_free): Change argument type to void *.
* * elf/dl-lookup.c (add_dependency): Handle failing memory cvs/fedora-glibc-20070920T0007Ulrich Drepper2007-09-191-6/+6
| | | | allocation for dependency list. Remove unnecessary check.
* * sysdeps/generic/ldsodefs.h (DL_LOOKUP_GSCOPE_LOCK): New definition.Ulrich Drepper2007-09-184-26/+71
| | | | | | | | | | | | | | | * elf/dl-runtime.c (_dl_fixup, _dl_profile_fixup): Or in DL_LOOKUP_GSCOPE_LOCK into flags after THREAD_GSCOPE_SET_FLAG (). * elf/dl-sym.c (do_sym): Likewise. * include/link.h (struct link_map): Add l_serial field. * elf/dl-object.c (_dl_new_object): Initialize l_serial. * elf/dl-lookup.c (add_dependency): Add flags argument. Remember map->l_serial, if DL_LOOKUP_GSCOPE_LOCK is among flags, use THREAD_GSCOPE_RESET_FLAG before and THREAD_GSCOPE_SET_FLAG after __rtld_lock_lock_recursive (GL(dl_load_lock)) to avoid deadlock. Don't dereference map until it has been found on some list. If map->l_serial changed, return -1.
* * elf/elf.h: Define R_PARISC_PLABEL21L, R_PARISC_PLABEL14R,Ulrich Drepper2007-08-211-0/+22
| | | | | | | | | | R_PARISC_GNU_VTENTRY, R_PARISC_GNU_VTINHERIT, R_PARISC_TLS_GD21L, R_PARISC_TLS_GD14R, R_PARISC_TLS_GDCALL, R_PARISC_TLS_LDM21L, R_PARISC_TLS_LDM14R, R_PARISC_TLS_LDMCALL, R_PARISC_TLS_LDO21L, R_PARISC_TLS_LDO14R, R_PARISC_TLS_DTPMOD32, R_PARISC_TLS_DTPMOD64, R_PARISC_TLS_DTPOFF32, R_PARISC_TLS_DTPOFF64, R_PARISC_TLS_LE21L, R_PARISC_TLS_LE14R, R_PARISC_TLS_IE21L, R_PARISC_TLS_IE14R, R_PARISC_TLS_TPREL32, R_PARISC_TLS_TPREL64.
* (do_lookup_x): Minimal improvement in hash lookup loop.Ulrich Drepper2007-08-211-1/+1
|
* * elf/Makefile ($(objpfx)ld.so): Use readelf -s and awk instead of nm -u cvs/fedora-glibc-20070816T2121Jakub Jelinek2007-08-161-1/+2
| | | | | | to check for undefined symbols. * elf/Makefile ($(objpfx)ld.so): Use readelf -s and awk instead of nm -u to check for undefined symbols.
* * elf/dl-misc.c: Undo last change. The kernel won't allow it.Ulrich Drepper2007-08-141-6/+2
|
* * elf/dl-dst.h: No need for _dl_dst_count, _dl_dst_substitute,Ulrich Drepper2007-08-131-8/+0
| | | | and _dl_get_origin defines anymore.