bc89690f6e
This fixes compilation of gdb on arm64. The kernel defines "struct sigcontext" in asm/sigcontext.h and musl libc defines it in signal.h, which collides. Kernel 4.14 misses the definitions of struct user_sve_header so we still have to use the aarch64-sve-linux-sigcontext.h header file which also provides that and make sure aarch64-sve-linux-sigcontext.h does not provide the same headers as the kernel or musl. Fixes: FS#2040 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
45 lines
1.3 KiB
Diff
45 lines
1.3 KiB
Diff
The signal definitions of musl and gdb collide
|
|
|
|
The kernel defines "struct sigcontext" in asm/sigcontext.h and musl libc
|
|
defines it in signal.h which collides.
|
|
Kernel 4.14 misses the definitions of struct user_sve_header so we still
|
|
have to use the aarch64-sve-linux-sigcontext.h header file which also
|
|
provides that and make sure aarch64-sve-linux-sigcontext.h does not
|
|
provide the same headers as the kernel or musl.
|
|
|
|
--- a/gdb/nat/aarch64-sve-linux-ptrace.h
|
|
+++ b/gdb/nat/aarch64-sve-linux-ptrace.h
|
|
@@ -20,12 +20,12 @@
|
|
#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>
|
|
|
|
-#ifndef SVE_SIG_ZREGS_SIZE
|
|
+#ifndef SVE_PT_REGS_SVE
|
|
#include "aarch64-sve-linux-sigcontext.h"
|
|
#endif
|
|
|
|
--- a/gdb/nat/aarch64-sve-linux-sigcontext.h
|
|
+++ b/gdb/nat/aarch64-sve-linux-sigcontext.h
|
|
@@ -19,6 +19,7 @@
|
|
#ifndef AARCH64_SVE_LINUX_SIGCONTEXT_H
|
|
#define AARCH64_SVE_LINUX_SIGCONTEXT_H
|
|
|
|
+#ifndef SVE_MAGIC
|
|
#define SVE_MAGIC 0x53564501
|
|
|
|
struct sve_context {
|
|
@@ -128,6 +129,7 @@ struct sve_context {
|
|
(SVE_SIG_FFR_OFFSET(vq) + SVE_SIG_FFR_SIZE(vq) - SVE_SIG_REGS_OFFSET)
|
|
|
|
#define SVE_SIG_CONTEXT_SIZE(vq) (SVE_SIG_REGS_OFFSET + SVE_SIG_REGS_SIZE(vq))
|
|
+#endif
|
|
|
|
/* SVE/FP/SIMD state (NT_ARM_SVE) */
|
|
|