1 # BK Id: %F% %I% %G% %U% %#% !! 1 # $Id: Makefile,v 1.52 2002/02/09 19:49:31 davem Exp $ >> 2 # sparc64/Makefile 2 # 3 # 3 # This file is included by the global makefile !! 4 # Makefile for the architecture dependent flags and dependencies on the 4 # architecture-specific flags and dependencies !! 5 # 64-bit Sparc. 5 # 6 # 6 # This file is subject to the terms and condit !! 7 # Copyright (C) 1996,1998 David S. Miller (davem@caip.rutgers.edu) 7 # License. See the file "COPYING" in the main !! 8 # Copyright (C) 1998 Jakub Jelinek (jj@ultra.linux.cz) 8 # for more details. << 9 # 9 # 10 # Copyright (C) 1994 by Linus Torvalds << 11 # Modifications for the OpenRISC architecture: << 12 # Copyright (C) 2003 Matjaz Breskvar <phoenix@b << 13 # Copyright (C) 2010-2011 Jonas Bonn <jonas@sou << 14 # << 15 # Based on: << 16 # arch/i386/Makefile << 17 << 18 KBUILD_DEFCONFIG := or1ksim_defconfig << 19 << 20 OBJCOPYFLAGS := -O binary -R .note -R .comm << 21 LIBGCC := $(shell $(CC) $(KBUILD_CFLA << 22 10 23 KBUILD_CFLAGS += -pipe -ffixed-r10 -D__linux !! 11 AFLAGS_vmlinux.lds.o += -Usparc 24 KBUILD_CFLAGS += -msfimm -mshftimm << 25 12 26 all: vmlinux.bin !! 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 ) 27 14 28 boot := arch/$(ARCH)/boot !! 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; ) 29 !! 16 NEW_GAS := $(shell if $(LD) -V 2>&1 | grep 'elf64_sparc' > /dev/null; then echo y; else echo n; fi) 30 ifeq ($(CONFIG_OPENRISC_HAVE_INST_MUL),y) !! 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; ) 31 KBUILD_CFLAGS += $(call cc-option,-mha !! 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 32 else 28 else 33 KBUILD_CFLAGS += $(call cc-option,-mso !! 29 AS := $(AS) -64 >> 30 LDFLAGS := -m elf64_sparc 34 endif 31 endif 35 32 36 ifeq ($(CONFIG_OPENRISC_HAVE_INST_DIV),y) !! 33 ifneq ($(UNDECLARED_REGS),y) 37 KBUILD_CFLAGS += $(call cc-option,-mha !! 34 CC_UNDECL = 38 else 35 else 39 KBUILD_CFLAGS += $(call cc-option,-mso !! 36 CC_UNDECL = -Wa,--undeclared-regs >> 37 AS := $(AS) --undeclared-regs 40 endif 38 endif 41 39 42 ifeq ($(CONFIG_OPENRISC_HAVE_INST_CMOV),y) !! 40 ifneq ($(NEW_GCC),y) 43 KBUILD_CFLAGS += $(call cc-option,-mcm !! 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) 44 endif 48 endif 45 49 46 ifeq ($(CONFIG_OPENRISC_HAVE_INST_ROR),y) !! 50 ifeq ($(INLINE_LIMIT),y) 47 KBUILD_CFLAGS += $(call cc-option,-mro !! 51 CFLAGS := $(CFLAGS) -finline-limit=100000 48 endif 52 endif 49 53 50 ifeq ($(CONFIG_OPENRISC_HAVE_INST_RORI),y) !! 54 ifeq ($(CONFIG_MCOUNT),y) 51 KBUILD_CFLAGS += $(call cc-option,-mro !! 55 CFLAGS := $(subst -fomit-frame-pointer,,$(CFLAGS)) >> 56 CFLAGS := $(CFLAGS) -pg 52 endif 57 endif 53 58 54 ifeq ($(CONFIG_OPENRISC_HAVE_INST_SEXT),y) !! 59 head-y := arch/sparc64/kernel/head.o arch/sparc64/kernel/init_task.o 55 KBUILD_CFLAGS += $(call cc-option,-mse !! 60 56 endif !! 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/ 57 65 58 libs-y += $(LIBGCC) !! 66 # FIXME: is drivers- right? >> 67 drivers-$(CONFIG_OPROFILE) += arch/sparc64/oprofile/ 59 68 60 PHONY += vmlinux.bin !! 69 boot := arch/sparc64/boot 61 70 62 vmlinux.bin: vmlinux !! 71 image tftpboot.img vmlinux.aout: vmlinux 63 $(Q)$(MAKE) $(build)=$(boot) $(boot)/$ 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 >> 82
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.