about summary refs log tree commit diff
path: root/sysdeps/generic
diff options
context:
space:
mode:
authorAndreas Jaeger <aj@suse.de>2005-03-28 07:49:19 +0000
committerAndreas Jaeger <aj@suse.de>2005-03-28 07:49:19 +0000
commitabc85e9fea35a8e2eedfc9796c8d81ae5364bcf7 (patch)
tree72402c0e8ba665627669885b93db713c5d9b969a /sysdeps/generic
parent12403b32054ad3f46390f7e537f24ccf7b153620 (diff)
downloadglibc-abc85e9fea35a8e2eedfc9796c8d81ae5364bcf7.tar.gz
glibc-abc85e9fea35a8e2eedfc9796c8d81ae5364bcf7.tar.xz
glibc-abc85e9fea35a8e2eedfc9796c8d81ae5364bcf7.zip
[BZ #783]
2005-03-28  Daniel Jacobowitz  <dan@codesourcery.com>
	[BZ #783]
	* elf/tst-auditmod1.c: Add MIPS support.
	* sysdeps/generic/ldsodefs.h (La_mips_32_regs): New.
	(La_mips_32_retval): New.
	(La_mips_64_regs): New.
	(La_mips_64_retval): New.
	(struct audit_ifaces): Add MIPS entries.
	* sysdeps/mips/dl-machine.h: Check RESOLVE_MAP instead of RESOLVE.
	(elf_machine_runtime_link_map, ELF_DL_FRAME_SIZE,
	ELF_DL_SAVE_ARG_REGS, ELF_DL_RESTORE_ARG_REGS,
	ELF_MACHINE_RUNTIME_TRAMPOLINE): Move to dl-trampoline.c.
	(RTLD_START): Align the stack before calling _dl_init_internal.
	Use .ent for _dl_start_user.
	(ARCH_LA_PLTENTER, ARCH_LA_PLTEXIT): Define.
	(elf_machine_rel, elf_machine_rel_relative, elf_machine_lazy_rel)
	(elf_machine_runtime_setup): Use "auto inline".
	(elf_machine_rela, elf_machine_rela_relative): Provide empty versions.
	(elf_machine_got_rel): Likewise.  Use RESOLVE_MAP.
	* sysdeps/mips/dl-trampoline.c: New file.
	* sysdeps/mips/bits/link.h: New file.
	* sysdeps/unix/sysv/linux/mips/mips32/sysdep.h
	(internal_syscall5): Use register operands instead of non-lvalue
	memory operands.
	(internal_syscall6): Likewise.
	(internal_syscall7): Likewise.
2005-03-28  Daniel Jacobowitz  <dan@codesourcery.com>

	[BZ #783]
	* elf/tst-auditmod1.c: Add MIPS support.
	* sysdeps/generic/ldsodefs.h (La_mips_32_regs): New.
	(La_mips_32_retval): New.
	(La_mips_64_regs): New.
	(La_mips_64_retval): New.
	(struct audit_ifaces): Add MIPS entries.
	* sysdeps/mips/dl-machine.h: Check RESOLVE_MAP instead of RESOLVE.
	(elf_machine_runtime_link_map, ELF_DL_FRAME_SIZE,
	ELF_DL_SAVE_ARG_REGS, ELF_DL_RESTORE_ARG_REGS,
	ELF_MACHINE_RUNTIME_TRAMPOLINE): Move to dl-trampoline.c.
	(RTLD_START): Align the stack before calling _dl_init_internal.
	Use .ent for _dl_start_user.
	(ARCH_LA_PLTENTER, ARCH_LA_PLTEXIT): Define.
	(elf_machine_rel, elf_machine_rel_relative, elf_machine_lazy_rel)
	(elf_machine_runtime_setup): Use "auto inline".
	(elf_machine_rela, elf_machine_rela_relative): Provide empty versions.
	(elf_machine_got_rel): Likewise.  Use RESOLVE_MAP.
	* sysdeps/mips/dl-trampoline.c: New file.
	* sysdeps/mips/bits/link.h: New file.
	* sysdeps/unix/sysv/linux/mips/mips32/sysdep.h
	(internal_syscall5): Use register operands instead of non-lvalue
	memory operands.
	(internal_syscall6): Likewise.
	(internal_syscall7): Likewise.
Diffstat (limited to 'sysdeps/generic')
-rw-r--r--sysdeps/generic/ldsodefs.h34
1 files changed, 34 insertions, 0 deletions
diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h
index dd1b2c8345..e1a934aeda 100644
--- a/sysdeps/generic/ldsodefs.h
+++ b/sysdeps/generic/ldsodefs.h
@@ -195,6 +195,10 @@ struct La_s390_64_regs;
 struct La_s390_64_retval;
 struct La_ia64_regs;
 struct La_ia64_retval;
+struct La_mips_32_regs;
+struct La_mips_32_retval;
+struct La_mips_64_regs;
+struct La_mips_64_retval;
 
 struct audit_ifaces
 {
@@ -251,6 +255,21 @@ struct audit_ifaces
 				     uintptr_t *, struct La_ia64_regs *,
 				     unsigned int *, const char *name,
 				     long int *framesizep);
+    Elf32_Addr (*mips_o32_gnu_pltenter) (Elf32_Sym *, unsigned int,
+					 uintptr_t *, uintptr_t *,
+					 const struct La_mips_32_regs *,
+					 unsigned int *, const char *name,
+					 long int *framesizep);
+    Elf32_Addr (*mips_n32_gnu_pltenter) (Elf32_Sym *, unsigned int,
+					 uintptr_t *, uintptr_t *,
+					 const struct La_mips_64_regs *,
+					 unsigned int *, const char *name,
+					 long int *framesizep);
+    Elf64_Addr (*mips_n64_gnu_pltenter) (Elf64_Sym *, unsigned int,
+					 uintptr_t *, uintptr_t *,
+					 const struct La_mips_64_regs *,
+					 unsigned int *, const char *name,
+					 long int *framesizep);
   };
   union
   {
@@ -294,6 +313,21 @@ struct audit_ifaces
 				      uintptr_t *,
 				      const struct La_ia64_regs *,
 				      struct La_ia64_retval *, const char *);
+    unsigned int (*mips_o32_gnu_pltexit) (Elf32_Sym *, unsigned int,
+					  uintptr_t *, uintptr_t *,
+					  const struct La_mips_32_regs *,
+					  struct La_mips_32_retval *,
+					  const char *);
+    unsigned int (*mips_n32_gnu_pltexit) (Elf32_Sym *, unsigned int,
+					  uintptr_t *, uintptr_t *,
+					  const struct La_mips_64_regs *,
+					  struct La_mips_64_retval *,
+					  const char *);
+    unsigned int (*mips_n64_gnu_pltexit) (Elf64_Sym *, unsigned int,
+					  uintptr_t *, uintptr_t *,
+					  const struct La_mips_64_regs *,
+					  struct La_mips_64_retval *,
+					  const char *);
   };
   unsigned int (*objclose) (uintptr_t *);