Make guality.h handle Yama restricted ptrace mode

Message ID mptd0imuqta.fsf@arm.com
State New
Headers show
Series
  • Make guality.h handle Yama restricted ptrace mode
Related show

Commit Message

Richard Sandiford July 7, 2019, 9:39 a.m.
guality.exp is silently skipped on Linux systems with
kernel.yama.ptrace_scope=1 because gdb fails to attach to the
sanity check test.  This patch uses PR_SET_PTRACER (where available)
to avoid this.

prctl was apparently added in Linux 2.1.57, so I don't think we
need any tests other than __linux for the #include.

Tested on aarch64-linux-gnu and x86_64-linux-gnu.  OK to install?

Richard


2019-07-07  Richard Sandiford  <richard.sandiford@arm.com>

gcc/testsuite/
	* gcc.dg/guality/guality.h: Include <sys/prctl.h> on Linux targets.
	(main): Use PR_SET_PTRACER where available.

Comments

Jeff Law July 7, 2019, 6:59 p.m. | #1
On 7/7/19 3:39 AM, Richard Sandiford wrote:
> guality.exp is silently skipped on Linux systems with

> kernel.yama.ptrace_scope=1 because gdb fails to attach to the

> sanity check test.  This patch uses PR_SET_PTRACER (where available)

> to avoid this.

> 

> prctl was apparently added in Linux 2.1.57, so I don't think we

> need any tests other than __linux for the #include.

> 

> Tested on aarch64-linux-gnu and x86_64-linux-gnu.  OK to install?

> 

> Richard

> 

> 

> 2019-07-07  Richard Sandiford  <richard.sandiford@arm.com>

> 

> gcc/testsuite/

> 	* gcc.dg/guality/guality.h: Include <sys/prctl.h> on Linux targets.

> 	(main): Use PR_SET_PTRACER where available.

OK
jeff

Patch

Index: gcc/testsuite/gcc.dg/guality/guality.h
===================================================================
--- gcc/testsuite/gcc.dg/guality/guality.h	2019-03-08 18:15:03.052868249 +0000
+++ gcc/testsuite/gcc.dg/guality/guality.h	2019-07-07 10:18:20.240698144 +0100
@@ -23,6 +23,9 @@  the Free Software Foundation; either ver
 #include <string.h>
 #include <stdint.h>
 #include <unistd.h>
+#ifdef __linux
+#include <sys/prctl.h>
+#endif
 
 /* This is a first cut at checking that debug information matches
    run-time.  The idea is to annotate programs with GUALCHK* macros
@@ -214,6 +217,10 @@  main (int argc, char *argv[])
   int i;
   char *argv0 = argv[0];
 
+#if defined(PR_SET_PTRACER_ANY)
+  prctl (PR_SET_PTRACER, PR_SET_PTRACER_ANY, 0, 0, 0);
+#endif
+
   guality_gdb_command = getenv ("GUALITY_GDB");
   if (!guality_gdb_command)
     {