mirror of
				https://github.com/torvalds/linux.git
				synced 2025-10-31 16:48:26 +02:00 
			
		
		
		
	kbuild: keep .modinfo section in vmlinux.unstripped
Keep the .modinfo section during linking, but strip it from the final vmlinux. Adjust scripts/mksysmap to exclude modinfo symbols from kallsyms. This change will allow the next commit to extract the .modinfo section from the vmlinux.unstripped intermediate. Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> Signed-off-by: Alexey Gladkov <legion@kernel.org> Reviewed-by: Nicolas Schier <nsc@kernel.org> Link: https://patch.msgid.link/aaf67c07447215463300fccaa758904bac42f992.1758182101.git.legion@kernel.org Signed-off-by: Nathan Chancellor <nathan@kernel.org>
This commit is contained in:
		
							parent
							
								
									0ce5139fd9
								
							
						
					
					
						commit
						3e86e4d74c
					
				
					 3 changed files with 9 additions and 3 deletions
				
			
		|  | @ -831,6 +831,7 @@ defined(CONFIG_AUTOFDO_CLANG) || defined(CONFIG_PROPELLER_CLANG) | ||||||
| 
 | 
 | ||||||
| /* Required sections not related to debugging. */ | /* Required sections not related to debugging. */ | ||||||
| #define ELF_DETAILS							\ | #define ELF_DETAILS							\ | ||||||
|  | 		.modinfo : { *(.modinfo) }				\ | ||||||
| 		.comment 0 : { *(.comment) }				\ | 		.comment 0 : { *(.comment) }				\ | ||||||
| 		.symtab 0 : { *(.symtab) }				\ | 		.symtab 0 : { *(.symtab) }				\ | ||||||
| 		.strtab 0 : { *(.strtab) }				\ | 		.strtab 0 : { *(.strtab) }				\ | ||||||
|  | @ -1044,7 +1045,6 @@ defined(CONFIG_AUTOFDO_CLANG) || defined(CONFIG_PROPELLER_CLANG) | ||||||
| 	*(.discard.*)							\ | 	*(.discard.*)							\ | ||||||
| 	*(.export_symbol)						\ | 	*(.export_symbol)						\ | ||||||
| 	*(.no_trim_symbol)						\ | 	*(.no_trim_symbol)						\ | ||||||
| 	*(.modinfo)							\ |  | ||||||
| 	/* ld.bfd warns about .gnu.version* even when not emitted */	\ | 	/* ld.bfd warns about .gnu.version* even when not emitted */	\ | ||||||
| 	*(.gnu.version*)						\ | 	*(.gnu.version*)						\ | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -86,11 +86,14 @@ endif | ||||||
| # vmlinux | # vmlinux | ||||||
| # --------------------------------------------------------------------------- | # --------------------------------------------------------------------------- | ||||||
| 
 | 
 | ||||||
| remove-section-y                                   := | remove-section-y                                   := .modinfo | ||||||
| remove-section-$(CONFIG_ARCH_VMLINUX_NEEDS_RELOCS) += '.rel*' | remove-section-$(CONFIG_ARCH_VMLINUX_NEEDS_RELOCS) += '.rel*' | ||||||
| 
 | 
 | ||||||
|  | # To avoid warnings: "empty loadable segment detected at ..." from GNU objcopy, | ||||||
|  | # it is necessary to remove the PT_LOAD flag from the segment. | ||||||
| quiet_cmd_strip_relocs = OBJCOPY $@ | quiet_cmd_strip_relocs = OBJCOPY $@ | ||||||
|       cmd_strip_relocs = $(OBJCOPY) $(addprefix --remove-section=,$(remove-section-y)) $< $@ |       cmd_strip_relocs = $(OBJCOPY) $(patsubst %,--set-section-flags %=noload,$(remove-section-y)) $< $@; \ | ||||||
|  |                          $(OBJCOPY) $(addprefix --remove-section=,$(remove-section-y)) $@ | ||||||
| 
 | 
 | ||||||
| targets += vmlinux | targets += vmlinux | ||||||
| vmlinux: vmlinux.unstripped FORCE | vmlinux: vmlinux.unstripped FORCE | ||||||
|  |  | ||||||
|  | @ -79,6 +79,9 @@ | ||||||
| / _SDA_BASE_$/d | / _SDA_BASE_$/d | ||||||
| / _SDA2_BASE_$/d | / _SDA2_BASE_$/d | ||||||
| 
 | 
 | ||||||
|  | # MODULE_INFO() | ||||||
|  | / __UNIQUE_ID_modinfo[0-9]*$/d | ||||||
|  | 
 | ||||||
| # --------------------------------------------------------------------------- | # --------------------------------------------------------------------------- | ||||||
| # Ignored patterns | # Ignored patterns | ||||||
| #  (symbols that contain the pattern are ignored) | #  (symbols that contain the pattern are ignored) | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 Masahiro Yamada
						Masahiro Yamada