]>
Commit | Line | Data |
---|---|---|
b2441318 | 1 | # SPDX-License-Identifier: GPL-2.0 |
1eca133c PM |
2 | # |
3 | # linux/arch/sh/boot/compressed/Makefile | |
4 | # | |
5 | # create a compressed vmlinux image from the original vmlinux | |
6 | # | |
7 | ||
8 | targets := vmlinux vmlinux.bin vmlinux.bin.gz \ | |
07e88e1b | 9 | vmlinux.bin.bz2 vmlinux.bin.lzma \ |
50cfa79d | 10 | vmlinux.bin.xz vmlinux.bin.lzo \ |
59f00296 | 11 | head_$(BITS).o misc.o piggy.o |
1eca133c | 12 | |
59f00296 | 13 | OBJECTS = $(obj)/head_$(BITS).o $(obj)/misc.o $(obj)/cache.o |
1eca133c | 14 | |
d4f7e513 CS |
15 | GCOV_PROFILE := n |
16 | ||
1eca133c PM |
17 | # |
18 | # IMAGE_OFFSET is the load offset of the compression loader | |
19 | # | |
9c3d9363 MF |
20 | ifeq ($(CONFIG_32BIT),y) |
21 | IMAGE_OFFSET := $(shell /bin/bash -c 'printf "0x%08x" \ | |
22 | $$[$(CONFIG_MEMORY_START) + \ | |
23 | $(CONFIG_BOOT_LINK_OFFSET)]') | |
24 | else | |
1eca133c PM |
25 | IMAGE_OFFSET := $(shell /bin/bash -c 'printf "0x%08x" \ |
26 | $$[$(CONFIG_PAGE_OFFSET) + \ | |
27 | $(KERNEL_MEMORY) + \ | |
28 | $(CONFIG_BOOT_LINK_OFFSET)]') | |
9c3d9363 | 29 | endif |
1eca133c | 30 | |
473d1cf4 | 31 | ifeq ($(CONFIG_MCOUNT),y) |
1eca133c PM |
32 | ORIG_CFLAGS := $(KBUILD_CFLAGS) |
33 | KBUILD_CFLAGS = $(subst -pg, , $(ORIG_CFLAGS)) | |
34 | endif | |
35 | ||
36 | LDFLAGS_vmlinux := --oformat $(ld-bfd) -Ttext $(IMAGE_OFFSET) -e startup \ | |
37 | -T $(obj)/../../kernel/vmlinux.lds | |
38 | ||
363e9f05 PM |
39 | # |
40 | # Pull in the necessary libgcc bits from the in-kernel implementation. | |
41 | # | |
42 | lib1funcs-$(CONFIG_SUPERH32) := ashiftrt.S ashldi3.c ashrsi3.S ashlsi3.S \ | |
43 | lshrsi3.S | |
44 | lib1funcs-obj := \ | |
45 | $(addsuffix .o, $(basename $(addprefix $(obj)/, $(lib1funcs-y)))) | |
46 | ||
47 | lib1funcs-dir := $(srctree)/arch/$(SRCARCH)/lib | |
48 | ifeq ($(BITS),64) | |
49 | lib1funcs-dir := $(addsuffix $(BITS), $(lib1funcs-dir)) | |
50 | endif | |
51 | ||
2af7967a | 52 | KBUILD_CFLAGS += -I$(lib1funcs-dir) -DDISABLE_BRANCH_PROFILING |
363e9f05 PM |
53 | |
54 | $(addprefix $(obj)/,$(lib1funcs-y)): $(obj)/%: $(lib1funcs-dir)/% FORCE | |
55 | $(call cmd,shipped) | |
56 | ||
57 | $(obj)/vmlinux: $(OBJECTS) $(obj)/piggy.o $(lib1funcs-obj) FORCE | |
1eca133c | 58 | $(call if_changed,ld) |
1eca133c PM |
59 | |
60 | $(obj)/vmlinux.bin: vmlinux FORCE | |
61 | $(call if_changed,objcopy) | |
62 | ||
07e88e1b PM |
63 | vmlinux.bin.all-y := $(obj)/vmlinux.bin |
64 | ||
65 | $(obj)/vmlinux.bin.gz: $(vmlinux.bin.all-y) FORCE | |
1eca133c | 66 | $(call if_changed,gzip) |
07e88e1b PM |
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) | |
50cfa79d PM |
71 | $(obj)/vmlinux.bin.xz: $(vmlinux.bin.all-y) FORCE |
72 | $(call if_changed,xzkern) | |
c7b16efb PM |
73 | $(obj)/vmlinux.bin.lzo: $(vmlinux.bin.all-y) FORCE |
74 | $(call if_changed,lzo) | |
07e88e1b | 75 | |
1eca133c PM |
76 | OBJCOPYFLAGS += -R .empty_zero_page |
77 | ||
07e88e1b PM |
78 | LDFLAGS_piggy.o := -r --format binary --oformat $(ld-bfd) -T |
79 | ||
80 | $(obj)/piggy.o: $(obj)/vmlinux.scr $(obj)/vmlinux.bin.$(suffix-y) FORCE | |
81 | $(call if_changed,ld) |