1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0-only 2*4882a593Smuzhiyun# 3*4882a593Smuzhiyun# linux/arch/parisc/boot/compressed/Makefile 4*4882a593Smuzhiyun# 5*4882a593Smuzhiyun# create a compressed self-extracting vmlinux image from the original vmlinux 6*4882a593Smuzhiyun# 7*4882a593Smuzhiyun 8*4882a593SmuzhiyunKCOV_INSTRUMENT := n 9*4882a593SmuzhiyunGCOV_PROFILE := n 10*4882a593SmuzhiyunUBSAN_SANITIZE := n 11*4882a593Smuzhiyun 12*4882a593Smuzhiyuntargets := vmlinux.lds vmlinux vmlinux.bin vmlinux.bin.gz vmlinux.bin.bz2 13*4882a593Smuzhiyuntargets += vmlinux.bin.xz vmlinux.bin.lzma vmlinux.bin.lzo vmlinux.bin.lz4 14*4882a593Smuzhiyuntargets += misc.o piggy.o sizes.h head.o real2.o firmware.o 15*4882a593Smuzhiyuntargets += real2.S firmware.c 16*4882a593Smuzhiyun 17*4882a593SmuzhiyunKBUILD_CFLAGS := -D__KERNEL__ -O2 -DBOOTLOADER 18*4882a593SmuzhiyunKBUILD_CFLAGS += -DDISABLE_BRANCH_PROFILING 19*4882a593SmuzhiyunKBUILD_CFLAGS += -fno-strict-aliasing 20*4882a593SmuzhiyunKBUILD_CFLAGS += $(cflags-y) -fno-delete-null-pointer-checks -fno-builtin-printf 21*4882a593SmuzhiyunKBUILD_CFLAGS += -fno-PIE -mno-space-regs -mdisable-fpregs -Os 22*4882a593Smuzhiyunifndef CONFIG_64BIT 23*4882a593SmuzhiyunKBUILD_CFLAGS += -mfast-indirect-calls 24*4882a593Smuzhiyunendif 25*4882a593Smuzhiyun 26*4882a593SmuzhiyunOBJECTS += $(obj)/head.o $(obj)/real2.o $(obj)/firmware.o $(obj)/misc.o $(obj)/piggy.o 27*4882a593Smuzhiyun 28*4882a593SmuzhiyunLDFLAGS_vmlinux := -X -e startup --as-needed -T 29*4882a593Smuzhiyun$(obj)/vmlinux: $(obj)/vmlinux.lds $(OBJECTS) $(LIBGCC) 30*4882a593Smuzhiyun $(call if_changed,ld) 31*4882a593Smuzhiyun 32*4882a593Smuzhiyunsed-sizes := -e 's/^\([0-9a-fA-F]*\) . \(__bss_start\|_end\|parisc_kernel_start\)$$/\#define SZ\2 0x\1/p' 33*4882a593Smuzhiyun 34*4882a593Smuzhiyunquiet_cmd_sizes = GEN $@ 35*4882a593Smuzhiyun cmd_sizes = $(NM) $< | sed -n $(sed-sizes) > $@ 36*4882a593Smuzhiyun 37*4882a593Smuzhiyun$(obj)/sizes.h: vmlinux 38*4882a593Smuzhiyun $(call if_changed,sizes) 39*4882a593Smuzhiyun 40*4882a593SmuzhiyunAFLAGS_head.o += -I$(objtree)/$(obj) -DBOOTLOADER 41*4882a593Smuzhiyun$(obj)/head.o: $(obj)/sizes.h 42*4882a593Smuzhiyun 43*4882a593SmuzhiyunCFLAGS_misc.o += -I$(objtree)/$(obj) 44*4882a593Smuzhiyun$(obj)/misc.o: $(obj)/sizes.h 45*4882a593Smuzhiyun 46*4882a593Smuzhiyun$(obj)/firmware.o: $(obj)/firmware.c 47*4882a593Smuzhiyun$(obj)/firmware.c: $(srctree)/arch/$(SRCARCH)/kernel/firmware.c 48*4882a593Smuzhiyun $(call cmd,shipped) 49*4882a593Smuzhiyun 50*4882a593SmuzhiyunAFLAGS_real2.o += -DBOOTLOADER 51*4882a593Smuzhiyun$(obj)/real2.o: $(obj)/real2.S 52*4882a593Smuzhiyun$(obj)/real2.S: $(srctree)/arch/$(SRCARCH)/kernel/real2.S 53*4882a593Smuzhiyun $(call cmd,shipped) 54*4882a593Smuzhiyun 55*4882a593Smuzhiyun$(obj)/misc.o: $(obj)/sizes.h 56*4882a593Smuzhiyun 57*4882a593SmuzhiyunCPPFLAGS_vmlinux.lds += -I$(objtree)/$(obj) -DBOOTLOADER 58*4882a593Smuzhiyun$(obj)/vmlinux.lds: $(obj)/sizes.h 59*4882a593Smuzhiyun 60*4882a593SmuzhiyunOBJCOPYFLAGS_vmlinux.bin := -R .comment -R .note -S 61*4882a593Smuzhiyun$(obj)/vmlinux.bin: vmlinux FORCE 62*4882a593Smuzhiyun $(call if_changed,objcopy) 63*4882a593Smuzhiyun 64*4882a593Smuzhiyunvmlinux.bin.all-y := $(obj)/vmlinux.bin 65*4882a593Smuzhiyun 66*4882a593Smuzhiyunsuffix-$(CONFIG_KERNEL_GZIP) := gz 67*4882a593Smuzhiyunsuffix-$(CONFIG_KERNEL_BZIP2) := bz2 68*4882a593Smuzhiyunsuffix-$(CONFIG_KERNEL_LZ4) := lz4 69*4882a593Smuzhiyunsuffix-$(CONFIG_KERNEL_LZMA) := lzma 70*4882a593Smuzhiyunsuffix-$(CONFIG_KERNEL_LZO) := lzo 71*4882a593Smuzhiyunsuffix-$(CONFIG_KERNEL_XZ) := xz 72*4882a593Smuzhiyun 73*4882a593Smuzhiyun$(obj)/vmlinux.bin.gz: $(vmlinux.bin.all-y) 74*4882a593Smuzhiyun $(call if_changed,gzip) 75*4882a593Smuzhiyun$(obj)/vmlinux.bin.bz2: $(vmlinux.bin.all-y) 76*4882a593Smuzhiyun $(call if_changed,bzip2) 77*4882a593Smuzhiyun$(obj)/vmlinux.bin.lz4: $(vmlinux.bin.all-y) 78*4882a593Smuzhiyun $(call if_changed,lz4) 79*4882a593Smuzhiyun$(obj)/vmlinux.bin.lzma: $(vmlinux.bin.all-y) 80*4882a593Smuzhiyun $(call if_changed,lzma) 81*4882a593Smuzhiyun$(obj)/vmlinux.bin.lzo: $(vmlinux.bin.all-y) 82*4882a593Smuzhiyun $(call if_changed,lzo) 83*4882a593Smuzhiyun$(obj)/vmlinux.bin.xz: $(vmlinux.bin.all-y) 84*4882a593Smuzhiyun $(call if_changed,xzkern) 85*4882a593Smuzhiyun 86*4882a593SmuzhiyunLDFLAGS_piggy.o := -r --format binary --oformat $(LD_BFD) -T 87*4882a593Smuzhiyun$(obj)/piggy.o: $(obj)/vmlinux.scr $(obj)/vmlinux.bin.$(suffix-y) 88*4882a593Smuzhiyun $(call if_changed,ld) 89