aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sh/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'arch/sh/Makefile')
-rw-r--r--arch/sh/Makefile31
1 files changed, 22 insertions, 9 deletions
diff --git a/arch/sh/Makefile b/arch/sh/Makefile
index 1f409bf81809..c43eb0d7fa3b 100644
--- a/arch/sh/Makefile
+++ b/arch/sh/Makefile
@@ -2,7 +2,7 @@
2# arch/sh/Makefile 2# arch/sh/Makefile
3# 3#
4# Copyright (C) 1999 Kaz Kojima 4# Copyright (C) 1999 Kaz Kojima
5# Copyright (C) 2002, 2003, 2004 Paul Mundt 5# Copyright (C) 2002 - 2008 Paul Mundt
6# Copyright (C) 2002 M. R. Brown 6# Copyright (C) 2002 M. R. Brown
7# 7#
8# This file is subject to the terms and conditions of the GNU General Public 8# This file is subject to the terms and conditions of the GNU General Public
@@ -18,16 +18,12 @@ isa-$(CONFIG_CPU_SH4) := sh4
18isa-$(CONFIG_CPU_SH4A) := sh4a 18isa-$(CONFIG_CPU_SH4A) := sh4a
19isa-$(CONFIG_CPU_SH4AL_DSP) := sh4al 19isa-$(CONFIG_CPU_SH4AL_DSP) := sh4al
20isa-$(CONFIG_CPU_SH5) := shmedia 20isa-$(CONFIG_CPU_SH5) := shmedia
21isa-$(CONFIG_SH_DSP) := $(isa-y)-dsp
22 21
23ifndef CONFIG_SH_DSP 22ifeq ($(CONFIG_SUPERH32),y)
24ifndef CONFIG_SH_FPU 23isa-$(CONFIG_SH_DSP) := $(isa-y)-dsp
25isa-y := $(isa-y)-nofpu 24isa-y := $(isa-y)-up
26endif
27endif 25endif
28 26
29isa-y := $(isa-y)-up
30
31cflags-$(CONFIG_CPU_SH2) := $(call cc-option,-m2,) 27cflags-$(CONFIG_CPU_SH2) := $(call cc-option,-m2,)
32cflags-$(CONFIG_CPU_SH2A) += $(call cc-option,-m2a,) \ 28cflags-$(CONFIG_CPU_SH2A) += $(call cc-option,-m2a,) \
33 $(call cc-option,-m2a-nofpu,) 29 $(call cc-option,-m2a-nofpu,)
@@ -38,6 +34,22 @@ cflags-$(CONFIG_CPU_SH4A) += $(call cc-option,-m4a,) \
38 $(call cc-option,-m4a-nofpu,) 34 $(call cc-option,-m4a-nofpu,)
39cflags-$(CONFIG_CPU_SH5) := $(call cc-option,-m5-32media-nofpu,) 35cflags-$(CONFIG_CPU_SH5) := $(call cc-option,-m5-32media-nofpu,)
40 36
37ifeq ($(cflags-y),)
38#
39# In the case where we are stuck with a compiler that has been uselessly
40# restricted to a particular ISA, a favourite default of newer GCCs when
41# extensive multilib targets are not provided, ensure we get the best fit
42# regarding FP generation. This is necessary to avoid references to FP
43# variants in libgcc where integer variants exist, which otherwise result
44# in link errors. This is intentionally stupid (albeit many orders of
45# magnitude less than GCC's default behaviour), as anything with a large
46# number of multilib targets better have been built correctly for
47# the target in mind.
48#
49cflags-y += $(shell $(CC) $(KBUILD_CFLAGS) -print-multi-lib | \
50 grep nofpu | sed q | sed -e 's/^/-/;s/;.*$$//')
51endif
52
41cflags-$(CONFIG_CPU_BIG_ENDIAN) += -mb 53cflags-$(CONFIG_CPU_BIG_ENDIAN) += -mb
42cflags-$(CONFIG_CPU_LITTLE_ENDIAN) += -ml 54cflags-$(CONFIG_CPU_LITTLE_ENDIAN) += -ml
43 55
@@ -65,7 +77,8 @@ OBJCOPYFLAGS := -O binary -R .note -R .note.gnu.build-id -R .comment \
65 -R .stab -R .stabstr -S 77 -R .stab -R .stabstr -S
66 78
67# Give the various platforms the opportunity to set default image types 79# Give the various platforms the opportunity to set default image types
68defaultimage-$(CONFIG_SUPERH32) := zImage 80defaultimage-$(CONFIG_SUPERH32) := zImage
81defaultimage-$(CONFIG_SH_SH7785LCR) := uImage
69 82
70# Set some sensible Kbuild defaults 83# Set some sensible Kbuild defaults
71KBUILD_DEFCONFIG := shx3_defconfig 84KBUILD_DEFCONFIG := shx3_defconfig