Commit 0713b7ff authored by Waldemar Brodkorb's avatar Waldemar Brodkorb Committed by Thomas Petazzoni
Browse files

qemu-sparc: use default gcc

With the kernel patch from:
http://patchwork.ozlabs.org/patch/384285/


There is no problem with latest gcc anymore.

Signed-off-by: default avatarWaldemar Brodkorb <wbx@openadk.org>
Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
parent 40a65d52
Loading
Loading
Loading
Loading
+50 −0
Original line number Diff line number Diff line
This makes memset follow the standard (instead of returning 0 on success). This
is needed when certain versions of gcc optimizes around memset calls and assume
that the address argument is preserved in %o0.

Signed-off-by: Andreas Larsson <andreas@gaisler.com>

diff -Nur linux-3.16.2.orig/arch/sparc/lib/memset.S linux-3.16.2/arch/sparc/lib/memset.S
--- linux-3.16.2.orig/arch/sparc/lib/memset.S	2014-09-06 01:37:11.000000000 +0200
+++ linux-3.16.2/arch/sparc/lib/memset.S	2014-09-18 09:53:49.563047773 +0200
@@ -65,6 +65,8 @@
 	.globl	__memset_start, __memset_end
 __memset_start:
 memset:
+	mov	%o0, %g1
+	mov	1, %g4
 	and	%o1, 0xff, %g3
 	sll	%g3, 8, %g2
 	or	%g3, %g2, %g3
@@ -89,6 +91,7 @@
 	 sub	%o0, %o2, %o0
 
 __bzero:
+	clr	%g4
 	mov	%g0, %g3
 1:
 	cmp	%o1, 7
@@ -151,8 +154,8 @@
 	bne,a	8f
 	 EX(stb	%g3, [%o0], and %o1, 1)
 8:
-	retl
-	 clr	%o0
+	b	0f
+	 nop
 7:
 	be	13b
 	 orcc	%o1, 0, %g0
@@ -164,6 +167,12 @@
 	bne	8b
 	 EX(stb	%g3, [%o0 - 1], add %o1, 1)
 0:
+	andcc	%g4, 1, %g0
+	be	5f
+	 nop
+	retl
+	 mov	%g1, %o0
+5:
 	retl
 	 clr	%o0
 __memset_end:
+2 −0
Original line number Diff line number Diff line
@@ -2,6 +2,8 @@
BR2_sparc=y
BR2_sparc_v8=y

BR2_GLOBAL_PATCH_DIR="board/qemu/sparc-ss10"

# filesystem
BR2_TARGET_ROOTFS_EXT2=y
# BR2_TARGET_ROOTFS_TAR is not set
+3 −4
Original line number Diff line number Diff line
@@ -10,7 +10,6 @@ choice
	prompt "GCC compiler Version"
	default BR2_GCC_VERSION_4_4_X if BR2_sparc_sparchfleon || BR2_sparc_sparchfleonv8 || BR2_sparc_sparcsfleon || BR2_sparc_sparcsfleonv8
	default BR2_GCC_VERSION_4_2_2_AVR32_2_1_5 if BR2_avr32
	default BR2_GCC_VERSION_4_7_X if BR2_sparc
	default BR2_GCC_VERSION_4_8_ARC if BR2_arc
	default BR2_GCC_VERSION_4_9_X if BR2_microblaze || BR2_powerpc64le
	default BR2_GCC_VERSION_4_5_X if BR2_bfin
@@ -47,7 +46,7 @@ choice
		bool "gcc 4.7.x"

	config BR2_GCC_VERSION_4_8_X
		depends on !BR2_microblaze && !BR2_arc && !BR2_avr32 && !BR2_bfin && !BR2_cortex_a12 && !BR2_sparc_sparchfleon && !BR2_sparc_sparchfleonv8 && !BR2_sparc_sparcsfleon && !BR2_sparc_sparcsfleonv8 && !BR2_powerpc64le && !BR2_sparc
		depends on !BR2_microblaze && !BR2_arc && !BR2_avr32 && !BR2_bfin && !BR2_cortex_a12 && !BR2_sparc_sparchfleon && !BR2_sparc_sparchfleonv8 && !BR2_sparc_sparcsfleon && !BR2_sparc_sparcsfleonv8 && !BR2_powerpc64le
		select BR2_GCC_NEEDS_MPC
		select BR2_GCC_SUPPORTS_GRAPHITE
		bool "gcc 4.8.x"
@@ -58,14 +57,14 @@ choice
		bool "gcc 4.8-arc"

	config BR2_GCC_VERSION_4_9_X
		depends on !BR2_arc && !BR2_avr32 && !BR2_bfin && !BR2_sparc_sparchfleon && !BR2_sparc_sparchfleonv8 && !BR2_sparc_sparcsfleon && !BR2_sparc_sparcsfleonv8 && !BR2_sparc
		depends on !BR2_arc && !BR2_avr32 && !BR2_bfin && !BR2_sparc_sparchfleon && !BR2_sparc_sparchfleonv8 && !BR2_sparc_sparcsfleon && !BR2_sparc_sparcsfleonv8
		# PR60102 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60102
		select BR2_GCC_NEEDS_MPC
		select BR2_GCC_SUPPORTS_GRAPHITE
		bool "gcc 4.9.x"

	config BR2_GCC_VERSION_SNAP
		depends on !BR2_arc && !BR2_avr32 && !BR2_sparc_sparchfleon && !BR2_sparc_sparchfleonv8 && !BR2_sparc_sparcsfleon && !BR2_sparc_sparcsfleonv8 && !BR2_sparc
		depends on !BR2_arc && !BR2_avr32 && !BR2_sparc_sparchfleon && !BR2_sparc_sparchfleonv8 && !BR2_sparc_sparcsfleon && !BR2_sparc_sparcsfleonv8
		select BR2_GCC_NEEDS_MPC
		# musl patches only for gcc 4.7+
		depends on !BR2_TOOLCHAIN_BUILDROOT_MUSL