Fix aarch64-linux-hw-point.c build problem
authorKevin Buettner <kevinb@redhat.com>
Wed, 24 Feb 2021 18:48:04 +0000 (11:48 -0700)
committerKevin Buettner <kevinb@redhat.com>
Wed, 24 Feb 2021 19:54:39 +0000 (12:54 -0700)
Due to a recent glibc header file change, the file
nat/aarch64-linux-hw-point.c no longer builds on Fedora rawhide.

An enum for PTRACE_SYSEMU is now provided by <sys/ptrace.h>.  In the
past, PTRACE_SYSEMU was defined only in <asm/ptrace.h>.  This is
what it looks like...

In <asm/ptrace.h>:

 #define PTRACE_SYSEMU   31

In <sys/ptrace.h>:

enum __ptrace_request
{
  ...
  PTRACE_SYSEMU = 31,
 #define PT_SYSEMU PTRACE_SYSEMU

  ...
}

When <asm/ptrace.h> and <sys/ptrace.h> are both included in a source
file, we run into the following build problem when the former is
included before the latter:

In file included from nat/aarch64-linux-hw-point.c:26:
/usr/include/sys/ptrace.h:86:3: error: expected identifier before numeric constant
   86 |   PTRACE_SYSEMU = 31,
      |   ^~~~~~~~~~~~~

(There are more errors after this one too.)

The file builds without error when <asm/ptrace.h> is included after
<sys/ptrace.h>.  I found that this is already done in
nat/aarch64-sve-linux-ptrace.h (which is included by
nat/aarch64-linux-ptrace.c).

I've tested this change on Fedora rawhide and Fedora 33, both
running on an aarch64 machine.

gdb/ChangeLog:

* nat/aarch64-linux-hw-point.c: Include <asm/ptrace.h> after
<sys/ptrace.h>.

gdb/ChangeLog
gdb/nat/aarch64-linux-hw-point.c

index 00a71fe90256dd5852511e19c32148c8f6a23162..f7052421935a6f9c55871c9c2cf7c058c7ce41bc 100644 (file)
@@ -1,3 +1,8 @@
+2021-02-24  Kevin Buettner  <kevinb@redhat.com>
+
+       * nat/aarch64-linux-hw-point.c: Include <asm/ptrace.h> after
+       <sys/ptrace.h>.
+
 2021-02-24  Andrew Burgess  <andrew.burgess@embecosm.com>
 
        * exec.c (set_section_command): Move variable declarations into
index 73e4edd68cba9c28f96fa8b960a1313d7fdf7eaf..0278ac2bb28632b35e77f027b7b4661800a4612a 100644 (file)
@@ -23,8 +23,8 @@
 #include "aarch64-linux-hw-point.h"
 
 #include <sys/uio.h>
-#include <asm/ptrace.h>
 #include <sys/ptrace.h>
+#include <asm/ptrace.h>
 #include <elf.h>
 
 /* Number of hardware breakpoints/watchpoints the target supports.