summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Config.in37
-rw-r--r--package/Makefile.in7
-rw-r--r--toolchain/uClibc/uclibc.mk14
3 files changed, 51 insertions, 7 deletions
diff --git a/Config.in b/Config.in
index 7d3dde805..4ed8304cf 100644
--- a/Config.in
+++ b/Config.in
@@ -286,7 +286,7 @@ endchoice
choice
prompt "Target Architecture Variant"
- depends BR2_sparc || BR2_sparc64
+ depends BR2_sparc
default BR2_sparc_v7
help
Specific CPU variant to use
@@ -315,6 +315,8 @@ config BR2_sparc_tsc701
bool "tsc701"
config BR2_sparc_v9
bool "v9"
+config BR2_sparc_v9b
+ bool "v9b"
config BR2_sparc_ultrasparc
bool "ultrasparc"
config BR2_sparc_ultrasparc3
@@ -323,6 +325,31 @@ config BR2_sparc_niagara
bool "niagara"
endchoice
+choice
+ prompt "Target Architecture Variant"
+ depends BR2_sparc64
+ default BR2_sparc64_v9
+ help
+ Specific CPU variant to use
+
+config BR2_sparc64_v9
+ bool "v9"
+config BR2_sparc64_v9b
+ bool "v9b"
+config BR2_sparc64_ultrasparc
+ bool "ultrasparc"
+config BR2_sparc64_ultrasparc3
+ bool "ultrasparc3"
+config BR2_sparc64_niagara
+ bool "niagara"
+endchoice
+
+config BR2_SPARC_TYPE
+ string
+ default V7 if BR2_sparc_v7 || BR2_sparc_cypress || BR2_sparc_sparclite || BR2_sparc_f930 || BR2_sparc_f934 || BR2_sparc_sparclite86x || BR2_sparc_sparclet || BR2_sparc_tsc701
+ default V8 if BR2_sparc_v8 || BR2_sparc_supersparc || BR2_sparc_hypersparc
+ default V9 if BR2_sparc_v9 || BR2_sparc_ultrasparc || BR2_sparc_ultrasparc3 || BR2_sparc_niagara || BR2_sparc64_v9 || BR2_sparc64_ultrasparc || BR2_sparc64_ultrasparc3 || BR2_sparc64_niagara
+ default V9B if BR2_sparc_v9b || BR2_sparc64_v9b
choice
prompt "Target Architecture Variant"
@@ -557,10 +584,10 @@ config BR2_GCC_TARGET_TUNE
default sparclite86x if BR2_sparc_sparclite86x
default sparclet if BR2_sparc_sparclet
default tsc701 if BR2_sparc_tsc701
- default v9 if BR2_sparc_v9
- default ultrasparc if BR2_sparc_ultrasparc
- default ultrasparc3 if BR2_sparc_ultrasparc3
- default niagara if BR2_sparc_niagara
+ default v9 if BR2_sparc_v9 || BR2_sparc_v9b || BR2_sparc64_v9 || BR2_sparc64_v9b
+ default ultrasparc if BR2_sparc_ultrasparc || BR2_sparc64_ultrasparc
+ default ultrasparc3 if BR2_sparc_ultrasparc3 || BR2_sparc64_ultrasparc3
+ default niagara if BR2_sparc_niagara || BR2_sparc64_niagara
default g5 if BR2_s390_g5
default g6 if BR2_s390_g6
default z900 if BR2_s390_z900
diff --git a/package/Makefile.in b/package/Makefile.in
index a3d408fd5..df57304d1 100644
--- a/package/Makefile.in
+++ b/package/Makefile.in
@@ -46,6 +46,13 @@ ifeq ($(BR2_SOFT_FLOAT),y)
TARGET_CFLAGS+=-msoft-float
endif
+ifeq ($(BR2_sparc_v9b),y)
+TARGET_CFLAGS+=-mvis
+endif
+ifeq ($(BR2_sparc64_v9b),y)
+TARGET_CFLAGS+=-mvis
+endif
+
TARGET_CXXFLAGS=$(TARGET_CFLAGS)
# else it's an external toolchain
diff --git a/toolchain/uClibc/uclibc.mk b/toolchain/uClibc/uclibc.mk
index 6056d986e..d17a7f7ef 100644
--- a/toolchain/uClibc/uclibc.mk
+++ b/toolchain/uClibc/uclibc.mk
@@ -75,6 +75,7 @@ UCLIBC_TARGET_ENDIAN:=$(shell $(SHELL) -c "echo $(ARCH) | sed \
-e 's/mips/BIG/' \
-e 's/sh[234].*eb/BIG/' \
-e 's/sh[234]/LITTLE/' \
+ -e 's/sparc.*/BIG/' \
")
ifneq ($(UCLIBC_TARGET_ENDIAN),LITTLE)
@@ -88,7 +89,9 @@ else
UCLIBC_NOT_TARGET_ENDIAN:=LITTLE
endif
-ARM_CONFIG:=CONFIG_$(strip $(subst ",, $(BR2_ARM_TYPE)))
+UCLIBC_ARM_TYPE:=CONFIG_$(strip $(subst ",, $(BR2_ARM_TYPE)))
+#"))
+UCLIBC_SPARC_TYPE:=CONFIG_SPARC_$(strip $(subst ",, $(BR2_SPARC_TYPE)))
#"))
$(DL_DIR)/$(UCLIBC_SOURCE):
@@ -136,7 +139,7 @@ $(UCLIBC_DIR)/.oldconfig: $(UCLIBC_DIR)/.unpacked $(UCLIBC_CONFIG_FILE)
ifeq ($(UCLIBC_TARGET_ARCH),arm)
$(SED) 's/^\(CONFIG_[^_]*[_]*ARM[^=]*\)=.*/# \1 is not set/g' \
$(UCLIBC_DIR)/.oldconfig
- $(SED) 's/^.*$(ARM_CONFIG).*/$(ARM_CONFIG)=y/g' $(UCLIBC_DIR)/.oldconfig
+ $(SED) 's/^.*$(UCLIBC_ARM_TYPE).*/$(UCLIBC_ARM_TYPE)=y/g' $(UCLIBC_DIR)/.oldconfig
ifeq ($(BR2_ARM_EABI),y)
/bin/echo "# CONFIG_ARM_OABI is not set" >> $(UCLIBC_DIR)/.oldconfig
/bin/echo "CONFIG_ARM_EABI=y" >> $(UCLIBC_DIR)/.oldconfig
@@ -178,6 +181,13 @@ ifeq ($(BR2_sh4),y)
$(SED) 's,# CONFIG_SH4 is not set,CONFIG_SH4=y,g' $(UCLIBC_DIR)/.oldconfig
endif
endif
+ifeq ($(UCLIBC_TARGET_ARCH),sparc)
+ $(SED) 's/^\(CONFIG_[^_]*[_]*SPARC[^=]*\)=.*/# \1 is not set/g' \
+ $(UCLIBC_DIR)/.oldconfig
+ for i in V7 V8 V9 V9B; do echo "# CONFIG_SPARC_$$i is not set"; done \
+ >> $(UCLIBC_DIR)/.oldconfig
+ $(SED) 's/^.*$(UCLIBC_SPARC_TYPE).*/$(UCLIBC_SPARC_TYPE)=y/g' $(UCLIBC_DIR)/.oldconfig
+endif
ifneq ($(UCLIBC_TARGET_ENDIAN),)
# The above doesn't work for me, so redo
$(SED) 's/.*\(ARCH_$(UCLIBC_NOT_TARGET_ENDIAN)_ENDIAN\).*/# \1 is not set/g' \