diff options
Diffstat (limited to 'arch/sh/Makefile')
-rw-r--r-- | arch/sh/Makefile | 31 |
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 | |||
18 | isa-$(CONFIG_CPU_SH4A) := sh4a | 18 | isa-$(CONFIG_CPU_SH4A) := sh4a |
19 | isa-$(CONFIG_CPU_SH4AL_DSP) := sh4al | 19 | isa-$(CONFIG_CPU_SH4AL_DSP) := sh4al |
20 | isa-$(CONFIG_CPU_SH5) := shmedia | 20 | isa-$(CONFIG_CPU_SH5) := shmedia |
21 | isa-$(CONFIG_SH_DSP) := $(isa-y)-dsp | ||
22 | 21 | ||
23 | ifndef CONFIG_SH_DSP | 22 | ifeq ($(CONFIG_SUPERH32),y) |
24 | ifndef CONFIG_SH_FPU | 23 | isa-$(CONFIG_SH_DSP) := $(isa-y)-dsp |
25 | isa-y := $(isa-y)-nofpu | 24 | isa-y := $(isa-y)-up |
26 | endif | ||
27 | endif | 25 | endif |
28 | 26 | ||
29 | isa-y := $(isa-y)-up | ||
30 | |||
31 | cflags-$(CONFIG_CPU_SH2) := $(call cc-option,-m2,) | 27 | cflags-$(CONFIG_CPU_SH2) := $(call cc-option,-m2,) |
32 | cflags-$(CONFIG_CPU_SH2A) += $(call cc-option,-m2a,) \ | 28 | cflags-$(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,) |
39 | cflags-$(CONFIG_CPU_SH5) := $(call cc-option,-m5-32media-nofpu,) | 35 | cflags-$(CONFIG_CPU_SH5) := $(call cc-option,-m5-32media-nofpu,) |
40 | 36 | ||
37 | ifeq ($(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 | # | ||
49 | cflags-y += $(shell $(CC) $(KBUILD_CFLAGS) -print-multi-lib | \ | ||
50 | grep nofpu | sed q | sed -e 's/^/-/;s/;.*$$//') | ||
51 | endif | ||
52 | |||
41 | cflags-$(CONFIG_CPU_BIG_ENDIAN) += -mb | 53 | cflags-$(CONFIG_CPU_BIG_ENDIAN) += -mb |
42 | cflags-$(CONFIG_CPU_LITTLE_ENDIAN) += -ml | 54 | cflags-$(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 |
68 | defaultimage-$(CONFIG_SUPERH32) := zImage | 80 | defaultimage-$(CONFIG_SUPERH32) := zImage |
81 | defaultimage-$(CONFIG_SH_SH7785LCR) := uImage | ||
69 | 82 | ||
70 | # Set some sensible Kbuild defaults | 83 | # Set some sensible Kbuild defaults |
71 | KBUILD_DEFCONFIG := shx3_defconfig | 84 | KBUILD_DEFCONFIG := shx3_defconfig |