Commit Graph

71 Commits

Author SHA1 Message Date
Alexandre Oliva
5027ae109a * elf/dynamic-link.h (elf_machine_rel, elf_machine_rela,
elf_machine_rel_relative, elf_machine_rela_relative): Don't assume
reloc_addr is aligned.
* sysdeps/alpha/dl-machine.h (elf_machine_rela,
elf_machine_rela_relative): Adjust.
* sysdeps/arm/dl-machine.h (elf_machine_rel, elf_machine_rela,
elf_machine_rel_relative, elf_machine_rela_relative): Adjust.
* sysdeps/cris/dl-machine.h (elf_machine_rela,
elf_machine_rela_relative): Adjust.
* sysdeps/hppa/dl-machine.h (elf_machine_rela,
elf_machine_rela_relative): Adjust.
* sysdeps/i386/dl-machine.h (elf_machine_rel, elf_machine_rela,
elf_machine_rel_relative, elf_machine_rela_relative): Adjust.
* sysdeps/ia64/dl-machine.h (elf_machine_rela,
elf_machine_rela_relative): Adjust.
* sysdeps/m68k/dl-machine.h (elf_machine_rela,
elf_machine_rela_relative): Adjust.
* sysdeps/mips/dl-machine.h (elf_machine_rela,
elf_machine_rela_relative): Adjust.
* sysdeps/powerpc/powerpc32/dl-machine.h (elf_machine_rela,
elf_machine_rela_relative): Adjust.
* sysdeps/powerpc/powerpc64/dl-machine.h
(elf_machine_rela_relative, elf_machine_rela): Adjust.
* sysdeps/s390/s390-32/dl-machine.h (elf_machine_rela,
elf_machine_rela_relative): Adjust.
* sysdeps/s390/s390-64/dl-machine.h (elf_machine_rela,
elf_machine_rela_relative):
* sysdeps/sh/dl-machine.h (elf_machine_rela,
elf_machine_rela_relative): Adjust.
* sysdeps/sparc/sparc32/dl-machine.h (elf_machine_rela,
elf_machine_rela_relative): Adjust.
* sysdeps/sparc/sparc64/dl-machine.h (elf_machine_rela,
elf_machine_rela_relative): Adjust.
* sysdeps/x86_64/dl-machine.h (elf_machine_rela,
elf_machine_rela_relative): Adjust.
2003-07-31 06:33:52 +00:00
Richard Henderson
48e0ec3c48 * sysdeps/alpha/dl-machine.h (RTLD_START): Fix top-of-stack backtrace.
* sysdeps/unix/sysv/linux/alpha/clone.S: Likewise.
        * sysdeps/alpha/elf/start.S: Likewise.  Remove pointless allocation.
        * sysdeps/unix/sysv/linux/alpha/rt_sigaction.S: Use standard ldgp
        entry sequence and explicit relocs.  Add unwind info for sigreturn
        and rt_sigreturn.
        * configure.in (libc_cv_asm_cfi_directives): Test .cfi_remember_state.
        * configure: Regenerate.
