* Move testsuite audit definitions to sysdeps tst-audit.h files
@ 2012-07-19 23:58 Joseph S. Myers
2012-07-20 1:50 ` Kaz Kojima
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Joseph S. Myers @ 2012-07-19 23:58 UTC (permalink / raw)
To: libc-alpha
Cc: libc-ports, Richard Henderson, ryan.arnold, Andreas Krebbel,
David Miller, Thomas Schwinge, Kaz Kojima
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?
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
--
Joseph S. Myers
joseph@codesourcery.com
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Move testsuite audit definitions to sysdeps tst-audit.h files
2012-07-19 23:58 Move testsuite audit definitions to sysdeps tst-audit.h files Joseph S. Myers
@ 2012-07-20 1:50 ` Kaz Kojima
2012-07-20 10:39 ` Andreas Krebbel
2012-07-25 16:21 ` Ryan S. Arnold
2 siblings, 0 replies; 4+ messages in thread
From: Kaz Kojima @ 2012-07-20 1:50 UTC (permalink / raw)
To: joseph; +Cc: libc-alpha, libc-ports, thomas
"Joseph S. Myers" <joseph@codesourcery.com> wrote:
> Tested x86 and x86_64. Could architecture maintainers test / review
> the changes for other architectures?
SH portion works fine.
Regards,
kaz
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Move testsuite audit definitions to sysdeps tst-audit.h files
2012-07-19 23:58 Move testsuite audit definitions to sysdeps tst-audit.h files Joseph S. Myers
2012-07-20 1:50 ` Kaz Kojima
@ 2012-07-20 10:39 ` Andreas Krebbel
2012-07-25 16:21 ` Ryan S. Arnold
2 siblings, 0 replies; 4+ messages in thread
From: Andreas Krebbel @ 2012-07-20 10:39 UTC (permalink / raw)
To: Joseph S. Myers
Cc: libc-alpha, libc-ports, Richard Henderson, ryan.arnold,
David Miller, Thomas Schwinge, Kaz Kojima
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
>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Move testsuite audit definitions to sysdeps tst-audit.h files
2012-07-19 23:58 Move testsuite audit definitions to sysdeps tst-audit.h files Joseph S. Myers
2012-07-20 1:50 ` Kaz Kojima
2012-07-20 10:39 ` Andreas Krebbel
@ 2012-07-25 16:21 ` Ryan S. Arnold
2 siblings, 0 replies; 4+ messages in thread
From: Ryan S. Arnold @ 2012-07-25 16:21 UTC (permalink / raw)
To: Joseph S. Myers; +Cc: libc-alpha, libc-ports
On Thu, Jul 19, 2012 at 6:57 PM, Joseph S. Myers
<joseph@codesourcery.com> 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?
Tested on powerpc32 and powerpc64 and no new regressions were observed.
Ryan S. Arnold
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2012-07-25 16:21 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-07-19 23:58 Move testsuite audit definitions to sysdeps tst-audit.h files Joseph S. Myers
2012-07-20 1:50 ` Kaz Kojima
2012-07-20 10:39 ` Andreas Krebbel
2012-07-25 16:21 ` Ryan S. Arnold
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).