kbuild: enable 'make CFLAGS=...' to add additional options to CC
[deliverable/linux.git] / arch / sh / Makefile
index cb6661c5efe4e5937664957324f76f322643e352..cd8a411acc95b302c4c41f714cccad7e01577cb0 100644 (file)
@@ -34,6 +34,8 @@ isa-y                 := $(isa-y)-nofpu
 endif
 endif
 
+isa-y                  := $(isa-y)-up
+
 cflags-$(CONFIG_CPU_SH2)               := $(call cc-option,-m2,)
 cflags-$(CONFIG_CPU_SH2A)              += $(call cc-option,-m2a,) \
                                           $(call cc-option,-m2a-nofpu,)
@@ -46,7 +48,20 @@ cflags-$(CONFIG_CPU_SH4A)            += $(call cc-option,-m4a,) \
 cflags-$(CONFIG_CPU_BIG_ENDIAN)                += -mb
 cflags-$(CONFIG_CPU_LITTLE_ENDIAN)     += -ml
 
-cflags-y       += $(call as-option,-Wa$(comma)-isa=$(isa-y),) -ffreestanding
+#
+# -Wa,-isa= tuning implies -Wa,-dsp for the versions of binutils that
+# support it, while -Wa,-dsp by itself limits the range of usable opcodes
+# on certain CPU subtypes. Try the ISA variant first, and if that fails,
+# fall back on -Wa,-dsp for the old binutils versions. Even without DSP
+# opcodes, we always want the best ISA tuning the version of binutils
+# will provide.
+#
+isaflags-y     := $(call as-option,-Wa$(comma)-isa=$(isa-y),)
+
+isaflags-$(CONFIG_SH_DSP)              := \
+       $(call as-option,-Wa$(comma)-isa=$(isa-y),-Wa$(comma)-dsp)
+
+cflags-y       += $(isaflags-y) -ffreestanding
 
 cflags-$(CONFIG_MORE_COMPILE_OPTIONS)  += \
        $(shell echo $(CONFIG_COMPILE_OPTIONS) | sed -e 's/"//g')
@@ -76,12 +91,12 @@ LDFLAGS_vmlinux             += --defsym 'jiffies=jiffies_64+4'
 LDFLAGS                        += -EB
 endif
 
-CFLAGS         += -pipe $(cflags-y)
+KBUILD_CFLAGS          += -pipe $(cflags-y)
 AFLAGS         += $(cflags-y)
 
 head-y := arch/sh/kernel/head.o arch/sh/kernel/init_task.o
 
-LIBGCC := $(shell $(CC) $(CFLAGS) -print-libgcc-file-name)
+LIBGCC := $(shell $(CC) $(KBUILD_CFLAGS) -print-libgcc-file-name)
 
 core-y                         += arch/sh/kernel/ arch/sh/mm/
 core-$(CONFIG_SH_FPU_EMU)      += arch/sh/math-emu/
@@ -91,7 +106,6 @@ machdir-$(CONFIG_SH_SOLUTION_ENGINE)         += se/770x
 machdir-$(CONFIG_SH_7722_SOLUTION_ENGINE)      += se/7722
 machdir-$(CONFIG_SH_7751_SOLUTION_ENGINE)      += se/7751
 machdir-$(CONFIG_SH_7780_SOLUTION_ENGINE)      += se/7780
-machdir-$(CONFIG_SH_7300_SOLUTION_ENGINE)      += se/7300
 machdir-$(CONFIG_SH_7343_SOLUTION_ENGINE)      += se/7343
 machdir-$(CONFIG_SH_HP6XX)                     += hp6xx
 machdir-$(CONFIG_SH_DREAMCAST)                 += dreamcast
This page took 0.027797 seconds and 5 git commands to generate.