Skip to content

Commit

Permalink
sh: Explicit endian selection support.
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Paul Mundt committed Dec 6, 2006
1 parent 52e2778 commit 5364408
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 14 deletions.
16 changes: 12 additions & 4 deletions arch/sh/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -294,12 +294,20 @@ config CF_BASE_ADDR

menu "Processor features"

config CPU_LITTLE_ENDIAN
bool "Little Endian"
choice
prompt "Endianess selection"
default CPU_LITTLE_ENDIAN
help
Some SuperH machines can be configured for either little or big
endian byte order. These modes require different kernels. Say Y if
your machine is little endian, N if it's a big endian machine.
endian byte order. These modes require different kernels.

config CPU_LITTLE_ENDIAN
bool "Little Endian"

config CPU_BIG_ENDIAN
bool "Big Endian"

endchoice

config SH_FPU
bool "FPU support"
Expand Down
19 changes: 9 additions & 10 deletions arch/sh/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,6 @@
# for "archclean" and "archdep" for cleaning up and making dependencies for
# this architecture
#

cflags-y := -mb
cflags-$(CONFIG_CPU_LITTLE_ENDIAN) := -ml

isa-y := any
isa-$(CONFIG_SH_DSP) := sh
isa-$(CONFIG_CPU_SH2) := sh2
Expand All @@ -38,13 +34,16 @@ isa-y := $(isa-y)-nofpu
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_SH4) += -m4 \
cflags-$(CONFIG_CPU_SH2) := -m2
cflags-$(CONFIG_CPU_SH3) := -m3
cflags-$(CONFIG_CPU_SH4) := -m4 \
$(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_KGDB) += -g
Expand Down

0 comments on commit 5364408

Please sign in to comment.