gdb: The signal definitions of musl and gdb collide
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>
This commit is contained in:
		
							
								
								
									
										44
									
								
								package/devel/gdb/patches/010-aarch64-headers.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								package/devel/gdb/patches/010-aarch64-headers.patch
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,44 @@ | |||||||
|  | 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) */ | ||||||
|  |   | ||||||
		Reference in New Issue
	
	Block a user
	 Hauke Mehrtens
					Hauke Mehrtens