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_
$(BITS
).o misc.o piggy.o
13 OBJECTS
= $(obj
)/head_
$(BITS
).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 ifeq ($(CONFIG_MCOUNT
),y
)
32 ORIG_CFLAGS
:= $(KBUILD_CFLAGS
)
33 KBUILD_CFLAGS
= $(subst -pg
, , $(ORIG_CFLAGS
))
36 LDFLAGS_vmlinux
:= --oformat
$(ld-bfd
) -Ttext
$(IMAGE_OFFSET
) -e startup \
37 -T
$(obj
)/..
/..
/kernel
/vmlinux.lds
40 # Pull in the necessary libgcc bits from the in-kernel implementation.
42 lib1funcs-
$(CONFIG_SUPERH32
) := ashiftrt.S ashldi3.c ashrsi3.S ashlsi3.S \
45 $(addsuffix .o
, $(basename $(addprefix $(obj
)/, $(lib1funcs-y
))))
47 lib1funcs-dir
:= $(srctree
)/arch
/$(SRCARCH
)/lib
49 lib1funcs-dir
:= $(addsuffix $(BITS
), $(lib1funcs-dir
))
52 KBUILD_CFLAGS
+= -I
$(lib1funcs-dir
) -DDISABLE_BRANCH_PROFILING
54 $(addprefix $(obj
)/,$(lib1funcs-y
)): $(obj
)/%: $(lib1funcs-dir
)/% FORCE
57 $(obj
)/vmlinux
: $(OBJECTS
) $(obj
)/piggy.o
$(lib1funcs-obj
) FORCE
60 $(obj
)/vmlinux.bin
: vmlinux FORCE
61 $(call if_changed
,objcopy
)
63 vmlinux.bin.all-y
:= $(obj
)/vmlinux.bin
65 $(obj
)/vmlinux.bin.gz
: $(vmlinux.bin.all-y
) FORCE
66 $(call if_changed
,gzip
)
67 $(obj
)/vmlinux.bin.bz2
: $(vmlinux.bin.all-y
) FORCE
68 $(call if_changed
,bzip2
)
69 $(obj
)/vmlinux.bin.lzma
: $(vmlinux.bin.all-y
) FORCE
70 $(call if_changed
,lzma
)
71 $(obj
)/vmlinux.bin.xz
: $(vmlinux.bin.all-y
) FORCE
72 $(call if_changed
,xzkern
)
73 $(obj
)/vmlinux.bin.lzo
: $(vmlinux.bin.all-y
) FORCE
74 $(call if_changed
,lzo
)
76 OBJCOPYFLAGS
+= -R .empty_zero_page
78 LDFLAGS_piggy.o
:= -r
--format binary
--oformat
$(ld-bfd
) -T
80 $(obj
)/piggy.o
: $(obj
)/vmlinux.scr
$(obj
)/vmlinux.bin.
$(suffix-y
) FORCE