about summary refs log tree commit diff
path: root/elf/tst-auditmod1.c
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2012-03-21 17:14:49 -0700
committerH.J. Lu <hjl.tools@gmail.com>2012-03-21 17:14:49 -0700
commitc8e43ba739d696b3ff9a7b71786de8fab92950bc (patch)
tree74c34c4a6c88aa8adce8a4e5524e0fd89aff3121 /elf/tst-auditmod1.c
parentdcb33988382dd79655cc9efbafe2981de0be5d12 (diff)
downloadglibc-c8e43ba739d696b3ff9a7b71786de8fab92950bc.tar.gz
glibc-c8e43ba739d696b3ff9a7b71786de8fab92950bc.tar.xz
glibc-c8e43ba739d696b3ff9a7b71786de8fab92950bc.zip
Add x32 support to dynamic linker audit
Diffstat (limited to 'elf/tst-auditmod1.c')
-rw-r--r--elf/tst-auditmod1.c18
1 files changed, 13 insertions, 5 deletions
diff --git a/elf/tst-auditmod1.c b/elf/tst-auditmod1.c
index 69da278f28..67fc758ac3 100644
--- a/elf/tst-auditmod1.c
+++ b/elf/tst-auditmod1.c
@@ -109,10 +109,17 @@ la_symbind64 (Elf64_Sym *sym, unsigned int ndx, uintptr_t *refcook,
 # define La_retval La_i86_retval
 # define int_retval lrv_eax
 #elif defined __x86_64__
-# define pltenter la_x86_64_gnu_pltenter
-# define pltexit la_x86_64_gnu_pltexit
-# define La_regs La_x86_64_regs
-# define La_retval La_x86_64_retval
+# ifdef __LP64__
+#  define pltenter la_x86_64_gnu_pltenter
+#  define pltexit la_x86_64_gnu_pltexit
+#  define La_regs La_x86_64_regs
+#  define La_retval La_x86_64_retval
+# else
+#  define pltenter la_x32_gnu_pltenter
+#  define pltexit la_x32_gnu_pltexit
+#  define La_regs La_x32_regs
+#  define La_retval La_x32_retval
+# endif
 # define int_retval lrv_rax
 #elif defined __powerpc__ && __WORDSIZE == 32
 # define pltenter la_ppc32_gnu_pltenter
@@ -188,7 +195,8 @@ pltexit (ElfW(Sym) *sym, unsigned int ndx, uintptr_t *refcook,
 	 const char *symname)
 {
   printf ("pltexit: symname=%s, st_value=%#lx, ndx=%u, retval=%tu\n",
-	  symname, (long int) sym->st_value, ndx, outregs->int_retval);
+	  symname, (long int) sym->st_value, ndx,
+	  (ptrdiff_t) outregs->int_retval);
 
   return 0;
 }