~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/arm/boot/compressed/Makefile

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 # SPDX-License-Identifier: GPL-2.0
  2 #
  3 # linux/arch/arm/boot/compressed/Makefile
  4 #
  5 # create a compressed vmlinuz image from the original vmlinux
  6 #
  7 
  8 OBJS            =
  9 
 10 HEAD    = head.o
 11 OBJS    += misc.o decompress.o
 12 CFLAGS_decompress.o += $(DISABLE_STACKLEAK_PLUGIN)
 13 ifeq ($(CONFIG_DEBUG_UNCOMPRESS),y)
 14 OBJS    += debug.o
 15 AFLAGS_head.o += -DDEBUG
 16 endif
 17 
 18 # string library code (-Os is enforced to keep it much smaller)
 19 OBJS            += string.o
 20 CFLAGS_string.o := -Os
 21 
 22 ifeq ($(CONFIG_ARM_VIRT_EXT),y)
 23 OBJS            += hyp-stub.o
 24 endif
 25 
 26 #
 27 # Architecture dependencies
 28 #
 29 ifeq ($(CONFIG_ARCH_ACORN),y)
 30 OBJS            += ll_char_wr.o font.o
 31 endif
 32 
 33 ifeq ($(CONFIG_ARCH_SA1100),y)
 34 OBJS            += head-sa1100.o
 35 endif
 36 
 37 ifeq ($(CONFIG_CPU_XSCALE),y)
 38 OBJS            += head-xscale.o
 39 endif
 40 
 41 ifeq ($(CONFIG_PXA_SHARPSL_DETECT_MACH_ID),y)
 42 OBJS            += head-sharpsl.o
 43 endif
 44 
 45 ifeq ($(CONFIG_CPU_ENDIAN_BE32),y)
 46 ifeq ($(CONFIG_CPU_CP15),y)
 47 OBJS            += big-endian.o
 48 else
 49 # The endian should be set by h/w design.
 50 endif
 51 endif
 52 
 53 #
 54 # We now have a PIC decompressor implementation.  Decompressors running
 55 # from RAM should not define ZTEXTADDR.  Decompressors running directly
 56 # from ROM or Flash must define ZTEXTADDR (preferably via the config)
 57 # FIXME: Previous assignment to ztextaddr-y is lost here. See SHARK
 58 ifeq ($(CONFIG_ZBOOT_ROM),y)
 59 ZTEXTADDR       := $(CONFIG_ZBOOT_ROM_TEXT)
 60 ZBSSADDR        := $(CONFIG_ZBOOT_ROM_BSS)
 61 else
 62 ZTEXTADDR       := 0
 63 ZBSSADDR        := ALIGN(8)
 64 endif
 65 
 66 MALLOC_SIZE     := 65536
 67 
 68 AFLAGS_head.o += -DTEXT_OFFSET=$(TEXT_OFFSET) -DMALLOC_SIZE=$(MALLOC_SIZE)
 69 CPPFLAGS_vmlinux.lds := -DTEXT_START="$(ZTEXTADDR)" -DBSS_START="$(ZBSSADDR)"
 70 CPPFLAGS_vmlinux.lds += -DTEXT_OFFSET="$(TEXT_OFFSET)"
 71 CPPFLAGS_vmlinux.lds += -DMALLOC_SIZE="$(MALLOC_SIZE)"
 72 
 73 compress-$(CONFIG_KERNEL_GZIP) = gzip
 74 compress-$(CONFIG_KERNEL_LZO)  = lzo_with_size
 75 compress-$(CONFIG_KERNEL_LZMA) = lzma_with_size
 76 compress-$(CONFIG_KERNEL_XZ)   = xzkern_with_size
 77 compress-$(CONFIG_KERNEL_LZ4)  = lz4_with_size
 78 
 79 libfdt_objs := fdt_rw.o fdt_ro.o fdt_wip.o fdt.o
 80 
 81 ifeq ($(CONFIG_ARM_ATAG_DTB_COMPAT),y)
 82 CFLAGS_REMOVE_atags_to_fdt.o += -Wframe-larger-than=${CONFIG_FRAME_WARN}
 83 CFLAGS_atags_to_fdt.o += -Wframe-larger-than=1280
 84 OBJS    += $(libfdt_objs) atags_to_fdt.o
 85 endif
 86 ifeq ($(CONFIG_USE_OF),y)
 87 OBJS    += $(libfdt_objs) fdt_check_mem_start.o
 88 endif
 89 
 90 OBJS    += lib1funcs.o ashldi3.o bswapsdi2.o
 91 
 92 targets       := vmlinux vmlinux.lds piggy_data piggy.o \
 93                  head.o $(OBJS)
 94 
 95 KBUILD_CFLAGS += -DDISABLE_BRANCH_PROFILING
 96 
 97 ccflags-y := -fpic $(call cc-option,-mno-single-pic-base,) -fno-builtin \
 98              -I$(srctree)/scripts/dtc/libfdt -fno-stack-protector \
 99              -I$(obj) $(DISABLE_ARM_SSP_PER_TASK_PLUGIN)
