]> code.ossystems Code Review - openembedded-core.git/commitdiff
gcc: upgrade gcc for powerpc to version 4.5.0
authorDongxiao Xu <dongxiao.xu@intel.com>
Thu, 16 Sep 2010 05:51:09 +0000 (13:51 +0800)
committerSaul Wold <Saul.Wold@intel.com>
Fri, 17 Sep 2010 18:41:58 +0000 (11:41 -0700)
Fix one parameter order issue for base_contains function,
which impacts glibc build under new gcc.

Add new judge code to determine whether <altivec.h> is needed.
This fixes the mpeg2dec build failure under new gcc.

Use O2 as the optimization flag to tinylogin as it will meet
segfault if compiled by gcc-4.5.0 when enable both frename-registers
and Os options. Use O2 instead.

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
27 files changed:
meta/conf/distro/include/poky-default.inc
meta/recipes-core/tinylogin/tinylogin-1.4/use_O2_option.patch [new file with mode: 0644]
meta/recipes-core/tinylogin/tinylogin_1.4.bb
meta/recipes-devtools/gcc/gcc-configure-common.inc
meta/recipes-devtools/gcc/gcc-cross-canadian_4.3.3.bb
meta/recipes-devtools/gcc/gcc-cross-canadian_4.5.0.bb
meta/recipes-devtools/gcc/gcc-cross-initial_4.3.3.bb
meta/recipes-devtools/gcc/gcc-cross-initial_4.5.0.bb
meta/recipes-devtools/gcc/gcc-cross-intermediate_4.3.3.bb
meta/recipes-devtools/gcc/gcc-cross-intermediate_4.5.0.bb
meta/recipes-devtools/gcc/gcc-cross-kernel-3.4.4_csl-arm-2005q3.bb
meta/recipes-devtools/gcc/gcc-cross_4.3.3.bb
meta/recipes-devtools/gcc/gcc-cross_4.5.0.bb
meta/recipes-devtools/gcc/gcc-cross_csl-arm-2008q1.bb
meta/recipes-devtools/gcc/gcc-crosssdk-initial_4.3.3.bb
meta/recipes-devtools/gcc/gcc-crosssdk-initial_4.5.0.bb
meta/recipes-devtools/gcc/gcc-crosssdk-intermediate_4.3.3.bb
meta/recipes-devtools/gcc/gcc-crosssdk-intermediate_4.5.0.bb
meta/recipes-devtools/gcc/gcc-crosssdk_4.3.3.bb
meta/recipes-devtools/gcc/gcc-crosssdk_4.5.0.bb
meta/recipes-devtools/gcc/gcc-runtime_4.3.3.bb
meta/recipes-devtools/gcc/gcc-runtime_4.5.0.bb
meta/recipes-devtools/gcc/gcc_4.3.3.bb
meta/recipes-devtools/gcc/gcc_4.5.0.bb
meta/recipes-devtools/gcc/gcc_csl-arm-2008q1.bb
meta/recipes-multimedia/mpeg2dec/mpeg2dec-0.4.1/altivec_h_needed.patch [new file with mode: 0644]
meta/recipes-multimedia/mpeg2dec/mpeg2dec_0.4.1.bb

index 42dd67c68235e9eefc19a4ccee7de50c7c595f93..0dabeec27cc30a5382b753e17c1b42262a0aa570 100644 (file)
@@ -16,7 +16,6 @@ PREFERRED_PROVIDER_virtual/${SDK_PREFIX}libc-for-gcc-nativesdk ?= "${POKYLIBC}-n
 
 
 GCCVERSION ?= "4.5.0"
-GCCVERSION_powerpc ?= "4.3.3"
 GCCVERSION_mips ?= "4.3.3"
 SDKGCCVERSION ?= "4.5.0"
 BINUVERSION ?= "2.20.1"