2003-06-06 05:54:15 +00:00
Ulrich Drepper
6e5bb2d534 (elf_machine_rela): Add instead of subtracting map->l_tls_offset. 2003-02-14 06:02:01 +00:00
Ulrich Drepper
6edfd8f2f6 (elf_machine_type_class): Add TLS relocs for class PLT. 2003-01-17 19:18:51 +00:00
Ulrich Drepper
a48dbdf044 (elf_machine_rela): Compute DTPREL64 and TPREL64 without loadbase applied. 2003-01-12 19:22:32 +00:00
Ulrich Drepper
6ad3dd03b3 (elf_machine_rela): Move CHECK_STATIC_TLS before l_tls_offset use. 2003-01-12 08:47:37 +00:00
Roland McGrath
fbd3097515 2002-11-07 Richard Henderson <rth@redhat.com>
* configure.in (ASM_ALPHA_NG_SYMBOL_PREFIX): Remove test.
	* configure: Regenerated.
	* config.h.in (ASM_ALPHA_NG_SYMBOL_PREFIX): Remove #undef.
	* sysdeps/alpha/dl-machine.h (TRAMPOLINE_TEMPLATE): Use !samegp.
	(RTLD_START): Likewise.  Access _dl_skip_args, _rtld_local, and
	_dl_fini via gp-relative relocations.
	* sysdeps/alpha/fpu/e_sqrt.c: Use !samegp.
	* elf/tls-macros.h: Add alpha versions.
	* sysdeps/alpha/dl-machine.h (elf_machine_rela): Handle TLS relocs.
	* sysdeps/unix/alpha/sysdep.S: Support USE___THREAD.
	* sysdeps/unix/alpha/sysdep.h: Likewise.  Add SYSCALL_ERROR_HANDLER.
	* sysdeps/unix/sysv/linux/alpha/brk.S: Use it.
	* sysdeps/unix/sysv/linux/alpha/clone.S: Likewise.
	* sysdeps/unix/sysv/linux/alpha/getitimer.S: Likewise.
	* sysdeps/unix/sysv/linux/alpha/getrusage.S: Likewise.
	* sysdeps/unix/sysv/linux/alpha/gettimeofday.S: Likewise.
	* sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S: Likewise.
	* sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S: Likewise.
	* sysdeps/unix/sysv/linux/alpha/rt_sigaction.S: Likewise.
	* sysdeps/unix/sysv/linux/alpha/select.S: Likewise.
	* sysdeps/unix/sysv/linux/alpha/setitimer.S: Likewise.
	* sysdeps/unix/sysv/linux/alpha/settimeofday.S: Likewise.
	* sysdeps/unix/sysv/linux/alpha/sigsuspend.S: Likewise.
	* sysdeps/unix/sysv/linux/alpha/syscall.S: Likewise.
	* sysdeps/unix/sysv/linux/alpha/utimes.S: Likewise.
	* sysdeps/unix/sysv/linux/alpha/wait4.S: Likewise.
2002-11-08 02:19:00 +00:00
Ulrich Drepper
d044736b27 Temporarily enable R_*_NONE relocs in ld.so. 2002-10-02 20:24:20 +00:00
Roland McGrath
21b4728e4f 2002-04-24 Roland McGrath <roland@frob.com>
* sysdeps/alpha/dl-machine.h (ELF_MACHINE_USER_ADDRESS_MASK): New
	macro; we need this for Hurd.
