This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: Move testsuite audit definitions to sysdeps tst-audit.h files
- From: Andreas Krebbel <krebbel at linux dot vnet dot ibm dot com>
- To: "Joseph S. Myers" <joseph at codesourcery dot com>
- Cc: libc-alpha at sourceware dot org, libc-ports at sourceware dot org, Richard Henderson <rth at twiddle dot net>, ryan dot arnold at gmail dot com, David Miller <davem at davemloft dot net>, Thomas Schwinge <thomas at codesourcery dot com>, Kaz Kojima <kkojima at rr dot iij4u dot or dot jp>
- Date: Fri, 20 Jul 2012 12:39:01 +0200
- Subject: Re: Move testsuite audit definitions to sysdeps tst-audit.h files
- References: <Pine.LNX.4.64.1207192356060.15740@digraph.polyomino.org.uk>
On 07/20/2012 01:57 AM, Joseph S. Myers wrote:
> Similar to my patch for ldsodefs.h, this patch moves the auditing
> definitions for testcases (tst-auditmod1.c, plus duplicate copies of
> the x86_64 definitions in several more x86_64-specific tests) to
> tst-audit.h files for libc architectures. In the case of alpha, the
> libc tst-auditmod1.c still had definitions for a ports architecture -
> while alpha had a tst-audit.h file with four of the five required
> macros, so I added the missing macro there.
>
> The structure of the header files reflects that of the previous
> definitions in tst-auditmod1.c (thus, most cases have separate files
> for 32-bit and 64-bit, while x86_64 has a single file containing
> definitions for both 64-bit and x32 with one of the macros having an
> unconditional definition and the others being conditional).
>
> Tested x86 and x86_64. Could architecture maintainers test / review
> the changes for other architectures?
No regressions on s390 and s390x.
Bye,
-Andreas-
>
> 2012-07-19 Joseph Myers <joseph@codesourcery.com>
>
> * elf/tst-auditmod1.c (pltenter): Remove all definitions of macro.
> (pltexit): Likewise.
> (La_regs): Likewise.
> (La_retval): Likewise.
> (int_retval): Likewise.
> Update #error for removed macros to refer only to definitions in
> tst-audit.h.
> * elf/tst-auditmod3b.c (pltenter): Remove all definitions of
> macro.
> (pltexit): Likewise.
> (La_regs): Likewise.
> (La_retval): Likewise.
> (int_retval): Likewise.
> * elf/tst-auditmod4b.c (pltenter): Remove all definitions of
> macro.
> (pltexit): Likewise.
> (La_regs): Likewise.
> (La_retval): Likewise.
> (int_retval): Likewise.
> * elf/tst-auditmod5b.c (pltenter): Remove all definitions of
> macro.
> (pltexit): Likewise.
> (La_regs): Likewise.
> (La_retval): Likewise.
> (int_retval): Likewise.
> * elf/tst-auditmod6b.c (pltenter): Remove all definitions of
> macro.
> (pltexit): Likewise.
> (La_regs): Likewise.
> (La_retval): Likewise.
> (int_retval): Likewise.
> * elf/tst-auditmod6c.c (pltenter): Remove all definitions of
> macro.
> (pltexit): Likewise.
> (La_regs): Likewise.
> (La_retval): Likewise.
> (int_retval): Likewise.
> * elf/tst-auditmod7b.c (pltenter): Remove all definitions of
> macro.
> (pltexit): Likewise.
> (La_regs): Likewise.
> (La_retval): Likewise.
> (int_retval): Likewise.
> * sysdeps/generic/tst-audit.h: Update comment to refer only to
> macro definitions in tst-audit.h.
> * sysdeps/i386/tst-audit.h: New file.
> * sysdeps/powerpc/powerpc32/tst-audit.h: Likewise.
> * sysdeps/powerpc/powerpc64/tst-audit.h: Likewise.
> * sysdeps/s390/s390-32/tst-audit.h: Likewise.
> * sysdeps/s390/s390-64/tst-audit.h: Likewise.
> * sysdeps/sh/tst-audit.h: Likewise.
> * sysdeps/sparc/sparc32/tst-audit.h: Likewise.
> * sysdeps/sparc/sparc64/tst-audit.h: Likewise.
> * sysdeps/x86_64/tst-audit.h: Likewise.
>
> ports/ChangeLog.alpha:
> 2012-07-19 Joseph Myers <joseph@codesourcery.com>
>
> * sysdeps/alpha/tst-audit.h (int_retval): Define.
>
> diff --git a/elf/tst-auditmod1.c b/elf/tst-auditmod1.c
> index 108d6de..227a3b6 100644
> --- a/elf/tst-auditmod1.c
> +++ b/elf/tst-auditmod1.c
> @@ -102,79 +102,10 @@ la_symbind64 (Elf64_Sym *sym, unsigned int ndx, uintptr_t *refcook,
> return sym->st_value;
> }
>
> -#ifdef __i386__
> -# define pltenter la_i86_gnu_pltenter
> -# define pltexit la_i86_gnu_pltexit
> -# define La_regs La_i86_regs
> -# define La_retval La_i86_retval
> -# define int_retval lrv_eax
> -#elif defined __x86_64__
> -# ifndef __ILP32__
> -# 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
> -# define pltexit la_ppc32_gnu_pltexit
> -# define La_regs La_ppc32_regs
> -# define La_retval La_ppc32_retval
> -# define int_retval lrv_r3
> -#elif defined __powerpc__ && __WORDSIZE == 64
> -# define pltenter la_ppc64_gnu_pltenter
> -# define pltexit la_ppc64_gnu_pltexit
> -# define La_regs La_ppc64_regs
> -# define La_retval La_ppc64_retval
> -# define int_retval lrv_r3
> -#elif defined __sh__
> -# define pltenter la_sh_gnu_pltenter
> -# define pltexit la_sh_gnu_pltexit
> -# define La_regs La_sh_regs
> -# define La_retval La_sh_retval
> -# define int_retval lrv_r0
> -#elif defined __alpha__
> -# define pltenter la_alpha_gnu_pltenter
> -# define pltexit la_alpha_gnu_pltexit
> -# define La_regs La_alpha_regs
> -# define La_retval La_alpha_retval
> -# define int_retval lrv_r0
> -#elif defined __s390__ && __WORDSIZE == 32
> -# define pltenter la_s390_32_gnu_pltenter
> -# define pltexit la_s390_32_gnu_pltexit
> -# define La_regs La_s390_32_regs
> -# define La_retval La_s390_32_retval
> -# define int_retval lrv_r2
> -#elif defined __s390__ && __WORDSIZE == 64
> -# define pltenter la_s390_64_gnu_pltenter
> -# define pltexit la_s390_64_gnu_pltexit
> -# define La_regs La_s390_64_regs
> -# define La_retval La_s390_64_retval
> -# define int_retval lrv_r2
> -#elif defined __sparc__ && __WORDSIZE == 32
> -# define pltenter la_sparc32_gnu_pltenter
> -# define pltexit la_sparc32_gnu_pltexit
> -# define La_regs La_sparc32_regs
> -# define La_retval La_sparc32_retval
> -# define int_retval lrv_reg[0]
> -#elif defined __sparc__ && __WORDSIZE == 64
> -# define pltenter la_sparc64_gnu_pltenter
> -# define pltexit la_sparc64_gnu_pltexit
> -# define La_regs La_sparc64_regs
> -# define La_retval La_sparc64_retval
> -# define int_retval lrv_reg[0]
> -#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/tst-audit.h or here"
> +# error "architecture specific code needed in sysdeps/CPU/tst-audit.h"
> #endif
>
>
> diff --git a/elf/tst-auditmod3b.c b/elf/tst-auditmod3b.c
> index a9bb0e2..1a41ca8 100644
> --- a/elf/tst-auditmod3b.c
> +++ b/elf/tst-auditmod3b.c
> @@ -105,19 +105,6 @@ la_symbind64 (Elf64_Sym *sym, unsigned int ndx, uintptr_t *refcook,
> return sym->st_value;
> }
>
> -# ifndef __ILP32__
> -# 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
> -
> #include <tst-audit.h>
>
> ElfW(Addr)
> diff --git a/elf/tst-auditmod4b.c b/elf/tst-auditmod4b.c
> index 7778d6a..80aaedc 100644
> --- a/elf/tst-auditmod4b.c
> +++ b/elf/tst-auditmod4b.c
> @@ -94,19 +94,6 @@ la_symbind64 (Elf64_Sym *sym, unsigned int ndx, uintptr_t *refcook,
> return sym->st_value;
> }
>
> -# ifndef __ILP32__
> -# 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
> -
> #include <tst-audit.h>
>
> #ifdef __AVX__
> diff --git a/elf/tst-auditmod5b.c b/elf/tst-auditmod5b.c
> index 3a42215..576183d 100644
> --- a/elf/tst-auditmod5b.c
> +++ b/elf/tst-auditmod5b.c
> @@ -95,19 +95,6 @@ la_symbind64 (Elf64_Sym *sym, unsigned int ndx, uintptr_t *refcook,
> return sym->st_value;
> }
>
> -# ifndef __ILP32__
> -# 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
> -
> #include <tst-audit.h>
>
> ElfW(Addr)
> diff --git a/elf/tst-auditmod6b.c b/elf/tst-auditmod6b.c
> index a9fe5dc..b1c155a 100644
> --- a/elf/tst-auditmod6b.c
> +++ b/elf/tst-auditmod6b.c
> @@ -94,19 +94,6 @@ la_symbind64 (Elf64_Sym *sym, unsigned int ndx, uintptr_t *refcook,
> return sym->st_value;
> }
>
> -# ifndef __ILP32__
> -# 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
> -
> #include <tst-audit.h>
>
> #ifdef __AVX__
> diff --git a/elf/tst-auditmod6c.c b/elf/tst-auditmod6c.c
> index 9b1063b..88adb21 100644
> --- a/elf/tst-auditmod6c.c
> +++ b/elf/tst-auditmod6c.c
> @@ -94,19 +94,6 @@ la_symbind64 (Elf64_Sym *sym, unsigned int ndx, uintptr_t *refcook,
> return sym->st_value;
> }
>
> -# ifndef __ILP32__
> -# 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
> -
> #include <tst-audit.h>
>
> #ifdef __AVX__
> diff --git a/elf/tst-auditmod7b.c b/elf/tst-auditmod7b.c
> index 1ae9e72..68052ef 100644
> --- a/elf/tst-auditmod7b.c
> +++ b/elf/tst-auditmod7b.c
> @@ -94,19 +94,6 @@ la_symbind64 (Elf64_Sym *sym, unsigned int ndx, uintptr_t *refcook,
> return sym->st_value;
> }
>
> -#ifndef __ILP32__
> -# 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
> -
> #include <tst-audit.h>
>
> #ifdef __AVX__
> diff --git a/ports/sysdeps/alpha/tst-audit.h b/ports/sysdeps/alpha/tst-audit.h
> index 7e3022a..44e0db4 100644
> --- a/ports/sysdeps/alpha/tst-audit.h
> +++ b/ports/sysdeps/alpha/tst-audit.h
> @@ -21,3 +21,4 @@
> #define pltexit la_alpha_gnu_pltexit
> #define La_regs La_alpha_regs
> #define La_retval La_alpha_retval
> +#define int_retval lrv_r0
> diff --git a/sysdeps/generic/tst-audit.h b/sysdeps/generic/tst-audit.h
> index 402e7c0..45bc603 100644
> --- a/sysdeps/generic/tst-audit.h
> +++ b/sysdeps/generic/tst-audit.h
> @@ -1,5 +1,5 @@
> -/* 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.
> +/* Machines can supply a tst-audit.h to define these macros used in
> + elf/tst-auditmod1.c.
>
>
> # define pltenter la_CPU_gnu_pltenter
> diff --git a/sysdeps/i386/tst-audit.h b/sysdeps/i386/tst-audit.h
> new file mode 100644
> index 0000000..082c559
> --- /dev/null
> +++ b/sysdeps/i386/tst-audit.h
> @@ -0,0 +1,25 @@
> +/* Definitions for testing PLT entry/exit auditing. i386 version.
> +
> + Copyright (C) 2012 Free Software Foundation, Inc.
> +
> + This file is part of the GNU C Library.
> +
> + The GNU C Library is free software; you can redistribute it and/or
> + modify it under the terms of the GNU Lesser General Public
> + License as published by the Free Software Foundation; either
> + version 2.1 of the License, or (at your option) any later version.
> +
> + The GNU C Library is distributed in the hope that it will be useful,
> + but WITHOUT ANY WARRANTY; without even the implied warranty of
> + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> + Lesser General Public License for more details.
> +
> + You should have received a copy of the GNU Lesser General Public
> + License along with the GNU C Library. If not, see
> + <http://www.gnu.org/licenses/>. */
> +
> +#define pltenter la_i86_gnu_pltenter
> +#define pltexit la_i86_gnu_pltexit
> +#define La_regs La_i86_regs
> +#define La_retval La_i86_retval
> +#define int_retval lrv_eax
> diff --git a/sysdeps/powerpc/powerpc32/tst-audit.h b/sysdeps/powerpc/powerpc32/tst-audit.h
> new file mode 100644
> index 0000000..3faac8d
> --- /dev/null
> +++ b/sysdeps/powerpc/powerpc32/tst-audit.h
> @@ -0,0 +1,25 @@
> +/* Definitions for testing PLT entry/exit auditing. PowerPC32 version.
> +
> + Copyright (C) 2012 Free Software Foundation, Inc.
> +
> + This file is part of the GNU C Library.
> +
> + The GNU C Library is free software; you can redistribute it and/or
> + modify it under the terms of the GNU Lesser General Public
> + License as published by the Free Software Foundation; either
> + version 2.1 of the License, or (at your option) any later version.
> +
> + The GNU C Library is distributed in the hope that it will be useful,
> + but WITHOUT ANY WARRANTY; without even the implied warranty of
> + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> + Lesser General Public License for more details.
> +
> + You should have received a copy of the GNU Lesser General Public
> + License along with the GNU C Library. If not, see
> + <http://www.gnu.org/licenses/>. */
> +
> +#define pltenter la_ppc32_gnu_pltenter
> +#define pltexit la_ppc32_gnu_pltexit
> +#define La_regs La_ppc32_regs
> +#define La_retval La_ppc32_retval
> +#define int_retval lrv_r3
> diff --git a/sysdeps/powerpc/powerpc64/tst-audit.h b/sysdeps/powerpc/powerpc64/tst-audit.h
> new file mode 100644
> index 0000000..cee3f5b
> --- /dev/null
> +++ b/sysdeps/powerpc/powerpc64/tst-audit.h
> @@ -0,0 +1,25 @@
> +/* Definitions for testing PLT entry/exit auditing. PowerPC64 version.
> +
> + Copyright (C) 2012 Free Software Foundation, Inc.
> +
> + This file is part of the GNU C Library.
> +
> + The GNU C Library is free software; you can redistribute it and/or
> + modify it under the terms of the GNU Lesser General Public
> + License as published by the Free Software Foundation; either
> + version 2.1 of the License, or (at your option) any later version.
> +
> + The GNU C Library is distributed in the hope that it will be useful,
> + but WITHOUT ANY WARRANTY; without even the implied warranty of
> + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> + Lesser General Public License for more details.
> +
> + You should have received a copy of the GNU Lesser General Public
> + License along with the GNU C Library. If not, see
> + <http://www.gnu.org/licenses/>. */
> +
> +#define pltenter la_ppc64_gnu_pltenter
> +#define pltexit la_ppc64_gnu_pltexit
> +#define La_regs La_ppc64_regs
> +#define La_retval La_ppc64_retval
> +#define int_retval lrv_r3
> diff --git a/sysdeps/s390/s390-32/tst-audit.h b/sysdeps/s390/s390-32/tst-audit.h
> new file mode 100644
> index 0000000..051e5ab
> --- /dev/null
> +++ b/sysdeps/s390/s390-32/tst-audit.h
> @@ -0,0 +1,25 @@
> +/* Definitions for testing PLT entry/exit auditing. S/390 32-bit version.
> +
> + Copyright (C) 2012 Free Software Foundation, Inc.
> +
> + This file is part of the GNU C Library.
> +
> + The GNU C Library is free software; you can redistribute it and/or
> + modify it under the terms of the GNU Lesser General Public
> + License as published by the Free Software Foundation; either
> + version 2.1 of the License, or (at your option) any later version.
> +
> + The GNU C Library is distributed in the hope that it will be useful,
> + but WITHOUT ANY WARRANTY; without even the implied warranty of
> + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> + Lesser General Public License for more details.
> +
> + You should have received a copy of the GNU Lesser General Public
> + License along with the GNU C Library. If not, see
> + <http://www.gnu.org/licenses/>. */
> +
> +#define pltenter la_s390_32_gnu_pltenter
> +#define pltexit la_s390_32_gnu_pltexit
> +#define La_regs La_s390_32_regs
> +#define La_retval La_s390_32_retval
> +#define int_retval lrv_r2
> diff --git a/sysdeps/s390/s390-64/tst-audit.h b/sysdeps/s390/s390-64/tst-audit.h
> new file mode 100644
> index 0000000..3b4fac4
> --- /dev/null
> +++ b/sysdeps/s390/s390-64/tst-audit.h
> @@ -0,0 +1,25 @@
> +/* Definitions for testing PLT entry/exit auditing. S/390 64-bit version.
> +
> + Copyright (C) 2012 Free Software Foundation, Inc.
> +
> + This file is part of the GNU C Library.
> +
> + The GNU C Library is free software; you can redistribute it and/or
> + modify it under the terms of the GNU Lesser General Public
> + License as published by the Free Software Foundation; either
> + version 2.1 of the License, or (at your option) any later version.
> +
> + The GNU C Library is distributed in the hope that it will be useful,
> + but WITHOUT ANY WARRANTY; without even the implied warranty of
> + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> + Lesser General Public License for more details.
> +
> + You should have received a copy of the GNU Lesser General Public
> + License along with the GNU C Library. If not, see
> + <http://www.gnu.org/licenses/>. */
> +
> +#define pltenter la_s390_64_gnu_pltenter
> +#define pltexit la_s390_64_gnu_pltexit
> +#define La_regs La_s390_64_regs
> +#define La_retval La_s390_64_retval
> +#define int_retval lrv_r2
> diff --git a/sysdeps/sh/tst-audit.h b/sysdeps/sh/tst-audit.h
> new file mode 100644
> index 0000000..bb8db98
> --- /dev/null
> +++ b/sysdeps/sh/tst-audit.h
> @@ -0,0 +1,25 @@
> +/* Definitions for testing PLT entry/exit auditing. SH version.
> +
> + Copyright (C) 2012 Free Software Foundation, Inc.
> +
> + This file is part of the GNU C Library.
> +
> + The GNU C Library is free software; you can redistribute it and/or
> + modify it under the terms of the GNU Lesser General Public
> + License as published by the Free Software Foundation; either
> + version 2.1 of the License, or (at your option) any later version.
> +
> + The GNU C Library is distributed in the hope that it will be useful,
> + but WITHOUT ANY WARRANTY; without even the implied warranty of
> + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> + Lesser General Public License for more details.
> +
> + You should have received a copy of the GNU Lesser General Public
> + License along with the GNU C Library. If not, see
> + <http://www.gnu.org/licenses/>. */
> +
> +#define pltenter la_sh_gnu_pltenter
> +#define pltexit la_sh_gnu_pltexit
> +#define La_regs La_sh_regs
> +#define La_retval La_sh_retval
> +#define int_retval lrv_r0
> diff --git a/sysdeps/sparc/sparc32/tst-audit.h b/sysdeps/sparc/sparc32/tst-audit.h
> new file mode 100644
> index 0000000..f3aaf13
> --- /dev/null
> +++ b/sysdeps/sparc/sparc32/tst-audit.h
> @@ -0,0 +1,25 @@
> +/* Definitions for testing PLT entry/exit auditing. SPARC32 version.
> +
> + Copyright (C) 2012 Free Software Foundation, Inc.
> +
> + This file is part of the GNU C Library.
> +
> + The GNU C Library is free software; you can redistribute it and/or
> + modify it under the terms of the GNU Lesser General Public
> + License as published by the Free Software Foundation; either
> + version 2.1 of the License, or (at your option) any later version.
> +
> + The GNU C Library is distributed in the hope that it will be useful,
> + but WITHOUT ANY WARRANTY; without even the implied warranty of
> + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> + Lesser General Public License for more details.
> +
> + You should have received a copy of the GNU Lesser General Public
> + License along with the GNU C Library. If not, see
> + <http://www.gnu.org/licenses/>. */
> +
> +#define pltenter la_sparc32_gnu_pltenter
> +#define pltexit la_sparc32_gnu_pltexit
> +#define La_regs La_sparc32_regs
> +#define La_retval La_sparc32_retval
> +#define int_retval lrv_reg[0]
> diff --git a/sysdeps/sparc/sparc64/tst-audit.h b/sysdeps/sparc/sparc64/tst-audit.h
> new file mode 100644
> index 0000000..7dd4701
> --- /dev/null
> +++ b/sysdeps/sparc/sparc64/tst-audit.h
> @@ -0,0 +1,25 @@
> +/* Definitions for testing PLT entry/exit auditing. SPARC64 version.
> +
> + Copyright (C) 2012 Free Software Foundation, Inc.
> +
> + This file is part of the GNU C Library.
> +
> + The GNU C Library is free software; you can redistribute it and/or
> + modify it under the terms of the GNU Lesser General Public
> + License as published by the Free Software Foundation; either
> + version 2.1 of the License, or (at your option) any later version.
> +
> + The GNU C Library is distributed in the hope that it will be useful,
> + but WITHOUT ANY WARRANTY; without even the implied warranty of
> + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> + Lesser General Public License for more details.
> +
> + You should have received a copy of the GNU Lesser General Public
> + License along with the GNU C Library. If not, see
> + <http://www.gnu.org/licenses/>. */
> +
> +#define pltenter la_sparc64_gnu_pltenter
> +#define pltexit la_sparc64_gnu_pltexit
> +#define La_regs La_sparc64_regs
> +#define La_retval La_sparc64_retval
> +#define int_retval lrv_reg[0]
> diff --git a/sysdeps/x86_64/tst-audit.h b/sysdeps/x86_64/tst-audit.h
> new file mode 100644
> index 0000000..00cd369
> --- /dev/null
> +++ b/sysdeps/x86_64/tst-audit.h
> @@ -0,0 +1,32 @@
> +/* Definitions for testing PLT entry/exit auditing. x86_64 version.
> +
> + Copyright (C) 2012 Free Software Foundation, Inc.
> +
> + This file is part of the GNU C Library.
> +
> + The GNU C Library is free software; you can redistribute it and/or
> + modify it under the terms of the GNU Lesser General Public
> + License as published by the Free Software Foundation; either
> + version 2.1 of the License, or (at your option) any later version.
> +
> + The GNU C Library is distributed in the hope that it will be useful,
> + but WITHOUT ANY WARRANTY; without even the implied warranty of
> + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> + Lesser General Public License for more details.
> +
> + You should have received a copy of the GNU Lesser General Public
> + License along with the GNU C Library. If not, see
> + <http://www.gnu.org/licenses/>. */
> +
> +#ifndef __ILP32__
> +# 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
>