diff options
author | Roland McGrath <roland@gnu.org> | 2005-04-05 21:37:05 +0000 |
---|---|---|
committer | Roland McGrath <roland@gnu.org> | 2005-04-05 21:37:05 +0000 |
commit | 404a4e2fb3e29843d1cc14d2c77cf984cc98b4be (patch) | |
tree | 928374a6bbb611366e1b4180f2070d88207c3809 /sysdeps/generic | |
parent | 328a48c5791aa2fd4ca223e8d75e923382656663 (diff) | |
download | glibc-404a4e2fb3e29843d1cc14d2c77cf984cc98b4be.tar glibc-404a4e2fb3e29843d1cc14d2c77cf984cc98b4be.tar.gz glibc-404a4e2fb3e29843d1cc14d2c77cf984cc98b4be.tar.bz2 glibc-404a4e2fb3e29843d1cc14d2c77cf984cc98b4be.zip |
* sysdeps/sparc/sparc32/dl-trampoline.S: New file.
* sysdeps/sparc/sparc32/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.
* sysdeps/sparc/sparc64/dl-trampoline.S: New file.
(ARCH_LA_PLTENTER, ARCH_LA_PLTEXIT): New.
* sysdeps/sparc/sparc64/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.
* sysdeps/sparc/bits/link.h: New file.
* sysdeps/generic/ldsodefs.h (La_sparc32_regs, La_sparc32_retval,
La_sparc64_regs, La_sparc64_retval): New.
(struct audit_ifaces): Add sparc entries.
* elf/tst-auditmod1.c: Add sparc entries.
Diffstat (limited to 'sysdeps/generic')
-rw-r--r-- | sysdeps/generic/ldsodefs.h | 32 |
1 files changed, 30 insertions, 2 deletions
diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h index e1a934aeda..2e3254356b 100644 --- a/sysdeps/generic/ldsodefs.h +++ b/sysdeps/generic/ldsodefs.h @@ -199,6 +199,10 @@ struct La_mips_32_regs; struct La_mips_32_retval; struct La_mips_64_regs; struct La_mips_64_retval; +struct La_sparc32_regs; +struct La_sparc32_retval; +struct La_sparc64_regs; +struct La_sparc64_retval; struct audit_ifaces { @@ -270,6 +274,16 @@ struct audit_ifaces const struct La_mips_64_regs *, unsigned int *, const char *name, long int *framesizep); + Elf32_Addr (*sparc32_gnu_pltenter) (Elf32_Sym *, unsigned int, + uintptr_t *, uintptr_t *, + const struct La_sparc32_regs *, + unsigned int *, const char *name, + long int *framesizep); + Elf64_Addr (*sparc64_gnu_pltenter) (Elf64_Sym *, unsigned int, + uintptr_t *, uintptr_t *, + const struct La_sparc64_regs *, + unsigned int *, const char *name, + long int *framesizep); }; union { @@ -328,6 +342,16 @@ struct audit_ifaces const struct La_mips_64_regs *, struct La_mips_64_retval *, const char *); + unsigned int (*sparc32_gnu_pltexit) (Elf32_Sym *, unsigned int, + uintptr_t *, uintptr_t *, + const struct La_sparc32_regs *, + struct La_sparc32_retval *, + const char *); + unsigned int (*sparc64_gnu_pltexit) (Elf64_Sym *, unsigned int, + uintptr_t *, uintptr_t *, + const struct La_sparc32_regs *, + struct La_sparc32_retval *, + const char *); }; unsigned int (*objclose) (uintptr_t *); @@ -587,10 +611,10 @@ struct rtld_global_ro EXTERN int _dl_correct_cache_id; /* Mask for hardware capabilities that are available. */ - EXTERN unsigned long int _dl_hwcap; + EXTERN uint64_t _dl_hwcap; /* Mask for important hardware capabilities we honour. */ - EXTERN unsigned long int _dl_hwcap_mask; + EXTERN uint64_t _dl_hwcap_mask; /* Get architecture specific definitions. */ #define PROCINFO_DECL @@ -636,6 +660,10 @@ struct rtld_global_ro /* The vsyscall page is a virtual DSO pre-mapped by the kernel. This points to its ELF header. */ EXTERN const ElfW(Ehdr) *_dl_sysinfo_dso; + + /* At startup time we set up the normal DSO data structure for it, + and this points to it. */ + EXTERN struct link_map *_dl_sysinfo_map; #endif #ifdef SHARED |