.. | .. |
---|
10 | 10 | UBSAN_SANITIZE := n |
---|
11 | 11 | KASAN_SANITIZE := n |
---|
12 | 12 | |
---|
13 | | -obj-y := $(if $(CONFIG_KERNEL_UNCOMPRESSED),,head.o misc.o) piggy.o |
---|
| 13 | +obj-y := $(if $(CONFIG_KERNEL_UNCOMPRESSED),,decompressor.o) piggy.o info.o |
---|
14 | 14 | targets := vmlinux.lds vmlinux vmlinux.bin vmlinux.bin.gz vmlinux.bin.bz2 |
---|
15 | 15 | targets += vmlinux.bin.xz vmlinux.bin.lzma vmlinux.bin.lzo vmlinux.bin.lz4 |
---|
16 | | -targets += vmlinux.scr.lds $(obj-y) $(if $(CONFIG_KERNEL_UNCOMPRESSED),,sizes.h) |
---|
| 16 | +targets += info.bin $(obj-y) |
---|
17 | 17 | |
---|
18 | 18 | KBUILD_AFLAGS := $(KBUILD_AFLAGS_DECOMPRESSOR) |
---|
19 | 19 | KBUILD_CFLAGS := $(KBUILD_CFLAGS_DECOMPRESSOR) |
---|
| 20 | +OBJCOPYFLAGS := |
---|
20 | 21 | |
---|
21 | 22 | OBJECTS := $(addprefix $(obj)/,$(obj-y)) |
---|
22 | 23 | |
---|
.. | .. |
---|
24 | 25 | $(obj)/vmlinux: $(obj)/vmlinux.lds $(objtree)/arch/s390/boot/startup.a $(OBJECTS) FORCE |
---|
25 | 26 | $(call if_changed,ld) |
---|
26 | 27 | |
---|
27 | | -# extract required uncompressed vmlinux symbols and adjust them to reflect offsets inside vmlinux.bin |
---|
28 | | -sed-sizes := -e 's/^\([0-9a-fA-F]*\) . \(__bss_start\|_end\)$$/\#define SZ\2 (0x\1 - 0x100000)/p' |
---|
| 28 | +OBJCOPYFLAGS_info.bin := -O binary --only-section=.vmlinux.info --set-section-flags .vmlinux.info=load |
---|
| 29 | +$(obj)/info.bin: vmlinux FORCE |
---|
| 30 | + $(call if_changed,objcopy) |
---|
29 | 31 | |
---|
30 | | -quiet_cmd_sizes = GEN $@ |
---|
31 | | - cmd_sizes = $(NM) $< | sed -n $(sed-sizes) > $@ |
---|
| 32 | +OBJCOPYFLAGS_info.o := -I binary -O elf64-s390 -B s390:64-bit --rename-section .data=.vmlinux.info |
---|
| 33 | +$(obj)/info.o: $(obj)/info.bin FORCE |
---|
| 34 | + $(call if_changed,objcopy) |
---|
32 | 35 | |
---|
33 | | -$(obj)/sizes.h: vmlinux |
---|
34 | | - $(call if_changed,sizes) |
---|
35 | | - |
---|
36 | | -AFLAGS_head.o += -I$(objtree)/$(obj) |
---|
37 | | -$(obj)/head.o: $(obj)/sizes.h |
---|
38 | | - |
---|
39 | | -CFLAGS_misc.o += -I$(objtree)/$(obj) |
---|
40 | | -$(obj)/misc.o: $(obj)/sizes.h |
---|
41 | | - |
---|
42 | | -OBJCOPYFLAGS_vmlinux.bin := -R .comment -S |
---|
43 | | -$(obj)/vmlinux.bin: vmlinux |
---|
| 36 | +OBJCOPYFLAGS_vmlinux.bin := -O binary --remove-section=.comment --remove-section=.vmlinux.info -S |
---|
| 37 | +$(obj)/vmlinux.bin: vmlinux FORCE |
---|
44 | 38 | $(call if_changed,objcopy) |
---|
45 | 39 | |
---|
46 | 40 | vmlinux.bin.all-y := $(obj)/vmlinux.bin |
---|
.. | .. |
---|
65 | 59 | $(obj)/vmlinux.bin.xz: $(vmlinux.bin.all-y) FORCE |
---|
66 | 60 | $(call if_changed,xzkern) |
---|
67 | 61 | |
---|
68 | | -LDFLAGS_piggy.o := -r --format binary --oformat $(LD_BFD) -T |
---|
69 | | -$(obj)/piggy.o: $(obj)/vmlinux.scr.lds $(obj)/vmlinux.bin$(suffix-y) |
---|
70 | | - $(call if_changed,ld) |
---|
71 | | - |
---|
72 | | -chkbss := $(filter-out $(obj)/misc.o $(obj)/piggy.o,$(OBJECTS)) |
---|
73 | | -chkbss-target := $(obj)/vmlinux.bin |
---|
74 | | -include $(srctree)/arch/s390/scripts/Makefile.chkbss |
---|
| 62 | +OBJCOPYFLAGS_piggy.o := -I binary -O elf64-s390 -B s390:64-bit --rename-section .data=.vmlinux.bin.compressed |
---|
| 63 | +$(obj)/piggy.o: $(obj)/vmlinux.bin$(suffix-y) FORCE |
---|
| 64 | + $(call if_changed,objcopy) |
---|