1# SPDX-License-Identifier: GPL-2.0 2# 3# linux/arch/sh/boot/compressed/Makefile 4# 5# create a compressed vmlinux image from the original vmlinux 6# 7 8OBJECTS := head_32.o misc.o cache.o piggy.o \ 9 ashiftrt.o ashldi3.o ashrsi3.o ashlsi3.o lshrsi3.o 10 11# These were previously generated files. When you are building the kernel 12# with O=, make sure to remove the stale files in the output tree. Otherwise, 13# the build system wrongly compiles the stale ones. 14ifdef building_out_of_srctree 15$(shell rm -f $(addprefix $(obj)/, ashiftrt.S ashldi3.c ashrsi3.S ashlsi3.S lshrsi3.S)) 16endif 17 18targets := vmlinux vmlinux.bin vmlinux.bin.gz vmlinux.bin.bz2 \ 19 vmlinux.bin.lzma vmlinux.bin.xz vmlinux.bin.lzo $(OBJECTS) 20 21GCOV_PROFILE := n 22 23# 24# IMAGE_OFFSET is the load offset of the compression loader 25# 26ifeq ($(CONFIG_32BIT),y) 27IMAGE_OFFSET := $(shell /bin/bash -c 'printf "0x%08x" \ 28 $$[$(CONFIG_MEMORY_START) + \ 29 $(CONFIG_BOOT_LINK_OFFSET)]') 30else 31IMAGE_OFFSET := $(shell /bin/bash -c 'printf "0x%08x" \ 32 $$[$(CONFIG_PAGE_OFFSET) + \ 33 $(KERNEL_MEMORY) + \ 34 $(CONFIG_BOOT_LINK_OFFSET)]') 35endif 36 37ccflags-remove-$(CONFIG_MCOUNT) += -pg 38 39LDFLAGS_vmlinux := --oformat $(ld-bfd) -Ttext $(IMAGE_OFFSET) -e startup \ 40 -T $(obj)/../../kernel/vmlinux.lds 41 42KBUILD_CFLAGS += -DDISABLE_BRANCH_PROFILING 43 44$(obj)/vmlinux: $(addprefix $(obj)/, $(OBJECTS)) FORCE 45 $(call if_changed,ld) 46 47$(obj)/vmlinux.bin: vmlinux FORCE 48 $(call if_changed,objcopy) 49 50$(obj)/vmlinux.bin.gz: $(obj)/vmlinux.bin FORCE 51 $(call if_changed,gzip) 52$(obj)/vmlinux.bin.bz2: $(obj)/vmlinux.bin FORCE 53 $(call if_changed,bzip2_with_size) 54$(obj)/vmlinux.bin.lzma: $(obj)/vmlinux.bin FORCE 55 $(call if_changed,lzma_with_size) 56$(obj)/vmlinux.bin.xz: $(obj)/vmlinux.bin FORCE 57 $(call if_changed,xzkern_with_size) 58$(obj)/vmlinux.bin.lzo: $(obj)/vmlinux.bin FORCE 59 $(call if_changed,lzo_with_size) 60 61OBJCOPYFLAGS += -R .empty_zero_page 62 63LDFLAGS_piggy.o := -r --format binary --oformat $(ld-bfd) -T 64 65$(obj)/piggy.o: $(obj)/vmlinux.scr $(obj)/vmlinux.bin.$(suffix_y) FORCE 66 $(call if_changed,ld) 67