2002-04-24 18:17:02 +00:00
Ulrich Drepper
2b0a7e122e (ELF_MACHINE_REL_RELATIVE): Define. 2002-04-06 00:33:22 +00:00
Ulrich Drepper
dca9c7304b Add HAVE_VISIBILITY_ATTRIBUTE and HAVE_SDATA_SECTION. 2002-02-28 22:36:33 +00:00
Ulrich Drepper
88706a4c84 (elf_machine_load_address, RTLD_START): Work around an Alpha gas bug. 2002-02-27 18:10:53 +00:00
Ulrich Drepper
c577723005 (RTLD_START): Call _dl_init_internal instead of _dl_init. 2002-02-03 00:29:15 +00:00
Ulrich Drepper
f71d7f5726 Move global variables for SHARED code in struct _rtld_global. Export
this struct, remove all exports for the signal variables.
2002-02-01 01:32:06 +00:00
Ulrich Drepper
0a6fc182da (elf_machine_runtime_setup): Avoid warning.
(TRAMPOLINE_TEMPLATE, RTLD_START): Don't use multi-line string
literals to avoid warnings.
2001-12-31 17:33:59 +00:00
Ulrich Drepper
d70bbfe3be (elf_machine_runtime_setup): Reinitialize
.plt for prelinked libraries where prelinking info cannot be used.
(elf_machine_rela): If relocating R_ALPHA_JMP_SLOT in .gnu.conflict
section, use RESOLVE_CONFLICT_FIND_MAP to find out reloc's link_map.
2001-12-12 00:10:27 +00:00
Ulrich Drepper
8755441d32 (elf_machine_load_address): Compute the difference between base address and
first PT_LOAD's virtual address, not the base address.
2001-09-22 21:32:57 +00:00
Ulrich Drepper
6222fd02e7 (elf_machine_rela): Remove unused code.
Don't add old memory content for R_ALPHA_REFQUAD.
2001-09-01 05:32:08 +00:00
Ulrich Drepper
952ec50e9e (elf_machine_rela): Don't handle
R_ALPHA_RELATIVE if RTLD_BOOTSTRAP and HAVE_Z_COMBRELOC.  Only
check for rtld map if RTLD_BOOTSTRAP nor HAVE_Z_COMBRELOC is defined.
2001-08-30 23:09:10 +00:00
Ulrich Drepper
5c6029e5c0 (elf_machine_lookup_noplt_p, elf_machine_lookup_noexec_p): Remove.
(elf_machine_type_class): Define.
2001-08-26 22:26:38 +00:00
Ulrich Drepper
b934c935cb (elf_machine_rela_relative): Rename from elf_machine_rel_relative. Fix argument types. 2001-08-24 14:53:03 +00:00
Ulrich Drepper
85bdccdbd2 Define elf_machine_rel_relative. Minor optimizations. 2001-08-24 08:43:21 +00:00
Andreas Jaeger
3214b89b32 Update to LGPL v2.1. 2001-07-06 04:56:23 +00:00
Ulrich Drepper
cb8023f938 (elf_machine_rela): Don't handle relocations which are not in ld.so if
RTLD_BOOTSTRAP is defined.
2001-02-28 15:23:48 +00:00
Ulrich Drepper
3f95e592cb (RTLD_START): Update _dl_argv. 2000-11-16 02:07:02 +00:00
Ulrich Drepper
f1dba30859 (elf_machine_matches_host): Parameter is now pointer to ELF header. 2000-10-20 17:04:28 +00:00
Ulrich Drepper
8da28deb78 (elf_machine_rela): Handle unaligned relocation also for R_ALPHA_RELATIVE. 2000-09-29 06:50:53 +00:00
Andreas Jaeger
4ce0ef7a86 (elf_machine_rela): Pass 0 instead of NULL to elf_machine_fixup_plt
t argument to silence GCC.
2000-07-18 14:14:51 +00:00
Ulrich Drepper
22fb102e6b (elf_machine_rela) [r_type == R_ALPHA_REFQUAD]: Use memcpy to load and
store value from relocation address to prevent unaligned trap.
2000-07-01 05:08:03 +00:00
Andreas Jaeger
21dd216cd4 2000-05-08 Jakub Jelinek <jakub@redhat.com>
* sysdeps/alpha/dl-machine.h (elf_machine_rela): Fix arguments in
	call to elf_machine_fixup_plt.
	* sysdeps/sparc/sparc32/dl-machine.h (elf_machine_rela): Likewise.
	* sysdeps/sparc/sparc64/dl-machine.h (elf_machine_rela): Likewise.
2000-05-08 15:40:26 +00:00
Ulrich Drepper
408c9db5d3 (elf_machine_fixup_plt): Change return valuie to lookup_t and return the value. 2000-05-05 07:12:09 +00:00
Ulrich Drepper
b9a57ab615 (_dl_start_user): Fix the _dl_skip_args handling. 2000-04-28 03:25:46 +00:00
Ulrich Drepper
f0824b0c78 (RTLD_START):Rewrite for new init function interface. 2000-04-15 16:53:23 +00:00
Ulrich Drepper
7189e3b807 Use D_PTR to access relocated entries in l_info. 2000-03-31 05:16:19 +00:00
Ulrich Drepper
e9290bfa08 (ELF_MACHINE_RUNTIME_TRAMPOLINE): Use a C comment, not an assembly comment. 2000-03-26 20:29:55 +00:00
Roland McGrath
893f3d106f 1999-07-21 Roland McGrath <roland@baalperazim.frob.com>
* elf/dl-reloc.c (_dl_reloc_bad_type): New function.
	* elf/ldsodefs.h: Declare it.
	* sysdeps/sparc/sparc64/dl-machine.h (elf_machine_rela): Use it
	instead of assert.
	(elf_machine_lazy_rel): Likewise.  Take new arg MAP.
	* sysdeps/sparc/sparc32/dl-machine.h (elf_machine_rela): Likewise.
	(elf_machine_lazy_rel): Likewise.
	* sysdeps/mips/dl-machine.h (elf_machine_rel): Likewise.
	(elf_machine_lazy_rel): Likewise.
	* sysdeps/mips/mips64/dl-machine.h (elf_machine_rel): Likewise.
	(elf_machine_lazy_rel): Likewise.
	* sysdeps/m68k/dl-machine.h (elf_machine_rela): Likewise.
	(elf_machine_lazy_rel): Likewise.
	* sysdeps/i386/dl-machine.h (elf_machine_rel): Likewise.
	(elf_machine_lazy_rel): Likewise.
	* sysdeps/generic/dl-machine.h (elf_machine_rel): Likewise.
	* sysdeps/arm/dl-machine.h (elf_machine_rel): Likewise.
	(elf_machine_lazy_rel): Likewise.
	* sysdeps/alpha/dl-machine.h (elf_machine_rela): Likewise.
	(elf_machine_lazy_rel): Likewise.
	* sysdeps/powerpc/dl-machine.h (elf_machine_lazy_rel): Likewise.
	* sysdeps/powerpc/dl-machine.c (__process_machine_rela): Use
	_dl_reloc_bad_type instead of _dl_signal_error.
	* elf/do-rel.h (elf_dynamic_do_rel): Pass MAP to elf_machine_lazy_rel.
