Skip to contentSkip to conversation

toolchain: add sparc64 architecture support

PATCH New Waldemar Brodkorb 3 participants 4 messages Aug 29, 2015 – Oct 10, 2015

lore
Share & tools
lore
#0 lore raw

PATCH v2 1/2 toolchain: add sparc64 architecture support

Introduce sparc64 architecture to buildroot.

---
- Changes v1 -> v2:
only allow useful architecture variants suggested by Thomas Petazzoni

---
 arch/Config.in                          |   12 +++++++++++-
 arch/Config.in.sparc                    |   12 ++++++++++--
 toolchain/toolchain-buildroot/Config.in |    3 ++-
 3 files changed, 23 insertions(+), 4 deletions(-)
arch/Config.in +11 -1
index 875f412..4cdd54e 100644
@@ -217,6 +217,16 @@ config BR2_sparc
 	  http://www.oracle.com/sun
 	  http://en.wikipedia.org/wiki/Sparc
 
+config BR2_sparc64
+	bool "SPARC64"
+	select BR2_ARCH_IS_64
+	select BR2_ARCH_HAS_MMU_MANDATORY
+	help
+	  SPARC (from Scalable Processor Architecture) is a RISC instruction
+	  set architecture (ISA) developed by Sun Microsystems.
+	  http://www.oracle.com/sun
+	  http://en.wikipedia.org/wiki/Sparc
+
 config BR2_x86_64
 	bool "x86_64"
 	select BR2_ARCH_IS_64
@@ -388,7 +398,7 @@ if BR2_sh || BR2_sh64
 source "arch/Config.in.sh"
 endif
 
-if BR2_sparc
+if BR2_sparc || BR2_sparc64
 source "arch/Config.in.sparc"
 endif
 
arch/Config.in.sparc +10 -2
index cc10e8d..307540f 100644
@@ -1,18 +1,25 @@
 choice
 	prompt "Target Architecture Variant"
-	depends on BR2_sparc
-	default BR2_sparc_v8
+	depends on BR2_sparc || BR2_sparc64
+	default BR2_sparc_v8 if BR2_sparc
+	default BR2_sparc_v9 if BR2_sparc64
 	help
 	  Specific CPU variant to use
 
 config BR2_sparc_v8
 	bool "v8"
+	depends on BR2_sparc
 config BR2_sparc_leon3
 	bool "leon3"
+	depends on BR2_sparc
+config BR2_sparc_v9
+	bool "v9"
+	depends on BR2_sparc64
 endchoice
 
 config BR2_ARCH
 	default "sparc"	if BR2_sparc
+	default "sparc64" if BR2_sparc64
 
 config BR2_ENDIAN
 	default "BIG"
@@ -20,3 +27,4 @@ config BR2_ENDIAN
 config BR2_GCC_TARGET_CPU
 	default "leon3"		if BR2_sparc_leon3
 	default "v8"		if BR2_sparc_v8
+	default "ultrasparc"	if BR2_sparc_v9
toolchain/toolchain-buildroot/Config.in +2 -1
index 13e2b15..56c01c8 100644
@@ -67,7 +67,8 @@ config BR2_TOOLCHAIN_BUILDROOT_GLIBC
 		   BR2_mipsel      || BR2_mips64     || BR2_mips64el|| \
 		   BR2_powerpc     || BR2_powerpc64  || BR2_powerpc64le || \
 		   BR2_sh          || BR2_sh64       || BR2_sparc   || \
-		   BR2_x86_64      || BR2_microblaze || BR2_nios2
+		   BR2_sparc64     || BR2_x86_64     || BR2_microblaze || \
+		   BR2_nios2
 	depends on BR2_USE_MMU
 	depends on !BR2_STATIC_LIBS
 	depends on !BR2_powerpc_SPE
Signature · 1 line
1.7.10.4
#2 lore raw

PATCH v2 1/2 toolchain: add sparc64 architecture support

In reply to Waldemar Brodkorb

Dear Waldemar Brodkorb,

Quoted 11 lines · Waldemar Brodkorb

Introduce sparc64 architecture to buildroot.

---
- Changes v1 -> v2:
only allow useful architecture variants suggested by Thomas Petazzoni

---
 arch/Config.in                          |   12 +++++++++++-
 arch/Config.in.sparc                    |   12 ++++++++++--
 toolchain/toolchain-buildroot/Config.in |    3 ++-
 3 files changed, 23 insertions(+), 4 deletions(-)

Both patches applied, thanks.

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#3 lore raw

PATCH v2 1/2 toolchain: add sparc64 architecture support

In reply to Waldemar Brodkorb

Waldemar,

Quoted 11 lines · Waldemar Brodkorb

Introduce sparc64 architecture to buildroot.

---
- Changes v1 -> v2:
only allow useful architecture variants suggested by Thomas Petazzoni

---
 arch/Config.in                          |   12 +++++++++++-
 arch/Config.in.sparc                    |   12 ++++++++++--
 toolchain/toolchain-buildroot/Config.in |    3 ++-
 3 files changed, 23 insertions(+), 4 deletions(-)

I tried to build a toolchain with this, and it fails for me, during the host-gcc-final build step, with the following error message:

In file included from ../../../../libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc:17:0:
../../../../libsanitizer/sanitizer_common/sanitizer_internal_defs.h:257:72: error: size of array 'assertion_failed__869' is negative

     typedef char IMPL_PASTE(assertion_failed_##_, line)[2*(int)(pred)-1]

I have built the following configuration:

BR2_sparc64=y
BR2_KERNEL_HEADERS_4_1=y
BR2_TOOLCHAIN_BUILDROOT_CXX=y
BR2_INIT_NONE=y
# BR2_PACKAGE_BUSYBOX is not set
# BR2_TARGET_ROOTFS_TAR is not set

Could you have a look?

Thanks!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com