AArch64: Fix the gdb build with musl libc
authorSzabolcs Nagy <szabolcs.nagy@arm.com>
Thu, 13 Dec 2018 17:47:17 +0000 (17:47 +0000)
committerSzabolcs Nagy <szabolcs.nagy@arm.com>
Mon, 17 Dec 2018 10:34:26 +0000 (10:34 +0000)
Including asm/sigcontext.h together with libc headers is not valid. In
general linux headers may not work with libc headers, so mixing them
should be avoided, especially when the linux header defines types that
are also exposed in libc headers.

In case of asm/sigcontext.h glibc happens to work because glibc signal.h
directly includes it, but e.g. in musl libc signal.h replicates the
sigcontext.h definitions in an abi compatible way which are in conflict
with the linux definitions when both headers are included.

Since old linux headers or old libc headers may not have the necessary
definitions, gdb has to replicate the definitions it relies on anyway.
Which is fine since all definitions must be ABI stable. For linux apis
that are not available via libc headers, replicating the definitions in
gdb is the most reliable way to use them.

Note: asm/ptrace.h includes asm/sigcontext.h in some versions of linux
headers, which is just as problematic and should be fixed in linux.

gdb/ChangeLog:

* nat/aarch64-sve-linux-ptrace.h: Include signal.h instead of
asm/sigcontext.h.

gdb/ChangeLog
gdb/nat/aarch64-sve-linux-ptrace.h

index 695bc0573b16ce63900eafc6edfcb041581d3cfc..d5e376c53c877d2bc5a74b4ba92829540228eca6 100644 (file)
@@ -1,3 +1,8 @@
+2018-12-17  Szabolcs Nagy  <szabolcs.nagy@arm.com>
+
+       * nat/aarch64-sve-linux-ptrace.h: Include signal.h instead of
+       asm/sigcontext.h.
+
 2018-12-17  Philippe Waroquiers  <philippe.waroquiers@skynet.be>
 
        * nat/linux-ptrace.c (kill_child): Fix ARI warning by removing
index 029e753ffe896607605b9539386fedf7e0cedb71..172ae39432f1abbfa47f2a26ee3c9c123bd216b6 100644 (file)
@@ -20,7 +20,7 @@
 #ifndef AARCH64_SVE_LINUX_PTRACE_H
 #define AARCH64_SVE_LINUX_PTRACE_H
 
-#include <asm/sigcontext.h>
+#include <signal.h>
 #include <sys/utsname.h>
 #include <sys/ptrace.h>
 #include <asm/ptrace.h>