mirror of
				https://github.com/torvalds/linux.git
				synced 2025-10-31 08:38:45 +02:00 
			
		
		
		
	Makefile: fix GDB warning with CONFIG_RELR
GDB produces the following warning when debugging kernels built with CONFIG_RELR: BFD: /android0/linux-next/vmlinux: unknown type [0x13] section `.relr.dyn' when loading a kernel built with CONFIG_RELR into GDB. It can also prevent debugging symbols using such relocations. Peter sugguests: [That flag] means that lld will use dynamic tags and section type numbers in the OS-specific range rather than the generic range. The kernel itself doesn't care about these numbers; it determines the location of the RELR section using symbols defined by a linker script. Link: https://github.com/ClangBuiltLinux/linux/issues/1057 Suggested-by: Peter Collingbourne <pcc@google.com> Reviewed-by: Nathan Chancellor <nathan@kernel.org> Signed-off-by: Nick Desaulniers <ndesaulniers@google.com> Link: https://lore.kernel.org/r/20210522012626.2811297-1-ndesaulniers@google.com Signed-off-by: Will Deacon <will@kernel.org>
This commit is contained in:
		
							parent
							
								
									c4681547bc
								
							
						
					
					
						commit
						27f2a4db76
					
				
					 2 changed files with 3 additions and 2 deletions
				
			
		
							
								
								
									
										2
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								Makefile
									
									
									
									
									
								
							|  | @ -1031,7 +1031,7 @@ LDFLAGS_vmlinux	+= $(call ld-option, -X,) | |||
| endif | ||||
| 
 | ||||
| ifeq ($(CONFIG_RELR),y) | ||||
| LDFLAGS_vmlinux	+= --pack-dyn-relocs=relr | ||||
| LDFLAGS_vmlinux	+= --pack-dyn-relocs=relr --use-android-relr-tags | ||||
| endif | ||||
| 
 | ||||
| # We never want expected sections to be placed heuristically by the
 | ||||
|  |  | |||
|  | @ -7,7 +7,8 @@ trap "rm -f $tmp_file.o $tmp_file $tmp_file.bin" EXIT | |||
| cat << "END" | $CC -c -x c - -o $tmp_file.o >/dev/null 2>&1 | ||||
| void *p = &p; | ||||
| END | ||||
| $LD $tmp_file.o -shared -Bsymbolic --pack-dyn-relocs=relr -o $tmp_file | ||||
| $LD $tmp_file.o -shared -Bsymbolic --pack-dyn-relocs=relr \ | ||||
|   --use-android-relr-tags -o $tmp_file | ||||
| 
 | ||||
| # Despite printing an error message, GNU nm still exits with exit code 0 if it | ||||
| # sees a relr section. So we need to check that nothing is printed to stderr. | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Nick Desaulniers
						Nick Desaulniers