1999-07-21 16:57:52 +00:00
Ulrich Drepper
e675032fec (elf_machine_runtime_setup): DT_PLTGOT entry is already relocated. 1999-02-20 18:22:38 +00:00
Ulrich Drepper
3e3649f6e2 (elf_machine_fixup_plt): DT_JMPREL and DT_PLTGOT entries are already
relocated.
(elf_machine_rela): Likewise for DT_SYMTAB.
1999-02-20 14:56:45 +00:00
Ulrich Drepper
4fb65d7fc7 (TRAMPOLINE_TEMPLATE): Save and restore all call-clobbered fp regs. 1999-02-08 10:02:37 +00:00
Richard Henderson
831f9aedc4 * sysdeps/alpha/dl-machine.h (_dl_start_user): Pass pointer to
_dl_main_searchlist not _dl_default_scope to _dl_init_next.
        * sysdeps/sparc/sparc32/dl-machine.h (_dl_start_user): Likewise.
        * sysdeps/sparc/sparc64/dl-machine.h (_dl_start_user): Likewise.
1998-09-11 13:48:14 +00:00
Ulrich Drepper
68d11b268e (elf_machine_lazy_rel): Change first parameter and use this value. 1998-08-28 22:54:12 +00:00
Ulrich Drepper
ca246d7eef (elf_machine_runtime_setup): Only set _dl_profile_map if _dl_name_match_p.
(RTLD_START): Fix .prologue.  Set __libc_stack_end.
1998-06-27 09:50:59 +00:00
Richard Henderson
18a702a8a3 * sysdeps/alpha/dl-machine.h (TRAMPOLINE_TEMPLATE): Move declaration
of the trampoline function into the macro.
* sysdeps/unix/sysv/linux/alpha/clone.S: Fix ldgp for PROF.
* sysdeps/unix/sysv/linux/alpha/syscalls.list: Revert last change;
kernel 2.1.82 has this fixed.
* sysdeps/unix/sysv/linux/alpha/rt_sigaction.S: New file.
* sysdeps/unix/sysv/linux/alpha/sys/ucontext.h: New file.
1998-01-26 22:04:53 +00:00
Ulrich Drepper
9ba537d289 (ELF_MACHINE_RUNTIME_TRAMPOLINE): Remove the 3rd arg and add
declaration for _dl_runtime_resolve and _dl_runtime_profile.
1998-01-25 03:51:19 +00:00
Ulrich Drepper
49f3765caf (ELF_MACHINE_RUNTIME_TRAMPOLINE): Add missing parameters. 1997-12-14 21:53:11 +00:00
Ulrich Drepper
2e67c045f2 (_dl_runtime_resolve): Care for prefix.
(_start): Likewise.
1997-12-08 02:50:09 +00:00
Ulrich Drepper
0fc15eae49 (elf_machine_plt_value): New function. 1997-10-12 03:40:09 +00:00
Ulrich Drepper
a8e5f5a44c (ELF_MACHINE_RELOC_NOPLT): Renamed.
(elf_alpha_fix_plt): Renamed elf_machine_fixup_plt.
1997-09-27 00:19:38 +00:00
Ulrich Drepper
c0d5b73e05 (RTLD_START): Switch back to previous section to avoid confusing the
compiler.
1997-08-27 19:58:41 +00:00
Ulrich Drepper
2ed7206696 (elf_machine_runtime_setup): Add new parameter to enable profiling.
(elf_machine_rela): Add new parameter to
1997-07-28 22:06:27 +00:00