about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog9
-rw-r--r--elf/Makefile5
-rw-r--r--elf/tst-auditmod1.c8
-rw-r--r--sysdeps/generic/ldsodefs.h6
-rw-r--r--sysdeps/generic/tst-audit.h11
5 files changed, 35 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index a34f5fd4ef..0584ce85b5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2005-10-05  Roland McGrath  <roland@redhat.com>
+
+	* sysdeps/generic/ldsodefs.h (struct audit_ifaces):
+	Use ARCH_PLTENTER_MEMBERS and ARCH_PLTEXIT_MEMBERS macros if defined.
+	* elf/tst-auditmod1.c: Include <tst-audit.h> to define more
+	architecture-specific code.
+	* sysdeps/generic/tst-audit.h: New file.
+	* elf/Makefile (distribute): Add it.
+
 2005-10-05  Daniel Jacobowitz  <dan@codesourcery.com>
 
 	* elf/elf.h (R_ARM_TLS_DTPMOD32, R_ARM_TLS_DTPOFF32,
diff --git a/elf/Makefile b/elf/Makefile
index a563f0190f..123b448ff1 100644
--- a/elf/Makefile
+++ b/elf/Makefile
@@ -86,11 +86,12 @@ distribute	:= rtld-Rules \
 		   tst-deep1mod1.c tst-deep1mod2.c tst-deep1mod3.c \
 		   unload3mod1.c unload3mod2.c unload3mod3.c unload3mod4.c \
 		   unload4mod1.c unload4mod2.c unload4mod3.c unload4mod4.c \
-		   unload6mod1.c unload6mod2.c unload6mod3.c tst-auditmod1.c \
+		   unload6mod1.c unload6mod2.c unload6mod3.c \
+		   tst-auditmod1.c tst-audit.sh \
 		   order2mod1.c order2mod2.c order2mod3.c order2mod4.c \
 		   tst-stackguard1.c tst-stackguard1-static.c \
 		   tst-array5.c tst-array5-static.c tst-array5dep.c \
-		   tst-array5.exp 
+		   tst-array5.exp
 
 CFLAGS-dl-runtime.c = -fexceptions -fasynchronous-unwind-tables
 CFLAGS-dl-lookup.c = -fexceptions -fasynchronous-unwind-tables
diff --git a/elf/tst-auditmod1.c b/elf/tst-auditmod1.c
index 73d341d72b..e9f6fe9c4d 100644
--- a/elf/tst-auditmod1.c
+++ b/elf/tst-auditmod1.c
@@ -192,8 +192,12 @@ la_symbind64 (Elf64_Sym *sym, unsigned int ndx, uintptr_t *refcook,
 # define La_regs La_sparc64_regs
 # define La_retval La_sparc64_retval
 # define int_retval lrv_reg[0]
-#else
-# error "architecture specific code needed"
+#endif
+
+#include <tst-audit.h>
+#if (!defined (pltenter) || !defined (pltexit) || !defined (La_regs) \
+     || !defined (La_retval) || !defined (int_retval))
+# error "architecture specific code needed in sysdeps/CPU/tls-audit.h or here"
 #endif
 
 
diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h
index 191ae4d4fb..b8333ed79c 100644
--- a/sysdeps/generic/ldsodefs.h
+++ b/sysdeps/generic/ldsodefs.h
@@ -292,6 +292,9 @@ struct audit_ifaces
 					const struct La_sparc64_regs *,
 					unsigned int *, const char *name,
 					long int *framesizep);
+#ifdef ARCH_PLTENTER_MEMBERS
+    ARCH_PLTENTER_MEMBERS;
+#endif
   };
   union
   {
@@ -360,6 +363,9 @@ struct audit_ifaces
 					 const struct La_sparc32_regs *,
 					 struct La_sparc32_retval *,
 					 const char *);
+#ifdef ARCH_PLTEXIT_MEMBERS
+    ARCH_PLTEXIT_MEMBERS;
+#endif
   };
   unsigned int (*objclose) (uintptr_t *);
 
diff --git a/sysdeps/generic/tst-audit.h b/sysdeps/generic/tst-audit.h
new file mode 100644
index 0000000000..402e7c0665
--- /dev/null
+++ b/sysdeps/generic/tst-audit.h
@@ -0,0 +1,11 @@
+/* Some machines have these macros defined in elf/tst-auditmod1.c directly.
+   New machines can supply a tst-audit.h to define these macros used there.
+
+
+# define pltenter la_CPU_gnu_pltenter
+# define pltexit la_CPU_gnu_pltexit
+# define La_regs La_CPU_regs
+# define La_retval La_CPU_retval
+# define int_retval lrv_RETVALREG
+
+*/