@@ -1,3 +1,4 @@
# SPDX-License-Identifier: GPL-2.0-only
ashldi3.c
bswapsi.c
+vmlinuz.lds
@@ -96,11 +96,15 @@ UIMAGE_LOADADDR = $(VMLINUZ_LOAD_ADDRESS)
vmlinuzobjs-y += $(obj)/piggy.o
+targets += vmlinuz.lds
+$(obj)/vmlinuz.lds: $(obj)/calc_vmlinuz_load_addr $(obj)/vmlinux.bin
+CPPFLAGS_vmlinuz.lds = -DVMLINUZ_LOAD_ADDRESS="$(VMLINUZ_LOAD_ADDRESS)"
+
quiet_cmd_zld = LD $@
- cmd_zld = $(LD) $(KBUILD_LDFLAGS) -Ttext $(VMLINUZ_LOAD_ADDRESS) -T $< $(vmlinuzobjs-y) -o $@
+ cmd_zld = $(LD) $(KBUILD_LDFLAGS) -T $< $(vmlinuzobjs-y) -o $@
quiet_cmd_strip = STRIP $@
cmd_strip = $(STRIP) -s $@
-vmlinuz: $(src)/ld.script $(vmlinuzobjs-y) $(obj)/calc_vmlinuz_load_addr
+vmlinuz: $(obj)/vmlinuz.lds $(vmlinuzobjs-y) $(obj)/calc_vmlinuz_load_addr
$(call cmd,zld)
$(call cmd,strip)
similarity index 96%
rename from arch/mips/boot/compressed/ld.script
rename to arch/mips/boot/compressed/vmlinuz.lds.S
@@ -14,7 +14,7 @@ PHDRS {
SECTIONS
{
/* Text and read-only data */
- /* . = VMLINUZ_LOAD_ADDRESS; */
+ . = VMLINUZ_LOAD_ADDRESS;
.text : {
*(.text)
*(.rodata)
Preprocess vmlinuz (self-decompressing kernel ELF) linker script to avoid using ld -Ttext $(address) https://lkml.kernel.org/lkml/20200413153453.zi4jvu3c4ul23e23@google.com/ Signed-off-by: John Thomson <git@johnthomson.fastmail.com.au> --- arch/mips/boot/compressed/.gitignore | 1 + arch/mips/boot/compressed/Makefile | 8 ++++++-- arch/mips/boot/compressed/{ld.script => vmlinuz.lds.S} | 2 +- 3 files changed, 8 insertions(+), 3 deletions(-) rename arch/mips/boot/compressed/{ld.script => vmlinuz.lds.S} (96%)