Commit Graph

85 Commits

Author SHA1 Message Date
Andreas Schwab
989edf2cb0 alpha: don't call ifunc functions in trace mode 2011-10-05 11:50:05 +02:00
Aurelien Jarno
2ec03f509f alpha: add dl-procinfo support.
Fixes glibc bug 6827.

Signed-off-by: Matt Turner <mattst88@gmail.com>
2010-05-04 09:02:22 -07:00
Ulrich Drepper
069ba66371 USE_TLS support is now default. 2006-10-27 23:11:45 +00:00
Richard Henderson
685896ef5a * elf/elf.h (DT_ALPHA_PLTRO, DT_ALPHA_NUM): New.
* sysdeps/alpha/dl-dtprocnum.h: New file.
        * sysdeps/alpha/dl-machine.h (DT_ALPHA): New.
        (elf_machine_load_address): Simplify to rely on gprel relocations.
        (elf_machine_runtime_setup): Handle DT_ALPHA_PLTRO plt format.
        Remove thread safety workaround for binutils 2.6.
        (elf_machine_fixup_plt): Handle DT_ALPHA_PLTRO plt format.
        * sysdeps/alpha/dl-trampoline.S (_dl_runtime_resolve_new): New.
        (_dl_runtime_profile_new): New.
        (_dl_runtime_resolve_old): Rename from _dl_runtime_resolve.
        (_dl_runtime_profile_old): Rename from _dl_runtime_profile.  Fix
        typo in _dl_call_pltexit argument loading.

        * sysdeps/alpha/div_libc.h (funcnoplt): New.
        * sysdeps/alpha/divl.S, sysdeps/alpha/divq.S: Use it.
        * sysdeps/alpha/divqu.S, sysdeps/alpha/reml.S: Likewise.
        * sysdeps/alpha/remq.S, sysdeps/alpha/remqu.S: Likewise.
2005-05-28 23:40:09 +00:00
Roland McGrath
dda081dd50 2005-03-15 Jakub Jelinek <jakub@redhat.com>
* elf/dynamic-link.h (elf_machine_rel, elf_machine_rel_relative,
	elf_machine_rela, elf_machine_rela_relative, elf_machine_lazy_rel):
	Add inline keyword.
	* sysdeps/alpha/dl-machine.h (elf_machine_rela,
	elf_machine_rela_relative, elf_machine_lazy_rel): Add always_inline
	attribute.
	* sysdeps/sparc/sparc32/dl-machine.h (elf_machine_rela,
	elf_machine_rela_relative, elf_machine_lazy_rel): Likewise.  Change
	static inline into auto inline.
	* sysdeps/sparc/sparc64/dl-machine.h (elf_machine_rela,
	elf_machine_rela_relative, elf_machine_lazy_rel): Likewise.
	* sysdeps/generic/dl-machine.h (elf_machine_rel, elf_machine_rela):
	Likewise.
	* sysdeps/arm/dl-machine.h (elf_machine_rel, elf_machine_rel_relative,
	elf_machine_rela, elf_machine_rela_relative, elf_machine_lazy_rel):
	Likewise.
2005-03-15 22:57:26 +00:00
Richard Henderson
2aa0a6fafe * sysdeps/alpha/dl-machine.h (elf_machine_rela): Use RESOLVE_MAP
all the time.
2005-02-07 03:11:46 +00:00
Richard Henderson
1ba6212c8b * sysdeps/alpha/dl-trampoline.S: New file.
* sysdeps/alpha/dl-machine.h: Move PLT trampolines there.
        Use RESOLVE_MAP instead of RESOLVE to protect relocation code.
        (elf_machine_runtime_setup): Test for dl_profile non-null.
        (ARCH_LA_PLTENTER, ARCH_LA_PLTEXIT): New.
        * sysdeps/alpha/bits/link.h: New file.
        * sysdeps/generic/ldsodefs.h (La_alpha_regs, La_alpha_retval): New.
        (struct audit_ifaces): Add alpha entries.
        * elf/tst-auditmod1.c: Add alpha entries.
2005-01-23 08:02:38 +00:00
Richard Henderson
1795e40c5d * sysdeps/alpha/dl-machine.h (elf_machine_rela,
elf_machine_rela_relative, elf_machine_lazy_rel): Mark auto
        instead of static.
2004-10-15 07:06:11 +00:00
Ulrich Drepper
a18e04cfb5 [BZ #230]
(_dl_start_user): Use ldah/ldl to load _dl_skip_args.
2004-06-28 21:03:34 +00:00
Ulrich Drepper
cebbd6e78d Use GLRO instead of GL where appropriate. 2004-03-05 10:22:54 +00:00
Ulrich Drepper
f742623a42 (DL_ARGV_NOT_RELRO): Remove. 2004-02-20 20:14:00 +00:00
Ulrich Drepper
83eb9f210d (DL_ARGV_NOT_RELRO): Define. 2004-02-20 05:41:20 +00:00
Richard Henderson
56a46fe4b9 * sysdeps/alpha/dl-machine.h (RTLD_START): Use _dl_argv_internal. 2004-01-16 05:59:42 +00:00
Ulrich Drepper
b82390a8da (RTLD_START): Remove setting of __libc_stack_end. 2003-09-24 21:08:31 +00:00
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