mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-26 21:54:11 +08:00
kbuild: Add generic hook for architectures to use before the final vmlinux link
On powerpc, we would like to be able to make a pass on vmlinux.o and generate a new object file to be linked into vmlinux. Add a generic pass in Makefile.vmlinux that architectures can use for this purpose. Architectures need to select CONFIG_ARCH_WANTS_PRE_LINK_VMLINUX and must provide arch/<arch>/tools/Makefile with .arch.vmlinux.o target, which will be invoked prior to the final vmlinux link step. Acked-by: Masahiro Yamada <masahiroy@kernel.org> Signed-off-by: Naveen N Rao <naveen@kernel.org> Signed-off-by: Hari Bathini <hbathini@linux.ibm.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://patch.msgid.link/20241030070850.1361304-12-hbathini@linux.ibm.com
This commit is contained in:
parent
782f46cbce
commit
1198c9c689
@ -1684,4 +1684,10 @@ config CC_HAS_SANE_FUNCTION_ALIGNMENT
|
||||
config ARCH_NEED_CMPXCHG_1_EMU
|
||||
bool
|
||||
|
||||
config ARCH_WANTS_PRE_LINK_VMLINUX
|
||||
bool
|
||||
help
|
||||
An architecture can select this if it provides arch/<arch>/tools/Makefile
|
||||
with .arch.vmlinux.o target to be linked into vmlinux.
|
||||
|
||||
endmenu
|
||||
|
@ -22,6 +22,13 @@ targets += .vmlinux.export.o
|
||||
vmlinux: .vmlinux.export.o
|
||||
endif
|
||||
|
||||
ifdef CONFIG_ARCH_WANTS_PRE_LINK_VMLINUX
|
||||
vmlinux: arch/$(SRCARCH)/tools/vmlinux.arch.o
|
||||
|
||||
arch/$(SRCARCH)/tools/vmlinux.arch.o: vmlinux.o FORCE
|
||||
$(Q)$(MAKE) $(build)=arch/$(SRCARCH)/tools $@
|
||||
endif
|
||||
|
||||
ARCH_POSTLINK := $(wildcard $(srctree)/arch/$(SRCARCH)/Makefile.postlink)
|
||||
|
||||
# Final link of vmlinux with optional arch pass after final link
|
||||
|
@ -100,7 +100,7 @@ vmlinux_link()
|
||||
${ld} ${ldflags} -o ${output} \
|
||||
${wl}--whole-archive ${objs} ${wl}--no-whole-archive \
|
||||
${wl}--start-group ${libs} ${wl}--end-group \
|
||||
${kallsymso} ${btf_vmlinux_bin_o} ${ldlibs}
|
||||
${kallsymso} ${btf_vmlinux_bin_o} ${arch_vmlinux_o} ${ldlibs}
|
||||
}
|
||||
|
||||
# generate .BTF typeinfo from DWARF debuginfo
|
||||
@ -198,6 +198,11 @@ fi
|
||||
|
||||
${MAKE} -f "${srctree}/scripts/Makefile.build" obj=init init/version-timestamp.o
|
||||
|
||||
arch_vmlinux_o=
|
||||
if is_enabled CONFIG_ARCH_WANTS_PRE_LINK_VMLINUX; then
|
||||
arch_vmlinux_o=arch/${SRCARCH}/tools/vmlinux.arch.o
|
||||
fi
|
||||
|
||||
btf_vmlinux_bin_o=
|
||||
kallsymso=
|
||||
strip_debug=
|
||||
|
Loading…
Reference in New Issue
Block a user