mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-10-26 19:44:27 -04:00 
			
		
		
		
	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) */
 | |
|  
 |