1 # SPDX-License-Identifier: GPL-2.0 1 # SPDX-License-Identifier: GPL-2.0 >> 2 # Makefile for the Sparc boot stuff. 2 # 3 # 3 # Makefile for the linux s390-specific parts o !! 4 # Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu) 4 # !! 5 # Copyright (C) 1997,1998 Jakub Jelinek (jj@ultra.linux.cz) 5 6 6 # Tooling runtimes are unavailable and cannot !! 7 ROOT_IMG := /usr/src/root.img 7 KCOV_INSTRUMENT := n !! 8 ELFTOAOUT := elftoaout 8 GCOV_PROFILE := n << 9 UBSAN_SANITIZE := n << 10 KASAN_SANITIZE := n << 11 KCSAN_SANITIZE := n << 12 KMSAN_SANITIZE := n << 13 9 14 # !! 10 hostprogs := piggyback 15 # Use minimum architecture level so it is poss !! 11 targets := tftpboot.img image zImage vmlinux.aout 16 # message if the kernel is started on a machin !! 12 clean-files := System.map 17 # << 18 CC_FLAGS_MARCH_MINIMUM := -march=z10 << 19 13 20 KBUILD_AFLAGS := $(filter-out $(CC_FLAGS_MARCH !! 14 quiet_cmd_elftoaout = ELFTOAOUT $@ 21 KBUILD_CFLAGS := $(filter-out $(CC_FLAGS_MARCH !! 15 cmd_elftoaout = $(ELFTOAOUT) $(obj)/image -o $@ 22 KBUILD_AFLAGS += $(CC_FLAGS_MARCH_MINIMUM) !! 16 quiet_cmd_piggy = PIGGY $@ 23 KBUILD_CFLAGS += $(CC_FLAGS_MARCH_MINIMUM) !! 17 cmd_piggy = $(obj)/piggyback $(BITS) $@ System.map $(ROOT_IMG) 24 !! 18 quiet_cmd_strip = STRIP $@ 25 CFLAGS_sclp_early_core.o += -I$(srctree)/drive !! 19 cmd_strip = $(STRIP) -R .comment -R .note -K sun4u_init -K _end -K _start $< -o $@ 26 << 27 obj-y := head.o als.o startup.o physmem_info << 28 obj-y += string.o ebcdic.o sclp_early_core.o << 29 obj-y += version.o pgm_check_info.o ctype.o << 30 obj-y += uv.o printk.o << 31 obj-$(CONFIG_RANDOMIZE_BASE) += kaslr.o << 32 obj-y += $(if $(CONFIG_KERNEL_UNCOMPRESSED), << 33 obj-$(CONFIG_KERNEL_ZSTD) += clz_ctz.o << 34 obj-$(CONFIG_KMSAN) += kmsan.o << 35 obj-all := $(obj-y) piggy.o syms.o << 36 << 37 targets := bzImage section_cmp.boot.data secti << 38 targets += vmlinux.lds vmlinux vmlinux.bin vml << 39 targets += vmlinux.bin.xz vmlinux.bin.lzma vml << 40 targets += vmlinux.bin.zst info.bin syms.bin v << 41 targets += relocs.S << 42 << 43 OBJECTS := $(addprefix $(obj)/,$(obj-y)) << 44 OBJECTS_ALL := $(addprefix $(obj)/,$(obj-all)) << 45 << 46 clean-files += vmlinux.map << 47 << 48 quiet_cmd_section_cmp = SECTCMP $* << 49 define cmd_section_cmp << 50 s1=`$(OBJDUMP) -t "$<" | grep "\s$*\s\ << 51 sed -n "/0000000000000000/! s/ << 52 s2=`$(OBJDUMP) -t "$(word 2,$^)" | gre << 53 sed -n "/0000000000000000/! s/ << 54 if [ "$$s1" != "$$s2" ]; then \ << 55 echo "error: section $* differ << 56 exit 1; \ << 57 fi; \ << 58 touch $@ << 59 endef << 60 20 61 $(obj)/bzImage: $(obj)/vmlinux $(obj)/section_ !! 21 ifeq ($(CONFIG_SPARC64),y) 62 $(call if_changed,objcopy) << 63 22 64 $(obj)/section_cmp%: vmlinux $(obj)/vmlinux FO !! 23 # Actual linking 65 $(call if_changed,section_cmp) << 66 24 67 LDFLAGS_vmlinux-$(CONFIG_LD_ORPHAN_WARN) := -- !! 25 $(obj)/zImage: $(obj)/image FORCE 68 LDFLAGS_vmlinux := $(LDFLAGS_vmlinux-y) --ofor !! 26 $(call if_changed,gzip) 69 $(obj)/vmlinux: $(obj)/vmlinux.lds $(OBJECTS_A !! 27 @$(kecho) 'Kernel: $@ is ready' '(#'$(or $(KBUILD_BUILD_VERSION),`cat .version`)')' 70 $(call if_changed,ld) << 71 << 72 LDFLAGS_vmlinux.syms := $(LDFLAGS_vmlinux-y) - << 73 $(obj)/vmlinux.syms: $(obj)/vmlinux.lds $(OBJE << 74 $(call if_changed,ld) << 75 << 76 quiet_cmd_dumpsyms = DUMPSYMS $< << 77 define cmd_dumpsyms << 78 $(NM) -n -S --format=bsd "$<" | sed -n << 79 endef << 80 28 81 $(obj)/syms.bin: $(obj)/vmlinux.syms FORCE !! 29 $(obj)/vmlinux.aout: vmlinux FORCE 82 $(call if_changed,dumpsyms) !! 30 $(call if_changed,elftoaout) >> 31 @$(kecho) 'Kernel: $@ is ready' '(#'$(or $(KBUILD_BUILD_VERSION),`cat .version`)')' >> 32 else 83 33 84 OBJCOPYFLAGS_syms.o := -I binary -O elf64-s390 !! 34 $(obj)/zImage: $(obj)/image FORCE 85 $(obj)/syms.o: $(obj)/syms.bin FORCE !! 35 $(call if_changed,strip) 86 $(call if_changed,objcopy) !! 36 @$(kecho) 'Kernel: $@ is ready' '(#'$(or $(KBUILD_BUILD_VERSION),`cat .version`)')' 87 37 88 OBJCOPYFLAGS_info.bin := -O binary --only-sect !! 38 # The following lines make a readable image for U-Boot. 89 $(obj)/info.bin: vmlinux FORCE !! 39 # uImage - Binary file read by U-boot 90 $(call if_changed,objcopy) !! 40 # uImage.o - object file of uImage for loading with a 91 !! 41 # flash programmer understanding ELF. 92 OBJCOPYFLAGS_info.o := -I binary -O elf64-s390 << 93 $(obj)/info.o: $(obj)/info.bin FORCE << 94 $(call if_changed,objcopy) << 95 42 96 OBJCOPYFLAGS_vmlinux.bin := -O binary --remove !! 43 OBJCOPYFLAGS_image.bin := -S -O binary -R .note -R .comment 97 $(obj)/vmlinux.bin: vmlinux FORCE !! 44 $(obj)/image.bin: $(obj)/image FORCE 98 $(call if_changed,objcopy) 45 $(call if_changed,objcopy) 99 46 100 # relocs.S is created by the vmlinux postlink !! 47 $(obj)/image.gz: $(obj)/image.bin FORCE 101 $(obj)/relocs.S: vmlinux << 102 @true << 103 << 104 suffix-$(CONFIG_KERNEL_GZIP) := .gz << 105 suffix-$(CONFIG_KERNEL_BZIP2) := .bz2 << 106 suffix-$(CONFIG_KERNEL_LZ4) := .lz4 << 107 suffix-$(CONFIG_KERNEL_LZMA) := .lzma << 108 suffix-$(CONFIG_KERNEL_LZO) := .lzo << 109 suffix-$(CONFIG_KERNEL_XZ) := .xz << 110 suffix-$(CONFIG_KERNEL_ZSTD) := .zst << 111 << 112 $(obj)/vmlinux.bin.gz: $(obj)/vmlinux.bin FORC << 113 $(call if_changed,gzip) 48 $(call if_changed,gzip) 114 $(obj)/vmlinux.bin.bz2: $(obj)/vmlinux.bin FOR << 115 $(call if_changed,bzip2_with_size) << 116 $(obj)/vmlinux.bin.lz4: $(obj)/vmlinux.bin FOR << 117 $(call if_changed,lz4_with_size) << 118 $(obj)/vmlinux.bin.lzma: $(obj)/vmlinux.bin FO << 119 $(call if_changed,lzma_with_size) << 120 $(obj)/vmlinux.bin.lzo: $(obj)/vmlinux.bin FOR << 121 $(call if_changed,lzo_with_size) << 122 $(obj)/vmlinux.bin.xz: $(obj)/vmlinux.bin FORC << 123 $(call if_changed,xzkern_with_size) << 124 $(obj)/vmlinux.bin.zst: $(obj)/vmlinux.bin FOR << 125 $(call if_changed,zstd22_with_size) << 126 49 127 OBJCOPYFLAGS_piggy.o := -I binary -O elf64-s39 !! 50 UIMAGE_LOADADDR = $(CONFIG_UBOOT_LOAD_ADDR) 128 $(obj)/piggy.o: $(obj)/vmlinux.bin$(suffix-y) !! 51 UIMAGE_ENTRYADDR = $(CONFIG_UBOOT_ENTRY_ADDR) 129 $(call if_changed,objcopy) !! 52 UIMAGE_COMPRESSION = gzip >> 53 >> 54 quiet_cmd_uimage.o = UIMAGE.O $@ >> 55 cmd_uimage.o = $(LD) -Tdata $(CONFIG_UBOOT_FLASH_ADDR) \ >> 56 -r -b binary $@ -o $@.o >> 57 >> 58 targets += uImage >> 59 $(obj)/uImage: $(obj)/image.gz FORCE >> 60 $(call if_changed,uimage) >> 61 $(call if_changed,uimage.o) >> 62 @$(kecho) 'Kernel: $@ is ready' '(#'$(or $(KBUILD_BUILD_VERSION),`cat .version`)')' >> 63 >> 64 endif >> 65 >> 66 $(obj)/image: vmlinux FORCE >> 67 $(call if_changed,strip) >> 68 @$(kecho) 'Kernel: $@ is ready' '(#'$(or $(KBUILD_BUILD_VERSION),`cat .version`)')' >> 69 >> 70 $(obj)/tftpboot.img: $(obj)/image $(obj)/piggyback System.map $(ROOT_IMG) FORCE >> 71 $(call if_changed,elftoaout) >> 72 $(call if_changed,piggy)
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.