summary refs log tree commit diff
path: root/elf
Commit message (Collapse)AuthorAgeFilesLines
* Support mixed SSE/AVX audit and check AVX only once.H.J. Lu2009-08-088-2/+758
| | | | | | | | | | This patch fixes mixed SSE/AVX audit and checks AVX only once in _dl_runtime_profile. When an AVX or SSE register value in pltenter is modified, we have to make sure that the SSE part value is the same in both lr_xmm and lr_vector fields so that pltexit will get the correct value from either lr_xmm or lr_vector fields. AVX-enabled pltenter should update both lr_xmm and lr_vector fields to support stacked AVX/SSE pltenter functions.
* Fix expanding STB_GNU_UNIQUE hash table.Andreas Schwab2009-08-071-1/+1
| | | | | An invalid symbol name pointer was entered into the hash table while enlarging it.
* Preserve SSE registers in runtime relocations on x86-64.Ulrich Drepper2009-07-292-0/+21
| | | | | | | | | | SSE registers are used for passing parameters and must be preserved in runtime relocations. This is inside ld.so enforced through the tests in tst-xmmymm.sh. But the malloc routines used after startup come from libc.so and can be arbitrarily complex. It's overkill to save the SSE registers all the time because of that. These calls are rare. Instead we save them on demand. The new infrastructure put in place in this patch makes this possible and efficient.
* Fix bookkeeping of static TLS block for TLS_TCB_AT_TP architectures.Ulrich Drepper2009-07-281-1/+4
|
* Break out _dl_scope_free into its own file.Ulrich Drepper2009-07-273-36/+59
| | | | | This reduces the coarse static callgraph that can be discovered by looking at the object files.
* Fix STB_GNU_UNIQUE handling for > 30 unique symbols.Jakub Jelinek2009-07-271-2/+3
| | | | | | | | | | | | | There were several issues when the initial 31 entries hashtab filled up. size * 3 <= tab->n_elements is always false, table can't have more elements than its size. I assume from libiberty/hashtab.c this meant to be check for 3/4 full. Even after fixing that, _dl_higher_prime_number (31) apparently returns 31, only _dl_higher_prime_number (32) returns 61. And, size variable wasn't updated during reallocation, which means during reallocation the insertion of the new entry was done into a wrong spot. All this lead to a hang in ld.so, because a search with n_elements 31 size 31 wouldn't ever terminate.
* Define NT_GNU_GOLD_VERSION.Ulrich Drepper2009-07-261-0/+3
|
* Minor optimization of unloading prevention patch.Ulrich Drepper2009-07-231-5/+5
| | | | | | References to unique symbols from copy relocations can only come from executables which cannot be unloaded anyway. Optimize the code to set the unload flag a bit.
* Fix comment.Ulrich Drepper2009-07-231-1/+1
|
* Some more fixes for the unique symbol handling.Ulrich Drepper2009-07-231-5/+4
| | | | | The hash value can be zero, so we need a different test for empty slots. And unify the way we prevent a DSO from being unloaded.
* Handle unloading of DSO with a unique symbol definition.Ulrich Drepper2009-07-232-5/+48
|
* Remove warning and little optimization.Ulrich Drepper2009-07-161-0/+1
| | | | | The prototype for _dl_higher_prime_number was missing. While at it, the function is now marked with internal_function.
* Fix build issue with modules for audit test on machines != x86-64.Ulrich Drepper2009-07-151-3/+5
|
* Add AVX support to ld.so auditing for x86-64.H.J. Lu2009-07-107-2/+554
|
* Remove do-lookup.h.Ulrich Drepper2009-07-103-388/+366
| | | | | It is not necessary/useful anymore to have the content separate from dl-lookup.c.
* Implement STB_GNU_UNIQUE handling.Ulrich Drepper2009-07-0911-11/+291
| | | | | | | | | Some symbols have to be identified process-wide by their name. This is particularly important for some C++ features (e.g., class local static data and static variables in inline functions). This cannot completely be implemented with ELF functionality so far. The STB_GNU_UNIQUE binding helps by ensuring the dynamic linker will always use the same definition for all symbols with the same name and this binding.
* Define STB_GNU_UNIQUE.Ulrich Drepper2009-07-071-0/+1
|
* Clean up code for hash table handling in ld.so.Ulrich Drepper2009-07-071-0/+64
|
* Optimize test for valid ELF symbol types in lookup function. ibm/masterUlrich Drepper2009-07-061-7/+7
|
* Fix whitespace in last patch.Ulrich Drepper2009-07-022-2/+2
|
* Fix handling of xmm6 in ld.so audit hooks on x86-64.H.J. Lu2009-07-024-1/+210
|
* More whitespace cleanups.Ulrich Drepper2009-06-222-2/+2
|
* Clean up whitespaces in last patch.Ulrich Drepper2009-06-223-6/+6
|
* Add more IFUNC tests.H.J. Lu2009-06-2218-5/+399
| | | | | Mostly tests around not-exported IFUNC functions, IFUNC in statically linked binaries and PIEs, etc.
* Use +link-pie Makefile rule to link PIE ifunc tests.H.J. Lu2009-06-171-16/+2
|
* Don't treat bug reporting message as a format string.Andreas Schwab2009-06-161-2/+2
|
* Consolidate PIE linking Makefile rules.H.J. Lu2009-06-161-8/+1
|
* libc part of prelink IFUNC support.Jakub Jelinek2009-06-151-6/+11
| | | | | | The dl-lookup.c changes are needed for prelink (support in prelink checked into SVN, tested for both i?86 and x86-64), dl-irel.h just something I discovered by code inspection.
* Test for ELF IFUNC functionality.H.J. Lu2009-06-0324-1/+627
|
* Terminate correct buffer.Ulrich Drepper2009-06-031-1/+1
| | | | Little typo could cause additional characters to be printed.
* Finish IFUNC support for x86 and x86-64.Ulrich Drepper2009-05-311-2/+4
| | | | Add support for the IRELAIVE relocation and IFUNC in static executables.
* Remove redundant .gitignore files.Andreas Schwab2009-05-161-6/+0
|
* rename each .cvsignore file to .gitignoreJim Meyering2009-05-151-0/+0
|
* Test DSOs for executable stack.Ulrich Drepper2009-05-152-2/+170
| | | | | | Add a text program, built to run on the host, to check all newly built DSOs for executable stacks and fail if the stack information is missing or indicates executable stacks.
* [BZ #10087]Ulrich Drepper2009-04-271-3/+5
| | | | | | | * elf/dl-runtime.c (_dl_fixup): Use DL_FIXUP_VALUE_ADDR to access result of lookup to make call to implement STT_GNU_IFUNC. (_dl_profile_fixup): Likewise. Patch by H.J. Lu <hjl.tools@gmail.com>.
* * nscd/connections.c (send_ro_fd): Define temporary variable to avoidUlrich Drepper2009-04-261-15/+52
| | | | | | warning. * elf/sprof.c: Likewise.
* * sysdeps/unix/sysv/linux/dl-osinfo.h (dl_fatal): Remove inlineUlrich Drepper2009-04-262-10/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | from definition. * sysdeps/x86_64/dl-machine.h (elf_machine_rela): Don't define label if it is not used. * elf/dl-profile.c (_dl_start_profile): Define real-type variant of gmon_hist_hdr and gmon_hdr structures and use them. * elf/dl-load.c (open_verify): Add temporary variable to avoid warning. * nscd/nscd_helper.c (get_mapping): Avoid casts to avoid warnings. * sunrpc/clnt_raw.c (clntraw_private_s): Use union in definition to avoid cast. * inet/rexec.c (rexec_af): Make sa2 a union to avoid warnings. * inet/rcmd.c (rcmd_af): Make from a union of the various needed types to avoid warnings. (iruserok_af): Use ss_family instead of casts. * gmon/gmon.c (write_hist): Define real-type variant of gmon_hist_hdr structure and use it. (write_gmon): Likewise for gmon_hdr. * sysdeps/unix/sysv/linux/readv.c: Avoid declaration of replacement function if we are not going to define it. * sysdeps/unix/sysv/linux/writev.c: Likewise. * inet/inet6_option.c (optin_alloc): Add temporary variable to avoid warning. * libio/strfile.h (struct _IO_streambuf): Use correct type and name of VTable element. * libio/iovsprintf.c: Avoid casts to avoid warnings. * libio/iovsscanf.c: Likewise. * libio/vasprintf.c: Likewise. * libio/vsnprintf.c: Likewise. * stdio-common/isoc99_vsscanf.c: Likewise. * stdlib/strfmon_l.c: Likewise. * debug/vasprintf_chk.c: Likewise. * debug/vsnprintf_chk.c: Likewise. * debug/vsprintf_chk.c: Likewise.
* [BZ #10069]Ulrich Drepper2009-04-191-0/+12
| | | | | | | | 2009-04-19 Ulrich Drepper <drepper@redhat.com> [BZ #10069] * elf/dl-open.c (dl_open_worker): We cannot guarantee that we can load an object that uses static TLS if the TLS modid is higher than the reserve we always allocate. At least for multi-threaded code.
* 2009-04-16 Samuel Thibault <samuel.thibault@ens-lyon.org>Roland McGrath2009-04-171-9/+7
| | | | | * elf/rtld.c (dl_main): Really call _dl_sysdep_start_cleanup after all calls to _dl_relocate_object.
* * elf/dl-open.c (_dl_open): Bump GL(dl_nns) to 1 if no libraries cvs/fedora-glibc-20090416T1610Jakub Jelinek2009-04-161-1/+2
| | | | | | | | are dlopened in statically linked program even for __LM_ID_CALLER. 2009-04-16 Jakub Jelinek <jakub@redhat.com> * elf/dl-open.c (_dl_open): Bump GL(dl_nns) to 1 if no libraries are dlopened in statically linked program even for __LM_ID_CALLER.
* 2009-04-14 Roland McGrath <roland@redhat.com>Roland McGrath2009-04-151-22/+42
| | | | * elf/elf.h: Add various missing ARM constants, to match binutils.
* Missed copyright year updateRoland McGrath2009-04-021-1/+1
|
* 2009-04-01 Roland McGrath <roland@redhat.com>Roland McGrath2009-04-021-1/+13
| | | | | | | | | | | * elf/elf.h (R_SPARC_GLOB_JMP): New macro. (R_SPARC_GOTDATA_HIX22, R_SPARC_GOTDATA_LOX10): New macros. (R_SPARC_GOTDATA_OP_HIX22, R_SPARC_GOTDATA_OP_LOX10): Likewise. (R_SPARC_GOTDATA_OP, R_SPARC_H34): Likewise. (R_SPARC_SIZE32, R_SPARC_SIZE64): Likewise. (R_SPARC_GNU_VTINHERIT, R_SPARC_GNU_VTENTRY, R_SPARC_REV32): Likewise. (R_SPARC_NUM): Update. From Dave Miller <davem@davemloft.net>.
* * elf/dl-open.c: Keep track of used name spaces and only iterate over cvs/fedora-glibc-20090401T0935Ulrich Drepper2009-04-0111-30/+50
| | | | | | | | | | | | | | those which are used. * elf/dl-addr.c: Likewise. * elf/dl-caller.c: Likewise. * elf/dl-fini.c: Likewise. * elf/dl-iteratephdr.c: Likewise. * elf/dl-libc.c: Likewise. * elf/dl-load.c: Likewise. * elf/dl-support.c: Likewise. * elf/dl-sym.c: Likewise. * elf/rtld.c: Likewise. * sysdeps/generic/ldsodefs.h: Likewise.
* * elf/dl-load.c: Remove support for systems without MAP_ANON.Ulrich Drepper2009-03-314-40/+5
| | | | | | | * elf/dl-minimal.c: Likewise. * elf/dl-misc.c: Likewise. * elf/rtld.c: Likewise. * sysdeps/generic/ldsodefs.h: Likewise.
* * elf/do-lookup.h (do_lookup_x): Minor optimization and cleanup.Ulrich Drepper2009-03-301-7/+7
| | | | Avoid reuse of complex expression.
* [BZ #9733]Ulrich Drepper2009-03-164-14/+20
| | | | | | | | | | | * elf/dl-load.c (_dl_map_object_from_fd): Only call audit hooks if we are not loading a new audit library. * elf/dl-reloc (_dl_relocate_object): Third parameter is now a bitmask. Only use profiling trampoline for auditing if we are not relocating an audit library. * elf/dl-open.c (dl_open_worker): Adjust _dl_relocate_object call. * elf/rtld.c: Likewise. * sysdeps/generic/ldsodefs.h: Adjust _dl_relocate_object prototype.
* * elf/rtld.c (dl_main): Extend help message for --audit option.Ulrich Drepper2009-03-161-1/+2
|
* * elf/dl-runtime.c (reloc_offset): Define.Ulrich Drepper2009-03-151-9/+12
| | | | | | | | | | | | | (reloc_index): Define. (_dl_fixup): Rename reloc_offset parameter to reloc_arg. (_dl_fixup_profile): Likewise. Use reloc_index instead of computing index from reloc_offset. (_dl_call_pltexit): Likewise. * sysdeps/x86_64/dl-trampoline.S (_dl_runtime_resolve): Just pass the relocation index to _dl_fixup. (_dl_runtime_profile): Likewise for _dl_fixup_profile and _dl_call_pltexit. * sysdeps/x86_64/dl-runtime.c: New file.
* * elf/dl-sysdep.c (_dl_show_auxv): Add support for AT_BASE_PLATFORM.Ulrich Drepper2009-03-141-29/+30
| | | | * elf/dl-sysdep.c (auxvars): Compress data structure.