100 ccflags-remove-$(CONFIG_FUNCTION_TRACER) += -pg
101 asflags-y := -DZIMAGE
102 
103 # Supply kernel BSS size to the decompressor via a linker symbol.
104 KBSS_SZ = $(shell echo $$(($$($(NM) vmlinux | \
105                 sed -n -e 's/^\([^ ]*\) [ABD] __bss_start$$/-0x\1/p' \
106                        -e 's/^\([^ ]*\) [ABD] __bss_stop$$/+0x\1/p') )) )
107 LDFLAGS_vmlinux = --defsym _kernel_bss_size=$(KBSS_SZ)
108 # Supply ZRELADDR to the decompressor via a linker symbol.
109 ifneq ($(CONFIG_AUTO_ZRELADDR),y)
110 LDFLAGS_vmlinux += --defsym zreladdr=$(ZRELADDR)
111 endif
112 ifeq ($(CONFIG_CPU_ENDIAN_BE8),y)
113 LDFLAGS_vmlinux += --be8
114 endif
115 # Report unresolved symbol references
116 LDFLAGS_vmlinux += --no-undefined
117 # Delete all temporary local symbols
118 LDFLAGS_vmlinux += -X
119 # Report orphan sections
120 ifdef CONFIG_LD_ORPHAN_WARN
121 LDFLAGS_vmlinux += --orphan-handling=$(CONFIG_LD_ORPHAN_WARN_LEVEL)
122 endif
123 # Next argument is a linker script
124 LDFLAGS_vmlinux += -T
125 
126 # We need to prevent any GOTOFF relocs being used with references
127 # to symbols in the .bss section since we cannot relocate them
128 # independently from the rest at run time.  This can be achieved by
129 # ensuring that no private .bss symbols exist, as global symbols
130 # always have a GOT entry which is what we need.
131 # The .data section is already discarded by the linker script so no need
132 # to bother about it here.
133 check_for_bad_syms = \
134 bad_syms=$$($(NM) $@ | sed -n 's/^.\{8\} [bc] \(.*\)/\1/p') && \
135 [ -z "$$bad_syms" ] || \
136   ( echo "following symbols must have non local/private scope:" >&2; \
137     echo "$$bad_syms" >&2; false )
138 
139 check_for_multiple_zreladdr = \
140 if [ $(words $(ZRELADDR)) -gt 1 -a "$(CONFIG_AUTO_ZRELADDR)" = "" ]; then \
141         echo 'multiple zreladdrs: $(ZRELADDR)'; \
142         echo 'This needs CONFIG_AUTO_ZRELADDR to be set'; \
143         false; \
144 fi
145 
146 efi-obj-$(CONFIG_EFI_STUB) := $(objtree)/drivers/firmware/efi/libstub/lib.a
147 
148 $(obj)/vmlinux: $(obj)/vmlinux.lds $(obj)/$(HEAD) $(obj)/piggy.o \
149                 $(addprefix $(obj)/, $(OBJS)) \
150                 $(efi-obj-y) FORCE
151         @$(check_for_multiple_zreladdr)
152         $(call if_changed,ld)
153         @$(check_for_bad_syms)
154 
155 $(obj)/piggy_data: $(obj)/../Image FORCE
156         $(call if_changed,$(compress-y))
157 
158 $(obj)/piggy.o: $(obj)/piggy_data
159 
160 CFLAGS_font.o := -Dstatic=

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php