sh: Explicit endian selection support.

Previously big endian was simply assumed if little endian was
not set, which led to some cflags ordering issues. There's not
much point to not having a big endian option, so shove one in
a choice and wire it up in the Makefile.

This lets us clean up some of the cflags ordering while we're
at it.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
This commit is contained in:
Paul Mundt
2006-11-21 11:12:19 +09:00
parent 52e27782e1
commit 53644087a6
2 changed files with 21 additions and 14 deletions

View File

@@ -294,12 +294,20 @@ config CF_BASE_ADDR
menu "Processor features" menu "Processor features"
config CPU_LITTLE_ENDIAN choice
bool "Little Endian" prompt "Endianess selection"
default CPU_LITTLE_ENDIAN
help help
Some SuperH machines can be configured for either little or big Some SuperH machines can be configured for either little or big
endian byte order. These modes require different kernels. Say Y if endian byte order. These modes require different kernels.
your machine is little endian, N if it's a big endian machine.
config CPU_LITTLE_ENDIAN
bool "Little Endian"
config CPU_BIG_ENDIAN
bool "Big Endian"
endchoice
config SH_FPU config SH_FPU
bool "FPU support" bool "FPU support"

View File

@@ -13,10 +13,6 @@
# for "archclean" and "archdep" for cleaning up and making dependencies for # for "archclean" and "archdep" for cleaning up and making dependencies for
# this architecture # this architecture
# #
cflags-y := -mb
cflags-$(CONFIG_CPU_LITTLE_ENDIAN) := -ml
isa-y := any isa-y := any
isa-$(CONFIG_SH_DSP) := sh isa-$(CONFIG_SH_DSP) := sh
isa-$(CONFIG_CPU_SH2) := sh2 isa-$(CONFIG_CPU_SH2) := sh2
@@ -38,13 +34,16 @@ isa-y := $(isa-y)-nofpu
endif endif
endif endif
cflags-y += $(call as-option,-Wa$(comma)-isa=$(isa-y),) cflags-$(CONFIG_CPU_SH2) := -m2
cflags-$(CONFIG_CPU_SH3) := -m3
cflags-$(CONFIG_CPU_SH2) += -m2 cflags-$(CONFIG_CPU_SH4) := -m4 \
cflags-$(CONFIG_CPU_SH3) += -m3
cflags-$(CONFIG_CPU_SH4) += -m4 \
$(call cc-option,-mno-implicit-fp,-m4-nofpu) $(call cc-option,-mno-implicit-fp,-m4-nofpu)
cflags-$(CONFIG_CPU_SH4A) += $(call cc-option,-m4a-nofpu,) cflags-$(CONFIG_CPU_SH4A) := -m4a $(call cc-option,-m4a-nofpu,)
cflags-$(CONFIG_CPU_BIG_ENDIAN) += -mb
cflags-$(CONFIG_CPU_LITTLE_ENDIAN) += -ml
cflags-y += $(call as-option,-Wa$(comma)-isa=$(isa-y),)
cflags-$(CONFIG_SH_DSP) += -Wa,-dsp cflags-$(CONFIG_SH_DSP) += -Wa,-dsp
cflags-$(CONFIG_SH_KGDB) += -g cflags-$(CONFIG_SH_KGDB) += -g