about summary refs log tree commit diff
path: root/sysdeps/generic/ldsodefs.h
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/ldsodefs.h
parent328a48c5791aa2fd4ca223e8d75e923382656663 (diff)
downloadglibc-404a4e2fb3e29843d1cc14d2c77cf984cc98b4be.tar.gz
glibc-404a4e2fb3e29843d1cc14d2c77cf984cc98b4be.tar.xz
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/ldsodefs.h')
-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