mirror of
https://github.com/torvalds/linux.git
synced 2025-11-01 09:09:47 +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