diff --git a/meta/recipes-core/tinylogin/tinylogin-1.4/use_O2_option.patch b/meta/recipes-core/tinylogin/tinylogin-1.4/use_O2_option.patch
new file mode 100644 (file)
index 0000000..dc5bc3f
--- /dev/null
@@ -0,0 +1,19 @@
+tinylogin will meet segment fault if compiled by gcc-4.5.0 when enable both
+frename-registers and Os options. Use O2 instead.
+
+Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
+
+diff -ruN tinylogin-1.4-orig/Makefile tinylogin-1.4/Makefile
+--- tinylogin-1.4-orig/Makefile        2010-09-16 13:02:06.302192295 +0800
++++ tinylogin-1.4/Makefile     2010-09-16 13:02:34.634167846 +0800
+@@ -97,9 +97,7 @@
+ #--------------------------------------------------------
+-# use '-Os' optimization if available, else use -O2
+-OPTIMIZATION = $(shell if $(CC) -Os -S -o /dev/null -xc /dev/null >/dev/null 2>&1; \
+-    then echo "-Os"; else echo "-O2" ; fi)
++OPTIMIZATION = -O2
+ WARNINGS = -Wall
index ad254bff6a8df5076936728a19bae243f7b46d80..3daeac004a147b652d2ab9f1de63244cc418729f 100644 (file)
@@ -5,13 +5,14 @@ changing passwords, and otherwise maintaining users \
 and groups on an embedded system."
 HOMEPAGE = "http://tinylogin.busybox.net/"
 LICENSE = "GPL"
-PR = "r4"
+PR = "r5"
 
 SRC_URI = "http://tinylogin.busybox.net/downloads/tinylogin-${PV}.tar.bz2 \
        file://cvs-20040608.patch;patch=1;pnum=1 \
        file://add-system.patch;patch=1;pnum=1 \
        file://adduser-empty_pwd.patch;patch=1 \
-       file://remove-index.patch;patch=1"
+       file://remove-index.patch;patch=1 \
+       file://use_O2_option.patch"
 
 EXTRA_OEMAKE = ""
 
index 5a55025ac570ad2c4840d2a8cea321c72e2c1eeb..d86cb9a0b6f2faa01b88c27d033de8974ba26a36 100644 (file)
@@ -17,7 +17,8 @@ LANGUAGES ?= "c,c++${FORTRAN}${JAVA}"
 # hidden symbols in libgcc.a which linker complains
 # when linking shared libraries further in the build like (gnutls)
 
-OPTSPACE = "${@base_contains('TARGET_ARCH', ['powerpc', 'arm'], '', '--enable-target-optspace',d)}"
+SPECIAL_ARCH_LIST = "powerpc arm"
+OPTSPACE = ${@base_contains("SPECIAL_ARCH_LIST", "${TARGET_ARCH}", "", "--enable-target-optspace",d)}
 
 EXTRA_OECONF_BASE ?= ""
 EXTRA_OECONF_PATHS ?= ""
index 981452b7a72e0f0d8fa06613981b2229cf4550f9..87cd27a95c39e88aeedb0d63baed8b754c94b984 100644 (file)
@@ -5,7 +5,7 @@ require gcc-cross-canadian.inc
 require gcc-configure-sdk.inc
 require gcc-package-sdk.inc
 
-PR = "r17"
+PR = "r18"
 
 DEPENDS += "gmp-nativesdk mpfr-nativesdk"
 RDEPENDS_${PN} += "mpfr-nativesdk"
index dd194121394e0fb572ed9bc336560128d47d8dbd..e1a8e970d0c9a6d66ec9a01efa0d2301ddc78a88 100644 (file)
@@ -5,7 +5,7 @@ require gcc-cross-canadian.inc
 require gcc-configure-sdk.inc
 require gcc-package-sdk.inc
 
-PR = "r6"
+PR = "r7"
 
 DEPENDS += "gmp-nativesdk mpfr-nativesdk libmpc-nativesdk elfutils-nativesdk"
 RDEPENDS_${PN} += "mpfr-nativesdk libmpc-nativesdk elfutils-nativesdk"
index b2c257d9d40e4e731f5655b672ef4fe41c650dde..38e0964fedc8b8c50ad63849863e8ff216edea44 100644 (file)
@@ -1,5 +1,5 @@
 require gcc-cross_${PV}.bb
 require gcc-cross-initial.inc
 
-PR = "r2"
+PR = "r3"
 
index 7ed31956c82f5f423737d399007c5cea5276c3e1..e05fb346e8e53ce4d76acd3e9ac647e091494a89 100644 (file)
@@ -1,5 +1,5 @@
 require gcc-cross_${PV}.bb
 require gcc-cross-initial.inc
 
-PR = "r7"
+PR = "r8"
 
index 10681dad4b5d0961405ef999dd3f73b9b3c52d11..e65d5df671789da6dd819783b32ac602bba79996 100644 (file)
@@ -1,4 +1,4 @@
 require gcc-cross_${PV}.bb
 require gcc-cross-intermediate.inc
