summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2016-01-30 06:28:37 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-01-31 13:29:48 +0000
commitf4f9f2f4d97e43c579ec1cd97af3766c3f7c7c83 (patch)
tree350a5c1efd20f3e29a0b83c23cd9df0d686519ec
parent691f7e4fa2897168abc4ddd59b1dd0eed045c8d4 (diff)
downloadpoky-f4f9f2f4d97e43c579ec1cd97af3766c3f7c7c83.tar.gz
gcc, qemuppc: Explicitly disable forcing SPE flags
G4 does not have SPE, so we make that explicit in the tune files and since we emulate G4 when building Qemu, we ensure it for qemuppc as well. GCC config for powerpc-linux is made to include SPE by default which is equivalent if the tripet was powerpc-linux*spe, this forces gcc to configure assembler to enable -mspe by default, when we do that then the kernel fails to compile with binutils 2.26, since newer assembler is smart to detect the tlbia instructions are not compatible with SPE and hence the kernel build breaks rightly. We configure the kernel for G4 as well where it enables tlbia instrucitons rightly so because it thinks its being configured for power4. So we keep the options but do not force -mspe down to assembler as default. (From OE-Core rev: 7a51776a830167e43cbd185505f62f328704e271) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/conf/machine/include/tune-ppc7400.inc2
-rw-r--r--meta/conf/machine/qemuppc.conf2
-rw-r--r--meta/recipes-devtools/gcc/gcc-5.3/0030-Enable-SPE-AltiVec-generation-on-powepc-linux-target.patch24
3 files changed, 19 insertions, 9 deletions
diff --git a/meta/conf/machine/include/tune-ppc7400.inc b/meta/conf/machine/include/tune-ppc7400.inc
index 8bfda56c25..425e8bd215 100644
--- a/meta/conf/machine/include/tune-ppc7400.inc
+++ b/meta/conf/machine/include/tune-ppc7400.inc
@@ -3,7 +3,7 @@ DEFAULTTUNE ?= "ppc7400"
3require conf/machine/include/powerpc/arch-powerpc.inc 3require conf/machine/include/powerpc/arch-powerpc.inc
4 4
5TUNEVALID[ppc7400] = "Enable ppc7400 specific processor optimizations" 5TUNEVALID[ppc7400] = "Enable ppc7400 specific processor optimizations"
6TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'ppc7400', ' -mcpu=7400', '', d)}" 6TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'ppc7400', ' -mcpu=7400 -mno-spe', '', d)}"
7 7
8AVAILTUNES += "ppc7400" 8AVAILTUNES += "ppc7400"
9TUNE_FEATURES_tune-ppc7400 = "m32 fpu-hard ppc7400 altivec" 9TUNE_FEATURES_tune-ppc7400 = "m32 fpu-hard ppc7400 altivec"
diff --git a/meta/conf/machine/qemuppc.conf b/meta/conf/machine/qemuppc.conf
index 85cbbf798d..bf0038ddba 100644
--- a/meta/conf/machine/qemuppc.conf
+++ b/meta/conf/machine/qemuppc.conf
@@ -5,6 +5,8 @@
5require conf/machine/include/qemu.inc 5require conf/machine/include/qemu.inc
6require conf/machine/include/tune-ppc7400.inc 6require conf/machine/include/tune-ppc7400.inc
7 7
8TARGET_CC_KERNEL_ARCH = "-mno-spe"
9
8KERNEL_IMAGETYPE = "vmlinux" 10KERNEL_IMAGETYPE = "vmlinux"
9 11
10SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1" 12SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1"
diff --git a/meta/recipes-devtools/gcc/gcc-5.3/0030-Enable-SPE-AltiVec-generation-on-powepc-linux-target.patch b/meta/recipes-devtools/gcc/gcc-5.3/0030-Enable-SPE-AltiVec-generation-on-powepc-linux-target.patch
index e7ca360ae5..57051871b3 100644
--- a/meta/recipes-devtools/gcc/gcc-5.3/0030-Enable-SPE-AltiVec-generation-on-powepc-linux-target.patch
+++ b/meta/recipes-devtools/gcc/gcc-5.3/0030-Enable-SPE-AltiVec-generation-on-powepc-linux-target.patch
@@ -19,11 +19,11 @@ Signed-off-by: Alexandru-Cezar Sardan <alexandru.sardan@freescale.com>
19 gcc/config.gcc | 9 ++++++++- 19 gcc/config.gcc | 9 ++++++++-
20 1 file changed, 8 insertions(+), 1 deletion(-) 20 1 file changed, 8 insertions(+), 1 deletion(-)
21 21
22diff --git a/gcc/config.gcc b/gcc/config.gcc 22Index: gcc-5.3.0/gcc/config.gcc
23index dd0739d..3825bd5 100644 23===================================================================
24--- a/gcc/config.gcc 24--- gcc-5.3.0.orig/gcc/config.gcc
25+++ b/gcc/config.gcc 25+++ gcc-5.3.0/gcc/config.gcc
26@@ -2343,7 +2343,14 @@ powerpc-*-rtems*) 26@@ -2346,7 +2346,14 @@ powerpc-*-rtems*)
27 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-rtems rs6000/t-ppccomm" 27 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-rtems rs6000/t-ppccomm"
28 ;; 28 ;;
29 powerpc*-*-linux*) 29 powerpc*-*-linux*)
@@ -39,6 +39,14 @@ index dd0739d..3825bd5 100644
39 extra_options="${extra_options} rs6000/sysv4.opt" 39 extra_options="${extra_options} rs6000/sysv4.opt"
40 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm" 40 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm"
41 extra_objs="$extra_objs rs6000-linux.o" 41 extra_objs="$extra_objs rs6000-linux.o"
42-- 42Index: gcc-5.3.0/gcc/config/rs6000/linuxspe.h
432.6.3 43===================================================================
44 44--- gcc-5.3.0.orig/gcc/config/rs6000/linuxspe.h
45+++ gcc-5.3.0/gcc/config/rs6000/linuxspe.h
46@@ -27,6 +27,3 @@
47 #undef TARGET_DEFAULT
48 #define TARGET_DEFAULT MASK_STRICT_ALIGN
49 #endif
50-
51-#undef ASM_DEFAULT_SPEC
52-#define ASM_DEFAULT_SPEC "-mppc -mspe -me500"