1 # SPDX-License-Identifier: GPL-2.0
3 # linux/arch/s390/boot/compressed/Makefile
5 # create a compressed vmlinux image from the original vmlinux
13 obj-y
:= $(if
$(CONFIG_KERNEL_UNCOMPRESSED
),,decompressor.o
) piggy.o
info.o
14 targets
:= vmlinux.lds vmlinux vmlinux.bin vmlinux.bin.gz vmlinux.bin.bz2
15 targets
+= vmlinux.bin.xz vmlinux.bin.lzma vmlinux.bin.lzo vmlinux.bin.lz4
16 targets
+= info.bin
$(obj-y
)
18 KBUILD_AFLAGS
:= $(KBUILD_AFLAGS_DECOMPRESSOR
)
19 KBUILD_CFLAGS
:= $(KBUILD_CFLAGS_DECOMPRESSOR
)
22 OBJECTS
:= $(addprefix $(obj
)/,$(obj-y
))
24 LDFLAGS_vmlinux
:= --oformat
$(LD_BFD
) -e startup
-T
25 $(obj
)/vmlinux
: $(obj
)/vmlinux.lds
$(objtree
)/arch
/s390
/boot
/startup.a
$(OBJECTS
) FORCE
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
)
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
)
36 OBJCOPYFLAGS_vmlinux.bin
:= -O binary
--remove-section
=.comment
--remove-section
=.vmlinux.
info -S
37 $(obj
)/vmlinux.bin
: vmlinux FORCE
38 $(call if_changed
,objcopy
)
40 vmlinux.bin.all-y
:= $(obj
)/vmlinux.bin
42 suffix-
$(CONFIG_KERNEL_GZIP
) := .gz
43 suffix-
$(CONFIG_KERNEL_BZIP2
) := .bz2
44 suffix-
$(CONFIG_KERNEL_LZ4
) := .lz4
45 suffix-
$(CONFIG_KERNEL_LZMA
) := .lzma
46 suffix-
$(CONFIG_KERNEL_LZO
) := .lzo
47 suffix-
$(CONFIG_KERNEL_XZ
) := .xz
49 $(obj
)/vmlinux.bin.gz
: $(vmlinux.bin.all-y
) FORCE
50 $(call if_changed
,gzip
)
51 $(obj
)/vmlinux.bin.bz2
: $(vmlinux.bin.all-y
) FORCE
52 $(call if_changed
,bzip2
)
53 $(obj
)/vmlinux.bin.lz4
: $(vmlinux.bin.all-y
) FORCE
54 $(call if_changed
,lz4
)
55 $(obj
)/vmlinux.bin.lzma
: $(vmlinux.bin.all-y
) FORCE
56 $(call if_changed
,lzma
)
57 $(obj
)/vmlinux.bin.lzo
: $(vmlinux.bin.all-y
) FORCE
58 $(call if_changed
,lzo
)
59 $(obj
)/vmlinux.bin.xz
: $(vmlinux.bin.all-y
) FORCE
60 $(call if_changed
,xzkern
)
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
)
66 chkbss
:= $(filter-out piggy.o
info.o
, $(obj-y
))
67 chkbss-target
:= vmlinux.bin
68 include $(srctree
)/arch
/s390
/scripts
/Makefile.chkbss