-PR = "r2"
+PR = "r3"
 
index 702229d2fdaace40a26271390abe2bc75a1c697d..e0147743ee36938e48fae3627b32eb5774f202cb 100644 (file)
@@ -1,4 +1,4 @@
 require gcc-cross_${PV}.bb
 require gcc-cross-intermediate.inc
-PR = "r7"
+PR = "r8"
 
index bee82d045fa74e575ef8c42bd0f21b8dfa0081f1..675d3e44af9668618c9db3cf422a9f8d57dbf138 100644 (file)
@@ -9,7 +9,7 @@ require gcc-cross-kernel.inc
 
 DEFAULT_PREFERENCE = "-1"
 
-PR = "r2"
+PR = "r3"
 
 SRC_URI += "file://gcc-3.4.4-makefile-fix.patch;patch=1"
 
index 36f91d0221874483540a6da6f27dfd3505457999..d22fb9ed22a4b034bb0d49c27a572dc03c57f1d8 100644 (file)
@@ -1,4 +1,4 @@
-PR = "r15"
+PR = "r16"
 
 require gcc-${PV}.inc
 require gcc-cross4.inc
index 2a0772841d962a1512829b9e823834c87ca783eb..2246663594b3745cf94e01ba72dabc31333f0126 100644 (file)
@@ -1,4 +1,4 @@
-PR = "r7"
+PR = "r8"
 
 require gcc-${PV}.inc
 require gcc-cross4.inc
index 2fe7704adfe65235717562ca623cd21f088b34ab..7cef7e7a3ac58cd967c37f08e43a1e4a92190fa6 100644 (file)
@@ -1,4 +1,4 @@
-PR = "r3"
+PR = "r4"
 
 require gcc-csl-arm-2008q1.inc
 require gcc-cross4.inc
index e804b4b01666b661a8e44fa941e81db7463f32a6..44dd50dcb856b53ce66e2b6004f884457aa8d6ee 100644 (file)
@@ -1,3 +1,3 @@
 require gcc-cross-initial_${PV}.bb
 require gcc-crosssdk-initial.inc
-PR = "r3"
+PR = "r4"
index 9ee18ecfe90f7e0e7c443f40f4f288180cb9fc1c..9daa2925b1c9117c1cafa06ba5530549c7496aa4 100644 (file)
@@ -1,4 +1,4 @@
 require gcc-cross-initial_${PV}.bb
 require gcc-crosssdk-initial.inc
 
-PR = "r7"
+PR = "r8"
index 5f01473addf86fb85a211c43e1abd4d2a3d31877..ae439622acb6cc19f417a91213eb7c03e9a12576 100644 (file)
@@ -1,3 +1,3 @@
 require gcc-cross-intermediate_${PV}.bb
 require gcc-crosssdk-intermediate.inc
-PR = "r6"
+PR = "r7"
index 28dbbab9f44966aed9f279de7b12b663b38f3222..eeb2d87d541415244da1a5172d0637ec1aadd809 100644 (file)
@@ -1,4 +1,4 @@
 require gcc-cross-intermediate_${PV}.bb
 require gcc-crosssdk-intermediate.inc
 
-PR = "r7"
+PR = "r8"
index 92a3f11388fffc6e23f95d4ddad99bef633c200e..ffbd6715982eb8894281de12aa490d9a923d51ae 100644 (file)
@@ -1,3 +1,3 @@
 require gcc-cross_${PV}.bb
 require gcc-crosssdk.inc
-PR="r1"
+PR="r2"
index 31ebe8097883d5562b3a51db853c35425ae81213..ffb0739c5de44aff35e7162af2f3d8d76857114c 100644 (file)
@@ -1,4 +1,4 @@
 require gcc-cross_${PV}.bb
 require gcc-crosssdk.inc
 
-PR = "r7"
+PR = "r8"
index 543bf24b7759533e6d4445f3f45fdbf2d2e8844d..8c7c123f2ec873f2d1ff5d09993c7ff664da2d52 100644 (file)
@@ -1,4 +1,4 @@
-PR = "r15"
+PR = "r16"
 
 require gcc-${PV}.inc
 require gcc-configure-runtime.inc
