Make guality.h handle Yama restricted ptrace mode
authorRichard Sandiford <richard.sandiford@arm.com>
Mon, 8 Jul 2019 06:21:05 +0000 (06:21 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Mon, 8 Jul 2019 06:21:05 +0000 (06:21 +0000)
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.

2019-07-08  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.

From-SVN: r273192

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/guality/guality.h

index 12e5bc167e06e0b1e7f6994eacbb43405a5cc2bb..911dc2167359ec72b33155ebee1e8bc142fd7e56 100644 (file)
@@ -1,3 +1,8 @@
+2019-07-08  Richard Sandiford  <richard.sandiford@arm.com>
+
+       * gcc.dg/guality/guality.h: Include <sys/prctl.h> on Linux targets.
+       (main): Use PR_SET_PTRACER where available.
+
 2019-07-07  Paul Thomas  <pault@gcc.gnu.org>
 
        PR fortran/91077
index 7a164754dd84444621892e2b0ad7ada457a8fced..d41327c24d50b518f4600ae9f68f93ebd7d21748 100644 (file)
@@ -23,6 +23,9 @@ along with GCC; see the file COPYING3.  If not see
 #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)
     {