1 # SPDX-License-Identifier: GPL-2.0-only !! 1 # This file is included by the global makefile so that you can add your own >> 2 # architecture-specific flags and dependencies. 2 # 3 # 3 # Copyright (C) 2004, 2007-2010, 2011-2012 Syn !! 4 # This file is subject to the terms and conditions of the GNU General Public >> 5 # License. See the file "COPYING" in the main directory of this archive >> 6 # for more details. >> 7 # >> 8 # Copyright (C) 1994 by Linus Torvalds >> 9 # Changes for PPC by Gary Thomas >> 10 # Rewritten by Cort Dougan and Paul Mackerras 4 # 11 # 5 12 6 KBUILD_DEFCONFIG := haps_hs_smp_defconfig !! 13 # This must match PAGE_OFFSET in include/asm-ppc/page.h. 7 !! 14 KERNELLOAD := $(CONFIG_KERNEL_START) 8 ifeq ($(CROSS_COMPILE),) << 9 CROSS_COMPILE := $(call cc-cross-prefix, arc-l << 10 endif << 11 << 12 cflags-y += -fno-common -pipe -fno-buil << 13 << 14 tune-mcpu-def-$(CONFIG_ISA_ARCOMPACT) := -mc << 15 tune-mcpu-def-$(CONFIG_ISA_ARCV2) := -mc << 16 << 17 ifeq ($(CONFIG_ARC_TUNE_MCPU),) << 18 cflags-y += $(t << 19 else << 20 tune-mcpu := $(C << 21 ifneq ($(call cc-option,$(tune-mcpu)),) << 22 cflags-y += $(t << 23 else << 24 # The flag provided by 'CONFIG_ARC_TUNE_MCPU' << 25 # (probably the compiler is too old). Use ISA << 26 $(warning ** WARNING ** CONFIG_ARC_TUNE_MCPU f << 27 cflags-y += $(t << 28 endif << 29 endif << 30 15 31 ifdef CONFIG_ARC_CURR_IN_REG !! 16 LDFLAGS_vmlinux := -Ttext $(KERNELLOAD) -Bstatic 32 # For a global register definition, make sure !! 17 CPPFLAGS += -Iarch/$(ARCH) 33 # We had a customer reported bug where some co !! 18 AFLAGS += -Iarch/$(ARCH) 34 # any kernel headers, and missing the global r !! 19 cflags-y += -Iarch/$(ARCH) -msoft-float -pipe \ 35 # Can't do unconditionally because of recursiv !! 20 -ffixed-r2 -Wno-uninitialized -mmultiple -mstring 36 # due to <linux/thread_info.h> !! 21 CPP = $(CC) -E $(CFLAGS) 37 LINUXINCLUDE += -include $(srctree)/arch/a << 38 cflags-y += -ffixed-gp << 39 endif << 40 22 41 cflags-y += -fs !! 23 cflags-$(CONFIG_4xx) += -Wa,-m405 >> 24 cflags-$(CONFIG_PPC64BRIDGE) += -Wa,-mppc64bridge 42 25 43 cflags-$(CONFIG_ARC_HAS_LLSC) += -ml !! 26 CFLAGS += $(cflags-y) 44 cflags-$(CONFIG_ARC_HAS_SWAPE) += -ms << 45 27 46 ifdef CONFIG_ISA_ARCV2 << 47 28 48 ifdef CONFIG_ARC_USE_UNALIGNED_MEM_ACCESS !! 29 head-y := arch/ppc/kernel/head.o 49 cflags-y += -mu !! 30 head-$(CONFIG_8xx) := arch/ppc/kernel/head_8xx.o 50 else !! 31 head-$(CONFIG_4xx) := arch/ppc/kernel/head_4xx.o 51 cflags-y += -mn !! 32 head-$(CONFIG_44x) := arch/ppc/kernel/head_44x.o 52 endif << 53 33 54 ifndef CONFIG_ARC_HAS_LL64 !! 34 head-$(CONFIG_6xx) += arch/ppc/kernel/idle_6xx.o 55 cflags-y += -mn !! 35 head-$(CONFIG_POWER4) += arch/ppc/kernel/idle_power4.o 56 endif << 57 36 58 ifndef CONFIG_ARC_HAS_DIV_REM !! 37 core-y += arch/ppc/kernel/ arch/ppc/platforms/ \ 59 cflags-y += -mn !! 38 arch/ppc/mm/ arch/ppc/lib/ arch/ppc/syslib/ 60 endif !! 39 core-$(CONFIG_4xx) += arch/ppc/platforms/4xx/ >> 40 core-$(CONFIG_MATH_EMULATION) += arch/ppc/math-emu/ >> 41 core-$(CONFIG_XMON) += arch/ppc/xmon/ >> 42 core-$(CONFIG_APUS) += arch/ppc/amiga/ >> 43 drivers-$(CONFIG_8xx) += arch/ppc/8xx_io/ >> 44 drivers-$(CONFIG_4xx) += arch/ppc/4xx_io/ >> 45 drivers-$(CONFIG_8260) += arch/ppc/8260_io/ >> 46 drivers-$(CONFIG_OCP) += arch/ppc/ocp/ 61 47 62 endif !! 48 BOOT_TARGETS = zImage zImage.initrd znetboot znetboot.initrd vmlinux.sm 63 49 64 cfi := $(call as-instr,.cfi_startproc\n.cfi_en !! 50 .PHONY: $(BOOT_TARGETS) 65 cflags-$(CONFIG_ARC_DW2_UNWIND) += -fa << 66 51 67 # small data is default for elf32 tool-chain. !! 52 all: zImage 68 # This also allows repurposing GP as scratch r << 69 disable_small_data := y << 70 cflags-$(disable_small_data) += -mn << 71 53 72 cflags-$(CONFIG_CPU_BIG_ENDIAN) += -mb !! 54 AFLAGS_vmlinux.lds.o := -Upowerpc 73 ldflags-$(CONFIG_CPU_BIG_ENDIAN) += -EB << 74 55 75 LIBGCC = $(shell $(CC) $(cflags-y) --print-li !! 56 # All the instructions talk about "make bzImage". >> 57 bzImage: zImage 76 58 77 # Modules with short calls might break for cal !! 59 boot := arch/$(ARCH)/boot 78 KBUILD_CFLAGS_MODULE += -mlong-calls -mno-m << 79 60 80 # Finally dump eveything into kernel build sys !! 61 $(BOOT_TARGETS): vmlinux 81 KBUILD_CFLAGS += $(cflags-y) !! 62 $(Q)$(MAKE) $(build)=$(boot) $@ 82 KBUILD_AFLAGS += $(KBUILD_CFLAGS) << 83 KBUILD_LDFLAGS += $(ldflags-y) << 84 63 85 # w/o this dtb won't embed into kernel binary !! 64 uImage: vmlinux 86 core-y += arch/arc/boot/dts/ !! 65 $(Q)$(MAKE) $(build)=$(boot)/images $(boot)/images/$@ 87 66 88 core-y += arch/arc/pl !! 67 define archhelp 89 core-$(CONFIG_ARC_PLAT_TB10X) += arch/arc/pl !! 68 @echo '* zImage - Compressed kernel image (arch/$(ARCH)/boot/images/zImage.*)' 90 core-$(CONFIG_ARC_PLAT_AXS10X) += arch/arc/pl !! 69 @echo ' uImage - Create a bootable image for U-Boot / PPCBoot' 91 core-$(CONFIG_ARC_SOC_HSDK) += arch/arc/pl !! 70 @echo ' install - Install kernel using' >> 71 @echo ' (your) ~/bin/installkernel or' >> 72 @echo ' (distribution) /sbin/installkernel or' >> 73 @echo ' install to $$(INSTALL_PATH) and run lilo' >> 74 @echo ' *_defconfig - Select default config from arch/$(ARCH)/ppc/configs' >> 75 endef 92 76 93 libs-y += arch/arc/lib/ $(LIBGCC) !! 77 archclean: >> 78 $(Q)$(MAKE) $(clean)=arch/ppc/boot 94 79 95 boot := arch/arc/boot !! 80 prepare: include/asm-$(ARCH)/offsets.h checkbin 96 81 97 boot_targets := uImage.bin uImage.gz uImage.lz !! 82 arch/$(ARCH)/kernel/asm-offsets.s: include/asm include/linux/version.h \ >> 83 include/config/MARKER 98 84 99 PHONY += $(boot_targets) !! 85 include/asm-$(ARCH)/offsets.h: arch/$(ARCH)/kernel/asm-offsets.s 100 $(boot_targets): vmlinux !! 86 $(call filechk,gen-asm-offsets) 101 $(Q)$(MAKE) $(build)=$(boot) $(boot)/$ << 102 87 103 uimage-default-y := uIm !! 88 ifdef CONFIG_6xx 104 uimage-default-$(CONFIG_KERNEL_GZIP) := uIm !! 89 # Ensure this is binutils 2.12.1 (or 2.12.90.0.7) or later 105 uimage-default-$(CONFIG_KERNEL_LZMA) := uIm !! 90 NEW_AS := $(shell echo dssall | $(AS) -o /dev/null >/dev/null 2>&1 ; echo $$?) >> 91 GOODVER := 2.12.1 >> 92 else >> 93 NEW_AS := 0 >> 94 endif 106 95 107 PHONY += uImage !! 96 ifneq ($(NEW_AS),0) 108 uImage: $(uimage-default-y) !! 97 checkbin: 109 @ln -sf $< $(boot)/uImage !! 98 @echo -n '*** ${VERSION}.${PATCHLEVEL} kernels no longer build' 110 @$(kecho) ' Image $(boot)/uImage is r !! 99 @echo 'correctly with old versions of binutils.' >> 100 @echo '*** Please upgrade your binutils to ${GOODVER} or newer' >> 101 @false >> 102 else >> 103 checkbin: >> 104 @true >> 105 endif 111 106 112 CLEAN_FILES += $(boot)/uImage !! 107 CLEAN_FILES += include/asm-$(ARCH)/offsets.h \ >> 108 arch/$(ARCH)/kernel/asm-offsets.s
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.