summaryrefslogtreecommitdiff
path: root/sysdeps/generic
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2005-04-05 21:37:05 +0000
committerRoland McGrath <roland@gnu.org>2005-04-05 21:37:05 +0000
commit404a4e2fb3e29843d1cc14d2c77cf984cc98b4be (patch)
tree928374a6bbb611366e1b4180f2070d88207c3809 /sysdeps/generic
parent328a48c5791aa2fd4ca223e8d75e923382656663 (diff)
* 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.h32
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