1 # SPDX-License-Identifier: GPL-2.0
3 # linux/arch/sh/boot/compressed/Makefile
5 # create a compressed vmlinux image from the original vmlinux
8 targets
:= vmlinux vmlinux.bin vmlinux.bin.gz \
9 vmlinux.bin.bz2 vmlinux.bin.lzma \
10 vmlinux.bin.xz vmlinux.bin.lzo \
11 head_32.o misc.o piggy.o
13 OBJECTS
= $(obj
)/head_32.o
$(obj
)/misc.o
$(obj
)/cache.o
18 # IMAGE_OFFSET is the load offset of the compression loader
20 ifeq ($(CONFIG_32BIT
),y
)
21 IMAGE_OFFSET
:= $(shell /bin
/bash
-c
'printf "0x%08x" \
22 $$[$(CONFIG_MEMORY_START) + \
23 $(CONFIG_BOOT_LINK_OFFSET)]')
25 IMAGE_OFFSET
:= $(shell /bin
/bash
-c
'printf "0x%08x" \
26 $$[$(CONFIG_PAGE_OFFSET) + \
28 $(CONFIG_BOOT_LINK_OFFSET)]')
31 ccflags-remove-
$(CONFIG_MCOUNT
) += -pg
33 LDFLAGS_vmlinux
:= --oformat
$(ld-bfd
) -Ttext
$(IMAGE_OFFSET
) -e startup \
34 -T
$(obj
)/..
/..
/kernel
/vmlinux.lds
37 # Pull in the necessary libgcc bits from the in-kernel implementation.
39 lib1funcs-y
:= ashiftrt.S ashldi3.c ashrsi3.S ashlsi3.S lshrsi3.S
41 $(addsuffix .o
, $(basename $(addprefix $(obj
)/, $(lib1funcs-y
))))
43 lib1funcs-dir
:= $(srctree
)/arch
/$(SRCARCH
)/lib
45 KBUILD_CFLAGS
+= -I
$(lib1funcs-dir
) -DDISABLE_BRANCH_PROFILING
47 $(addprefix $(obj
)/,$(lib1funcs-y
)): $(obj
)/%: $(lib1funcs-dir
)/% FORCE
50 $(obj
)/vmlinux
: $(OBJECTS
) $(obj
)/piggy.o
$(lib1funcs-obj
) FORCE
53 $(obj
)/vmlinux.bin
: vmlinux FORCE
54 $(call if_changed
,objcopy
)
56 vmlinux.bin.all-y
:= $(obj
)/vmlinux.bin
58 $(obj
)/vmlinux.bin.gz
: $(vmlinux.bin.all-y
) FORCE
59 $(call if_changed
,gzip
)
60 $(obj
)/vmlinux.bin.bz2
: $(vmlinux.bin.all-y
) FORCE
61 $(call if_changed
,bzip2
)
62 $(obj
)/vmlinux.bin.lzma
: $(vmlinux.bin.all-y
) FORCE
63 $(call if_changed
,lzma
)
64 $(obj
)/vmlinux.bin.xz
: $(vmlinux.bin.all-y
) FORCE
65 $(call if_changed
,xzkern
)
66 $(obj
)/vmlinux.bin.lzo
: $(vmlinux.bin.all-y
) FORCE
67 $(call if_changed
,lzo
)
69 OBJCOPYFLAGS
+= -R .empty_zero_page
71 LDFLAGS_piggy.o
:= -r
--format binary
--oformat
$(ld-bfd
) -T
73 $(obj
)/piggy.o
: $(obj
)/vmlinux.scr
$(obj
)/vmlinux.bin.
$(suffix-y
) FORCE