1 # SPDX-License-Identifier: GPL-2.0 1 # SPDX-License-Identifier: GPL-2.0 2 # 2 # 3 # s390/Makefile !! 3 # sparc/Makefile 4 # 4 # 5 # This file is included by the global makefile !! 5 # Makefile for the architecture dependent flags and dependencies on the 6 # architecture-specific flags and dependencies !! 6 # Sparc and sparc64. 7 # << 8 # Copyright (C) 1994 by Linus Torvalds << 9 # 7 # >> 8 # Copyright (C) 1994,1996,1998 David S. Miller (davem@caip.rutgers.edu) >> 9 # Copyright (C) 1998 Jakub Jelinek (jj@ultra.linux.cz) 10 10 11 LD_BFD := elf64-s390 !! 11 # We are not yet configured - so test on arch 12 KBUILD_LDFLAGS := -m elf64_s390 !! 12 ifeq ($(ARCH),sparc64) 13 KBUILD_AFLAGS_MODULE += -fPIC !! 13 KBUILD_DEFCONFIG := sparc64_defconfig 14 KBUILD_CFLAGS_MODULE += -fPIC !! 14 else 15 KBUILD_AFLAGS += -m64 !! 15 KBUILD_DEFCONFIG := sparc32_defconfig 16 KBUILD_CFLAGS += -m64 << 17 KBUILD_CFLAGS += -fPIC << 18 LDFLAGS_vmlinux := -no-pie --emit-relocs --dis << 19 extra_tools := relocs << 20 aflags_dwarf := -Wa,-gdwarf-2 << 21 KBUILD_AFLAGS_DECOMPRESSOR := $(CLANG_FLAGS) - << 22 ifndef CONFIG_AS_IS_LLVM << 23 KBUILD_AFLAGS_DECOMPRESSOR += $(if $(CONFIG_DE << 24 endif 16 endif 25 KBUILD_CFLAGS_DECOMPRESSOR := $(CLANG_FLAGS) - << 26 KBUILD_CFLAGS_DECOMPRESSOR += -DDISABLE_BRANCH << 27 KBUILD_CFLAGS_DECOMPRESSOR += -D__DECOMPRESSOR << 28 KBUILD_CFLAGS_DECOMPRESSOR += -fno-delete-null << 29 KBUILD_CFLAGS_DECOMPRESSOR += -fno-asynchronou << 30 KBUILD_CFLAGS_DECOMPRESSOR += -ffreestanding << 31 KBUILD_CFLAGS_DECOMPRESSOR += -fno-stack-prote << 32 KBUILD_CFLAGS_DECOMPRESSOR += -fPIE << 33 KBUILD_CFLAGS_DECOMPRESSOR += $(call cc-disabl << 34 KBUILD_CFLAGS_DECOMPRESSOR += $(if $(CONFIG_DE << 35 KBUILD_CFLAGS_DECOMPRESSOR += $(if $(CONFIG_DE << 36 KBUILD_CFLAGS_DECOMPRESSOR += $(if $(CONFIG_CC << 37 << 38 UTS_MACHINE := s390x << 39 STACK_SIZE := $(if $(CONFIG_KASAN),65536, << 40 CHECKFLAGS += -D__s390__ -D__s390x__ << 41 << 42 export LD_BFD << 43 << 44 mflags-$(CONFIG_MARCH_Z10) := -march=z10 << 45 mflags-$(CONFIG_MARCH_Z196) := -march=z196 << 46 mflags-$(CONFIG_MARCH_ZEC12) := -march=zEC12 << 47 mflags-$(CONFIG_MARCH_Z13) := -march=z13 << 48 mflags-$(CONFIG_MARCH_Z14) := -march=z14 << 49 mflags-$(CONFIG_MARCH_Z15) := -march=z15 << 50 mflags-$(CONFIG_MARCH_Z16) := -march=z16 << 51 << 52 export CC_FLAGS_MARCH := $(mflags-y) << 53 << 54 aflags-y += $(mflags-y) << 55 cflags-y += $(mflags-y) << 56 << 57 cflags-$(CONFIG_MARCH_Z10_TUNE) += -mt << 58 cflags-$(CONFIG_MARCH_Z196_TUNE) += -mt << 59 cflags-$(CONFIG_MARCH_ZEC12_TUNE) += -mt << 60 cflags-$(CONFIG_MARCH_Z13_TUNE) += -mt << 61 cflags-$(CONFIG_MARCH_Z14_TUNE) += -mt << 62 cflags-$(CONFIG_MARCH_Z15_TUNE) += -mt << 63 cflags-$(CONFIG_MARCH_Z16_TUNE) += -mt << 64 << 65 cflags-y += -Wa,-I$(srctree)/arch/$(ARCH)/incl << 66 17 >> 18 ifeq ($(CONFIG_SPARC32),y) >> 19 ##### >> 20 # sparc32 67 # 21 # 68 # Prevent tail-call optimizations, to get clea !! 22 >> 23 CHECKFLAGS += -D__sparc__ >> 24 KBUILD_LDFLAGS := -m elf32_sparc >> 25 export BITS := 32 >> 26 UTS_MACHINE := sparc >> 27 >> 28 # We are adding -Wa,-Av8 to KBUILD_CFLAGS to deal with a specs bug in some >> 29 # versions of gcc. Some gcc versions won't pass -Av8 to binutils when you >> 30 # give -mcpu=v8. This silently worked with older bintutils versions but >> 31 # does not any more. >> 32 KBUILD_CFLAGS += -m32 -mcpu=v8 -pipe -mno-fpu -fcall-used-g5 -fcall-used-g7 >> 33 KBUILD_CFLAGS += -Wa,-Av8 >> 34 >> 35 KBUILD_AFLAGS += -m32 -Wa,-Av8 >> 36 >> 37 else >> 38 ##### >> 39 # sparc64 69 # 40 # 70 cflags-$(CONFIG_FRAME_POINTER) += -fno-optimiz << 71 41 72 KBUILD_AFLAGS_DECOMPRESSOR += $(aflags-y) !! 42 CHECKFLAGS += -D__sparc__ -D__sparc_v9__ -D__arch64__ 73 KBUILD_CFLAGS_DECOMPRESSOR += $(cflags-y) !! 43 KBUILD_LDFLAGS := -m elf64_sparc >> 44 export BITS := 64 >> 45 UTS_MACHINE := sparc64 >> 46 >> 47 KBUILD_CFLAGS += -m64 -pipe -mno-fpu -mcpu=ultrasparc -mcmodel=medlow >> 48 KBUILD_CFLAGS += -ffixed-g4 -ffixed-g5 -fcall-used-g7 -Wno-sign-compare >> 49 KBUILD_CFLAGS += -Wa,--undeclared-regs >> 50 KBUILD_CFLAGS += $(call cc-option,-mtune=ultrasparc3) >> 51 KBUILD_AFLAGS += -m64 -mcpu=ultrasparc -Wa,--undeclared-regs 74 52 75 ifneq ($(call cc-option,-mstack-size=8192 -mst !! 53 ifeq ($(CONFIG_MCOUNT),y) 76 CC_FLAGS_CHECK_STACK := -mstack-size=$(STACK !! 54 KBUILD_CFLAGS += -pg 77 ifeq ($(call cc-option,-mstack-size=8192),) << 78 CC_FLAGS_CHECK_STACK += -mstack-guard=$(CO << 79 endif << 80 export CC_FLAGS_CHECK_STACK << 81 cflags-$(CONFIG_CHECK_STACK) += $(CC_FLAGS_C << 82 endif 55 endif 83 56 84 ifdef CONFIG_EXPOLINE << 85 ifdef CONFIG_EXPOLINE_EXTERN << 86 CC_FLAGS_EXPOLINE := -mindirect-branch=thu << 87 CC_FLAGS_EXPOLINE += -mfunction-return=thu << 88 else << 89 CC_FLAGS_EXPOLINE := -mindirect-branch=thu << 90 CC_FLAGS_EXPOLINE += -mfunction-return=thu << 91 endif << 92 CC_FLAGS_EXPOLINE += -mindirect-branch-table << 93 export CC_FLAGS_EXPOLINE << 94 cflags-y += $(CC_FLAGS_EXPOLINE) -DCC_USING_ << 95 aflags-y += -DCC_USING_EXPOLINE << 96 endif 57 endif 97 58 98 ifdef CONFIG_FUNCTION_TRACER !! 59 libs-y += arch/sparc/prom/ 99 ifeq ($(call cc-option,-mfentry -mnop-mcount !! 60 libs-y += arch/sparc/lib/ 100 # make use of hotpatch feature if the comp << 101 cc_hotpatch := -mhotpatch=0,3 << 102 ifneq ($(call cc-option,$(cc_hotpatch)),) << 103 CC_FLAGS_FTRACE := $(cc_hotpatch) << 104 KBUILD_AFLAGS += -DCC_USING_HOTPATCH << 105 KBUILD_CFLAGS += -DCC_USING_HOTPATCH << 106 endif << 107 endif << 108 endif << 109 << 110 # Test CFI features of binutils << 111 cfi := $(call as-instr,.cfi_startproc\n.cfi_va << 112 << 113 KBUILD_CFLAGS += -mpacked-stack -mbackchain << 114 KBUILD_CFLAGS += -pipe -Wno-sign-compare << 115 KBUILD_CFLAGS += -fno-asynchronous-unwind-ta << 116 KBUILD_AFLAGS += $(aflags-y) $(cfi) << 117 export KBUILD_AFLAGS_DECOMPRESSOR << 118 export KBUILD_CFLAGS_DECOMPRESSOR << 119 << 120 OBJCOPYFLAGS := -O binary << 121 61 122 libs-y += arch/s390/lib/ !! 62 drivers-$(CONFIG_PM) += arch/sparc/power/ >> 63 drivers-$(CONFIG_VIDEO) += arch/sparc/video/ 123 64 124 boot := arch/s390/boot !! 65 boot := arch/sparc/boot 125 syscalls := arch/s390/kernel/syscalls << 126 tools := arch/s390/tools << 127 66 128 all: bzImage !! 67 # Default target >> 68 all: zImage 129 69 130 #KBUILD_IMAGE is necessary for packaging targe !! 70 image zImage uImage tftpboot.img vmlinux.aout: vmlinux 131 KBUILD_IMAGE := $(boot)/bzImage !! 71 $(Q)$(MAKE) $(build)=$(boot) $(boot)/$@ 132 72 133 install: 73 install: 134 $(call cmd,install) 74 $(call cmd,install) 135 75 136 bzImage: vmlinux << 137 $(Q)$(MAKE) $(build)=$(boot) $(boot)/$ << 138 << 139 zfcpdump: << 140 $(Q)$(MAKE) $(build)=$(boot) $(boot)/$ << 141 << 142 archheaders: 76 archheaders: 143 $(Q)$(MAKE) $(build)=$(syscalls) uapi !! 77 $(Q)$(MAKE) $(build)=arch/sparc/kernel/syscalls all 144 << 145 archprepare: << 146 $(Q)$(MAKE) $(build)=$(syscalls) kapi << 147 $(Q)$(MAKE) $(build)=$(tools) kapi $(e << 148 ifeq ($(KBUILD_EXTMOD),) << 149 # We need to generate vdso-offsets.h before co << 150 # In order to do that, we should use the archp << 151 # asm-offsets.h is included in some files used << 152 # asm-offsets.h is built in prepare0, for whic << 153 # Therefore we need to generate the header aft << 154 # this hack. << 155 prepare: vdso_prepare << 156 vdso_prepare: prepare0 << 157 $(Q)$(MAKE) $(build)=arch/s390/kernel/ << 158 $(if $(CONFIG_COMPAT),$(Q)$(MAKE) \ << 159 $(build)=arch/s390/kernel/vdso << 160 78 161 vdso-install-y += arch/s390/k !! 79 vdso-install-$(CONFIG_SPARC64) += arch/sparc/vdso/vdso64.so.dbg 162 vdso-install-$(CONFIG_COMPAT) += arch/s390/k !! 80 vdso-install-$(CONFIG_COMPAT) += arch/sparc/vdso/vdso32.so.dbg 163 81 164 endif !! 82 # This is the image used for packaging >> 83 KBUILD_IMAGE := $(boot)/zImage 165 84 166 # Don't use tabs in echo arguments !! 85 # Don't use tabs in echo arguments. 167 define archhelp 86 define archhelp 168 echo '* bzImage - Kernel image for !! 87 echo '* vmlinux - standard SPARC kernel' 169 echo ' install - Install kernel us !! 88 echo ' image - kernel image ($(boot)/image)' 170 echo ' (your) ~/bin/$(IN !! 89 echo '* zImage - stripped/compressed kernel image ($(boot)/zImage)' 171 echo ' (distribution) /s !! 90 echo ' uImage - U-Boot SPARC32 Image (only for LEON)' 172 echo ' install to $$(INS !! 91 echo ' vmlinux.aout - a.out kernel for SPARC64' >> 92 echo ' tftpboot.img - image prepared for tftp' 173 endef 93 endef
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.