Make guality.h handle Yama restricted ptrace mode

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
This commit is contained in:
Richard Sandiford 2019-07-08 06:21:05 +00:00 committed by Richard Sandiford
parent 7ef0040235
commit 0de175b8d6
2 changed files with 12 additions and 0 deletions

View 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

View 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)
{