diff options
| author | Masahiro Yamada <masahiroy@kernel.org> | 2022-09-25 03:19:15 +0900 | 
|---|---|---|
| committer | Masahiro Yamada <masahiroy@kernel.org> | 2022-10-02 18:06:03 +0900 | 
| commit | ce697ccee1a8661da4e23fbe5f3d45d8d6922c20 (patch) | |
| tree | 3e4a66982f38b33d4c17b13a04161eb764bf6220 /Makefile | |
| parent | 3216484550610470013b7ce1c9ed272da0a74589 (diff) | |
| download | linux-ce697ccee1a8661da4e23fbe5f3d45d8d6922c20.tar.bz2 | |
kbuild: remove head-y syntax
Kbuild puts the objects listed in head-y at the head of vmlinux.
Conventionally, we do this for head*.S, which contains the kernel entry
point.
A counter approach is to control the section order by the linker script.
Actually, the code marked as __HEAD goes into the ".head.text" section,
which is placed before the normal ".text" section.
I do not know if both of them are needed. From the build system
perspective, head-y is not mandatory. If you can achieve the proper code
placement by the linker script only, it would be cleaner.
I collected the current head-y objects into head-object-list.txt. It is
a whitelist. My hope is it will be reduced in the long run.
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Tested-by: Nick Desaulniers <ndesaulniers@google.com>
Reviewed-by: Nicolas Schier <nicolas@fjasle.eu>
Diffstat (limited to 'Makefile')
| -rw-r--r-- | Makefile | 4 | 
1 files changed, 2 insertions, 2 deletions
| @@ -1147,10 +1147,10 @@ quiet_cmd_ar_vmlinux.a = AR      $@        cmd_ar_vmlinux.a = \  	rm -f $@; \  	$(AR) cDPrST $@ $(KBUILD_VMLINUX_OBJS); \ -	$(AR) mPiT $$($(AR) t $@ | head -n1) $@ $(head-y) +	$(AR) mPiT $$($(AR) t $@ | head -n1) $@ $$($(AR) t $@ | grep -F --file=$(srctree)/scripts/head-object-list.txt)  targets += vmlinux.a -vmlinux.a: $(KBUILD_VMLINUX_OBJS) autoksyms_recursive FORCE +vmlinux.a: $(KBUILD_VMLINUX_OBJS) scripts/head-object-list.txt autoksyms_recursive FORCE  	$(call if_changed,ar_vmlinux.a)  vmlinux.o: vmlinux.a $(KBUILD_VMLINUX_LIBS) FORCE |