Unverified Commit 3e86e4d7 authored by Masahiro Yamada's avatar Masahiro Yamada Committed by Nathan Chancellor
Browse files

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: default avatarMasahiro Yamada <masahiroy@kernel.org>
Signed-off-by: default avatarAlexey Gladkov <legion@kernel.org>
Reviewed-by: default avatarNicolas Schier <nsc@kernel.org>
Link: https://patch.msgid.link/aaf67c07447215463300fccaa758904bac42f992.1758182101.git.legion@kernel.org


Signed-off-by: default avatarNathan Chancellor <nathan@kernel.org>
parent 0ce5139f
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -831,6 +831,7 @@ defined(CONFIG_AUTOFDO_CLANG) || defined(CONFIG_PROPELLER_CLANG)

/* Required sections not related to debugging. */
#define ELF_DETAILS							\
		.modinfo : { *(.modinfo) }				\
		.comment 0 : { *(.comment) }				\
		.symtab 0 : { *(.symtab) }				\
		.strtab 0 : { *(.strtab) }				\
@@ -1044,7 +1045,6 @@ defined(CONFIG_AUTOFDO_CLANG) || defined(CONFIG_PROPELLER_CLANG)
	*(.discard.*)							\
	*(.export_symbol)						\
	*(.no_trim_symbol)						\
	*(.modinfo)							\
	/* ld.bfd warns about .gnu.version* even when not emitted */	\
	*(.gnu.version*)						\

+5 −2
Original line number Diff line number Diff line
@@ -86,11 +86,14 @@ endif
# vmlinux
# ---------------------------------------------------------------------------

remove-section-y                                   :=
remove-section-y                                   := .modinfo
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 $@
      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
vmlinux: vmlinux.unstripped FORCE
+3 −0
Original line number Diff line number Diff line
@@ -79,6 +79,9 @@
/ _SDA_BASE_$/d
/ _SDA2_BASE_$/d

# MODULE_INFO()
/ __UNIQUE_ID_modinfo[0-9]*$/d

# ---------------------------------------------------------------------------
# Ignored patterns
#  (symbols that contain the pattern are ignored)