1 # SPDX-License-Identifier: GPL-2.0 !! 1 # $Id: Makefile,v 1.52 2002/02/09 19:49:31 davem Exp $ 2 # Makefile for the Hexagon arch !! 2 # sparc64/Makefile >> 3 # >> 4 # Makefile for the architecture dependent flags and dependencies on the >> 5 # 64-bit Sparc. >> 6 # >> 7 # Copyright (C) 1996,1998 David S. Miller (davem@caip.rutgers.edu) >> 8 # Copyright (C) 1998 Jakub Jelinek (jj@ultra.linux.cz) >> 9 # >> 10 >> 11 AFLAGS_vmlinux.lds.o += -Usparc >> 12 >> 13 CC := $(shell if gcc -m64 -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo gcc; else echo sparc64-linux-gcc; fi ) >> 14 >> 15 NEW_GCC := $(shell if $(CC) -m64 -mcmodel=medlow -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo y; else echo n; fi; ) >> 16 NEW_GAS := $(shell if $(LD) -V 2>&1 | grep 'elf64_sparc' > /dev/null; then echo y; else echo n; fi) >> 17 UNDECLARED_REGS := $(shell if $(CC) -c -x assembler /dev/null -Wa,--help | grep undeclared-regs > /dev/null; then echo y; else echo n; fi; ) >> 18 INLINE_LIMIT := $(shell if $(CC) -m64 -finline-limit=100000 -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo y; else echo n; fi; ) >> 19 >> 20 export NEW_GCC >> 21 >> 22 ifneq ($(NEW_GAS),y) >> 23 AS = sparc64-linux-as >> 24 LD = sparc64-linux-ld >> 25 NM = sparc64-linux-nm >> 26 AR = sparc64-linux-ar >> 27 RANLIB = sparc64-linux-ranlib >> 28 else >> 29 AS := $(AS) -64 >> 30 LDFLAGS := -m elf64_sparc >> 31 endif >> 32 >> 33 ifneq ($(UNDECLARED_REGS),y) >> 34 CC_UNDECL = >> 35 else >> 36 CC_UNDECL = -Wa,--undeclared-regs >> 37 AS := $(AS) --undeclared-regs >> 38 endif >> 39 >> 40 ifneq ($(NEW_GCC),y) >> 41 CFLAGS := $(CFLAGS) -pipe -mno-fpu -mtune=ultrasparc -mmedlow \ >> 42 -ffixed-g4 -fcall-used-g5 -fcall-used-g7 -Wno-sign-compare >> 43 else >> 44 CFLAGS := $(CFLAGS) -m64 -pipe -mno-fpu -mcpu=ultrasparc -mcmodel=medlow \ >> 45 -ffixed-g4 -fcall-used-g5 -fcall-used-g7 -Wno-sign-compare \ >> 46 $(CC_UNDECL) >> 47 AFLAGS += -m64 -mcpu=ultrasparc $(CC_UNDECL) >> 48 endif >> 49 >> 50 ifeq ($(INLINE_LIMIT),y) >> 51 CFLAGS := $(CFLAGS) -finline-limit=100000 >> 52 endif >> 53 >> 54 ifeq ($(CONFIG_MCOUNT),y) >> 55 CFLAGS := $(subst -fomit-frame-pointer,,$(CFLAGS)) >> 56 CFLAGS := $(CFLAGS) -pg >> 57 endif >> 58 >> 59 head-y := arch/sparc64/kernel/head.o arch/sparc64/kernel/init_task.o >> 60 >> 61 core-y += arch/sparc64/kernel/ arch/sparc64/mm/ >> 62 core-$(CONFIG_SOLARIS_EMUL) += arch/sparc64/solaris/ >> 63 core-y += arch/sparc64/math-emu/ >> 64 libs-y += arch/sparc64/prom/ arch/sparc64/lib/ >> 65 >> 66 # FIXME: is drivers- right? >> 67 drivers-$(CONFIG_OPROFILE) += arch/sparc64/oprofile/ >> 68 >> 69 boot := arch/sparc64/boot >> 70 >> 71 image tftpboot.img vmlinux.aout: vmlinux >> 72 $(Q)$(MAKE) $(build)=$(boot) $(boot)/$@ >> 73 >> 74 archclean: >> 75 $(Q)$(MAKE) $(clean)=$(boot) >> 76 >> 77 define archhelp >> 78 echo '* vmlinux - Standard sparc64 kernel' >> 79 echo ' vmlinux.aout - a.out kernel for sparc64' >> 80 echo ' tftpboot.img - Image prepared for tftp' >> 81 endef 3 82 4 KBUILD_DEFCONFIG = comet_defconfig << 5 << 6 # Do not use GP-relative jumps << 7 KBUILD_CFLAGS += -G0 << 8 LDFLAGS_vmlinux += -G0 << 9 << 10 # Do not use single-byte enums; these will ove << 11 KBUILD_CFLAGS += -fno-short-enums << 12 << 13 # We must use long-calls: << 14 KBUILD_CFLAGS += -mlong-calls << 15 << 16 # Modules must use either long-calls, or use p << 17 # Use long-calls for now, it's easier. And fa << 18 # KBUILD_CFLAGS_MODULE += -fPIC << 19 # KBUILD_LDFLAGS_MODULE += -shared << 20 KBUILD_CFLAGS_MODULE += -mlong-calls << 21 << 22 cflags-y += $(call cc-option,-mv${CONFIG_HEXAG << 23 aflags-y += $(call cc-option,-mv${CONFIG_HEXAG << 24 ldflags-y += $(call cc-option,-mv${CONFIG_HEXA << 25 << 26 KBUILD_CFLAGS += $(cflags-y) << 27 KBUILD_AFLAGS += $(aflags-y) << 28 KBUILD_LDFLAGS += $(ldflags-y) << 29 << 30 # Thread-info register will be r19. This valu << 31 # it is hard-coded in several files. << 32 TIR_NAME := r19 << 33 KBUILD_CFLAGS += -ffixed-$(TIR_NAME) -DTHREADI << 34 KBUILD_AFLAGS += -DTHREADINFO_REG=$(TIR_NAME) <<
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.