| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
newer linker scripts.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
| |
(NT_PPC_VSX): New macro.
|
|
|
|
|
|
|
| |
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/tst-tls17.c: New test.
* elf/tst-tlsmod17a.c: New file.
* elf/tst-tlsmod17b.c: Likewise.
|
|
|
|
| |
* stdlib/mod_1.c: Likewise.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
| |
* elf/Makefile (check-data): Likewise.
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
libcrypt.
|
|
|
|
| |
* elf/dl-sysdep.c (_dl_show_auxv): Add AT_EXECFN to the table.
|
|
|
|
|
|
| |
* elf/Makefile: Use pie-ccflag variable.
* nscd/Makefile: Likewise.
* sysdeps/sparc/Makefile: Set $(pie-ccflag) to -fPIE.
|
|
|
|
|
|
|
|
|
| |
* 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/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.
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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].
|
|
|
|
|
|
| |
2008-05-19 Jakub Jelinek <jakub@redhat.com>
* elf/soinit.c (__EH_FRAME_BEGIN__): Remove.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
| |
its own function. This reduces the frame setup costs and more.
|
|
|
|
|
|
| |
in use.
(TLS_LD): Use __TLS_GET_ADDR instead of .__tls_get_addr.
(TLS_GD): Likewise.
|
|
|
|
|
| |
(tests-vis-yes): Delete.
(modules-name, modules-vis-yes): Similarly.
|
| |
|
|
|
|
|
|
| |
.o file.
* elf/Makefile (routines): Add dl-sysdep.
(elide-routines.os): Likewise.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
|
|
|
|
|
|
| |
_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.
|
|
|
|
| |
* elf/elf.h (SHT_GNU_ATTRIBUTES): New macro.
|
| |
|
|
|
|
| |
* elf/elf.h (NT_386_TLS): New macro.
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
| |
executable stacks.
|
| |
|
|
|
|
| |
when using auditing libraries.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
* elf/Makefile ($(objpfx)ld.so): Use $(AWK).
* scripts/check-errnos.sh: Likewise.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
| |
* elf/elf.h (NT_PPC_VMX): New macro.
|
| |
|
|
|
|
| |
* elf/do-lookup.h (do_lookup_x): Don't ignore STT_COMMON symbols.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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 *.
|
|
|
|
| |
allocation for dependency list. Remove unnecessary check.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
| |
to check for undefined symbols.
* elf/Makefile ($(objpfx)ld.so): Use readelf -s and awk instead of nm -u
to check for undefined symbols.
|
| |
|
|
|
|
| |
and _dl_get_origin defines anymore.
|