diff --git a/ChangeLog b/ChangeLog index 6be197e155..36a9053dad 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,60 @@ +2012-07-26 Joseph Myers + + * 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. + 2012-07-26 Andreas Jaeger * sysdeps/unix/sysv/linux/s390/sys/ptrace.h: Add __THROW for diff --git a/elf/tst-auditmod1.c b/elf/tst-auditmod1.c index 108d6ded59..227a3b623a 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 #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 a9bb0e22c3..1a41ca80c0 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 ElfW(Addr) diff --git a/elf/tst-auditmod4b.c b/elf/tst-auditmod4b.c index 7778d6a172..80aaedcd3e 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 #ifdef __AVX__ diff --git a/elf/tst-auditmod5b.c b/elf/tst-auditmod5b.c index 3a4221536c..576183d722 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 ElfW(Addr) diff --git a/elf/tst-auditmod6b.c b/elf/tst-auditmod6b.c index a9fe5dcadc..b1c155a26e 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 #ifdef __AVX__ diff --git a/elf/tst-auditmod6c.c b/elf/tst-auditmod6c.c index 9b1063b23f..88adb21aa1 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 #ifdef __AVX__ diff --git a/elf/tst-auditmod7b.c b/elf/tst-auditmod7b.c index 1ae9e72769..68052efe97 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 #ifdef __AVX__ diff --git a/ports/ChangeLog.alpha b/ports/ChangeLog.alpha index 65536e51bb..3094fcd214 100644 --- a/ports/ChangeLog.alpha +++ b/ports/ChangeLog.alpha @@ -1,3 +1,7 @@ +2012-07-26 Joseph Myers + + * sysdeps/alpha/tst-audit.h (int_retval): Define. + 2012-07-26 Andreas Jaeger * sysdeps/unix/sysv/linux/alpha/bits/siginfo.h (siginfo_t): Add diff --git a/ports/sysdeps/alpha/tst-audit.h b/ports/sysdeps/alpha/tst-audit.h index 7e3022a1b4..44e0db4af3 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 402e7c0665..45bc6039b2 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 0000000000..082c559c74 --- /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 + . */ + +#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 0000000000..3faac8daa2 --- /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 + . */ + +#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 0000000000..cee3f5b876 --- /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 + . */ + +#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 0000000000..051e5abaf0 --- /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 + . */ + +#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 0000000000..3b4fac4fc0 --- /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 + . */ + +#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 0000000000..bb8db9895d --- /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 + . */ + +#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 0000000000..f3aaf13d88 --- /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 + . */ + +#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 0000000000..7dd470130e --- /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 + . */ + +#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 0000000000..00cd36985a --- /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 + . */ + +#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