index 28bae50197ae40a26a2feec124322a3e617e5ef3..2231c4269e59cb623c4d660b1a5f77b932a230dd 100644 (file)
@@ -1,4 +1,4 @@
-PR = "r6"
+PR = "r7"
 
 require gcc-${PV}.inc
 require gcc-configure-runtime.inc
index a2ae0c0e92b355ab03bf5bd3f92dfd054009531a..ca22e0f69cd5e7074e27dac72dc16aff7bec50f3 100644 (file)
@@ -1,4 +1,4 @@
-PR = "r8"
+PR = "r9"
 
 require gcc-${PV}.inc
 require gcc-configure-target.inc
index e133c5bac700a86e54a180284db5807624ab6819..45bbb01e4029befbd1cb0b3daab404a852da057f 100644 (file)
@@ -1,4 +1,4 @@
-PR = "r6"
+PR = "r7"
 
 require gcc-${PV}.inc
 require gcc-configure-target.inc
index 832167ca4e8c00469c2e59219a7b5fc02faee62b..4999c6a53ece46065a2ee996b39449baaa6d279d 100644 (file)
@@ -1,4 +1,4 @@
-PR = "r1"
+PR = "r2"
 
 require gcc-${PV}.inc
 require gcc-configure-target.inc
diff --git a/meta/recipes-multimedia/mpeg2dec/mpeg2dec-0.4.1/altivec_h_needed.patch b/meta/recipes-multimedia/mpeg2dec/mpeg2dec-0.4.1/altivec_h_needed.patch
new file mode 100644 (file)
index 0000000..ecb3a9d
--- /dev/null
@@ -0,0 +1,41 @@
+Add new method to judge whether <altivec.h> is needed
+
+The original logic will use "typedef vector int t;" to judge
+whether <altivec.h> is needed. altivec.h contains the following
+statement:
+
+ #if !defined(__APPLE_ALTIVEC__)
+ #define vector __vector
+ #define pixel __pixel
+ #define bool 
+ #endif
+
+In gcc-4.3.3, __APPLE_ALTIVEC__ is not defined by compiler, neither
+as vector, pixel, and bool. In order to make "typedef vector int t;"
+pass the compilation, we need to include altivec.h.
+
+However in gcc-4.5.0, __APPLE_ALTIVEC__ is defined by compiler,
+so as vector, pixel, and bool. We could not judge whether
+altivec.h is needed by "typedef vector int t;".
+Here we include another statement "int tmp = __CR6_EQ;", in
+which __CR6_EQ is defined in altivec.h.
+
+Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
+
+diff -ruN mpeg2dec-0.4.1-orig/configure.in mpeg2dec-0.4.1/configure.in
+--- mpeg2dec-0.4.1-orig/configure.in   2010-09-14 20:55:42.399687663 +0800
++++ mpeg2dec-0.4.1/configure.in        2010-09-14 20:56:43.403204648 +0800
+@@ -75,11 +75,11 @@
+                CFLAGS="$OPT_CFLAGS $TRY_CFLAGS $CFLAGS"
+                AC_MSG_CHECKING([if <altivec.h> is needed])
+                AC_TRY_COMPILE([],
+-                  [typedef vector int t;
++                  [typedef vector int t; int tmp = __CR6_EQ;
+                    vec_ld(0, (unsigned char *)0);],
+                   [have_altivec=yes; AC_MSG_RESULT(no)],
+                   [AC_TRY_COMPILE([#include <altivec.h>],
+-                      [typedef vector int t; vec_ld(0, (unsigned char *)0);],
++                      [typedef vector int t; int tmp = __CR6_EQ; vec_ld(0, (unsigned char *)0);],
+                       [AC_DEFINE([HAVE_ALTIVEC_H],,
+                           [Define to 1 if you have the <altivec.h> header.])
+                        have_altivec=yes; AC_MSG_RESULT(yes)],
index a769e5a70e17172765c22f84edf12673060c3f22..4aa6f8cc669462c2d6d74f70407afad3d25abd57 100644 (file)
@@ -8,9 +8,10 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
 
 DEPENDS = "virtual/libx11"
 
-PR = "r0"
+PR = "r1"
 
-SRC_URI = "http://libmpeg2.sourceforge.net/files/mpeg2dec-${PV}.tar.gz"
+SRC_URI = "http://libmpeg2.sourceforge.net/files/mpeg2dec-${PV}.tar.gz \
+           file://altivec_h_needed.patch"
 
 inherit autotools pkgconfig