From 0ff070bbf1575be62691eea7b9fb3ca74f2ab373 Mon Sep 17 00:00:00 2001 From: Dongxiao Xu Date: Thu, 16 Sep 2010 13:51:09 +0800 Subject: gcc: upgrade gcc for powerpc to version 4.5.0 Fix one parameter order issue for base_contains function, which impacts glibc build under new gcc. Add new judge code to determine whether 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 --- meta/conf/distro/include/poky-default.inc | 1 - .../tinylogin/tinylogin-1.4/use_O2_option.patch | 19 ++++++++++ meta/recipes-core/tinylogin/tinylogin_1.4.bb | 5 +-- meta/recipes-devtools/gcc/gcc-configure-common.inc | 3 +- .../gcc/gcc-cross-canadian_4.3.3.bb | 2 +- .../gcc/gcc-cross-canadian_4.5.0.bb | 2 +- .../gcc/gcc-cross-initial_4.3.3.bb | 2 +- .../gcc/gcc-cross-initial_4.5.0.bb | 2 +- .../gcc/gcc-cross-intermediate_4.3.3.bb | 2 +- .../gcc/gcc-cross-intermediate_4.5.0.bb | 2 +- .../gcc/gcc-cross-kernel-3.4.4_csl-arm-2005q3.bb | 2 +- meta/recipes-devtools/gcc/gcc-cross_4.3.3.bb | 2 +- meta/recipes-devtools/gcc/gcc-cross_4.5.0.bb | 2 +- .../gcc/gcc-cross_csl-arm-2008q1.bb | 2 +- .../gcc/gcc-crosssdk-initial_4.3.3.bb | 2 +- .../gcc/gcc-crosssdk-initial_4.5.0.bb | 2 +- .../gcc/gcc-crosssdk-intermediate_4.3.3.bb | 2 +- .../gcc/gcc-crosssdk-intermediate_4.5.0.bb | 2 +- meta/recipes-devtools/gcc/gcc-crosssdk_4.3.3.bb | 2 +- meta/recipes-devtools/gcc/gcc-crosssdk_4.5.0.bb | 2 +- meta/recipes-devtools/gcc/gcc-runtime_4.3.3.bb | 2 +- meta/recipes-devtools/gcc/gcc-runtime_4.5.0.bb | 2 +- meta/recipes-devtools/gcc/gcc_4.3.3.bb | 2 +- meta/recipes-devtools/gcc/gcc_4.5.0.bb | 2 +- meta/recipes-devtools/gcc/gcc_csl-arm-2008q1.bb | 2 +- .../mpeg2dec/mpeg2dec-0.4.1/altivec_h_needed.patch | 41 ++++++++++++++++++++++ meta/recipes-multimedia/mpeg2dec/mpeg2dec_0.4.1.bb | 5 +-- 27 files changed, 89 insertions(+), 27 deletions(-) create mode 100644 meta/recipes-core/tinylogin/tinylogin-1.4/use_O2_option.patch create mode 100644 meta/recipes-multimedia/mpeg2dec/mpeg2dec-0.4.1/altivec_h_needed.patch diff --git a/meta/conf/distro/include/poky-default.inc b/meta/conf/distro/include/poky-default.inc index 42dd67c682..0dabeec27c 100644 --- a/meta/conf/distro/include/poky-default.inc +++ b/meta/conf/distro/include/poky-default.inc @@ -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 index 0000000000..dc5bc3f123 --- /dev/null +++ b/meta/recipes-core/tinylogin/tinylogin-1.4/use_O2_option.patch @@ -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 + +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 + diff --git a/meta/recipes-core/tinylogin/tinylogin_1.4.bb b/meta/recipes-core/tinylogin/tinylogin_1.4.bb index ad254bff6a..3daeac004a 100644 --- a/meta/recipes-core/tinylogin/tinylogin_1.4.bb +++ b/meta/recipes-core/tinylogin/tinylogin_1.4.bb @@ -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 = "" diff --git a/meta/recipes-devtools/gcc/gcc-configure-common.inc b/meta/recipes-devtools/gcc/gcc-configure-common.inc index 5a55025ac5..d86cb9a0b6 100644 --- a/meta/recipes-devtools/gcc/gcc-configure-common.inc +++ b/meta/recipes-devtools/gcc/gcc-configure-common.inc @@ -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 ?= "" diff --git a/meta/recipes-devtools/gcc/gcc-cross-canadian_4.3.3.bb b/meta/recipes-devtools/gcc/gcc-cross-canadian_4.3.3.bb index 981452b7a7..87cd27a95c 100644 --- a/meta/recipes-devtools/gcc/gcc-cross-canadian_4.3.3.bb +++ b/meta/recipes-devtools/gcc/gcc-cross-canadian_4.3.3.bb @@ -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" diff --git a/meta/recipes-devtools/gcc/gcc-cross-canadian_4.5.0.bb b/meta/recipes-devtools/gcc/gcc-cross-canadian_4.5.0.bb index dd19412139..e1a8e970d0 100644 --- a/meta/recipes-devtools/gcc/gcc-cross-canadian_4.5.0.bb +++ b/meta/recipes-devtools/gcc/gcc-cross-canadian_4.5.0.bb @@ -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" diff --git a/meta/recipes-devtools/gcc/gcc-cross-initial_4.3.3.bb b/meta/recipes-devtools/gcc/gcc-cross-initial_4.3.3.bb index b2c257d9d4..38e0964fed 100644 --- a/meta/recipes-devtools/gcc/gcc-cross-initial_4.3.3.bb +++ b/meta/recipes-devtools/gcc/gcc-cross-initial_4.3.3.bb @@ -1,5 +1,5 @@ require gcc-cross_${PV}.bb require gcc-cross-initial.inc -PR = "r2" +PR = "r3" diff --git a/meta/recipes-devtools/gcc/gcc-cross-initial_4.5.0.bb b/meta/recipes-devtools/gcc/gcc-cross-initial_4.5.0.bb index 7ed31956c8..e05fb346e8 100644 --- a/meta/recipes-devtools/gcc/gcc-cross-initial_4.5.0.bb +++ b/meta/recipes-devtools/gcc/gcc-cross-initial_4.5.0.bb @@ -1,5 +1,5 @@ require gcc-cross_${PV}.bb require gcc-cross-initial.inc -PR = "r7" +PR = "r8" diff --git a/meta/recipes-devtools/gcc/gcc-cross-intermediate_4.3.3.bb b/meta/recipes-devtools/gcc/gcc-cross-intermediate_4.3.3.bb index 10681dad4b..e65d5df671 100644 --- a/meta/recipes-devtools/gcc/gcc-cross-intermediate_4.3.3.bb +++ b/meta/recipes-devtools/gcc/gcc-cross-intermediate_4.3.3.bb @@ -1,4 +1,4 @@ require gcc-cross_${PV}.bb require gcc-cross-intermediate.inc -PR = "r2" +PR = "r3" diff --git a/meta/recipes-devtools/gcc/gcc-cross-intermediate_4.5.0.bb b/meta/recipes-devtools/gcc/gcc-cross-intermediate_4.5.0.bb index 702229d2fd..e0147743ee 100644 --- a/meta/recipes-devtools/gcc/gcc-cross-intermediate_4.5.0.bb +++ b/meta/recipes-devtools/gcc/gcc-cross-intermediate_4.5.0.bb @@ -1,4 +1,4 @@ require gcc-cross_${PV}.bb require gcc-cross-intermediate.inc -PR = "r7" +PR = "r8" diff --git a/meta/recipes-devtools/gcc/gcc-cross-kernel-3.4.4_csl-arm-2005q3.bb b/meta/recipes-devtools/gcc/gcc-cross-kernel-3.4.4_csl-arm-2005q3.bb index bee82d045f..675d3e44af 100644 --- a/meta/recipes-devtools/gcc/gcc-cross-kernel-3.4.4_csl-arm-2005q3.bb +++ b/meta/recipes-devtools/gcc/gcc-cross-kernel-3.4.4_csl-arm-2005q3.bb @@ -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" diff --git a/meta/recipes-devtools/gcc/gcc-cross_4.3.3.bb b/meta/recipes-devtools/gcc/gcc-cross_4.3.3.bb index 36f91d0221..d22fb9ed22 100644 --- a/meta/recipes-devtools/gcc/gcc-cross_4.3.3.bb +++ b/meta/recipes-devtools/gcc/gcc-cross_4.3.3.bb @@ -1,4 +1,4 @@ -PR = "r15" +PR = "r16" require gcc-${PV}.inc require gcc-cross4.inc diff --git a/meta/recipes-devtools/gcc/gcc-cross_4.5.0.bb b/meta/recipes-devtools/gcc/gcc-cross_4.5.0.bb index 2a0772841d..2246663594 100644 --- a/meta/recipes-devtools/gcc/gcc-cross_4.5.0.bb +++ b/meta/recipes-devtools/gcc/gcc-cross_4.5.0.bb @@ -1,4 +1,4 @@ -PR = "r7" +PR = "r8" require gcc-${PV}.inc require gcc-cross4.inc diff --git a/meta/recipes-devtools/gcc/gcc-cross_csl-arm-2008q1.bb b/meta/recipes-devtools/gcc/gcc-cross_csl-arm-2008q1.bb index 2fe7704adf..7cef7e7a3a 100644 --- a/meta/recipes-devtools/gcc/gcc-cross_csl-arm-2008q1.bb +++ b/meta/recipes-devtools/gcc/gcc-cross_csl-arm-2008q1.bb @@ -1,4 +1,4 @@ -PR = "r3" +PR = "r4" require gcc-csl-arm-2008q1.inc require gcc-cross4.inc diff --git a/meta/recipes-devtools/gcc/gcc-crosssdk-initial_4.3.3.bb b/meta/recipes-devtools/gcc/gcc-crosssdk-initial_4.3.3.bb index e804b4b016..44dd50dcb8 100644 --- a/meta/recipes-devtools/gcc/gcc-crosssdk-initial_4.3.3.bb +++ b/meta/recipes-devtools/gcc/gcc-crosssdk-initial_4.3.3.bb @@ -1,3 +1,3 @@ require gcc-cross-initial_${PV}.bb require gcc-crosssdk-initial.inc -PR = "r3" +PR = "r4" diff --git a/meta/recipes-devtools/gcc/gcc-crosssdk-initial_4.5.0.bb b/meta/recipes-devtools/gcc/gcc-crosssdk-initial_4.5.0.bb index 9ee18ecfe9..9daa2925b1 100644 --- a/meta/recipes-devtools/gcc/gcc-crosssdk-initial_4.5.0.bb +++ b/meta/recipes-devtools/gcc/gcc-crosssdk-initial_4.5.0.bb @@ -1,4 +1,4 @@ require gcc-cross-initial_${PV}.bb require gcc-crosssdk-initial.inc -PR = "r7" +PR = "r8" diff --git a/meta/recipes-devtools/gcc/gcc-crosssdk-intermediate_4.3.3.bb b/meta/recipes-devtools/gcc/gcc-crosssdk-intermediate_4.3.3.bb index 5f01473add..ae439622ac 100644 --- a/meta/recipes-devtools/gcc/gcc-crosssdk-intermediate_4.3.3.bb +++ b/meta/recipes-devtools/gcc/gcc-crosssdk-intermediate_4.3.3.bb @@ -1,3 +1,3 @@ require gcc-cross-intermediate_${PV}.bb require gcc-crosssdk-intermediate.inc -PR = "r6" +PR = "r7" diff --git a/meta/recipes-devtools/gcc/gcc-crosssdk-intermediate_4.5.0.bb b/meta/recipes-devtools/gcc/gcc-crosssdk-intermediate_4.5.0.bb index 28dbbab9f4..eeb2d87d54 100644 --- a/meta/recipes-devtools/gcc/gcc-crosssdk-intermediate_4.5.0.bb +++ b/meta/recipes-devtools/gcc/gcc-crosssdk-intermediate_4.5.0.bb @@ -1,4 +1,4 @@ require gcc-cross-intermediate_${PV}.bb require gcc-crosssdk-intermediate.inc -PR = "r7" +PR = "r8" diff --git a/meta/recipes-devtools/gcc/gcc-crosssdk_4.3.3.bb b/meta/recipes-devtools/gcc/gcc-crosssdk_4.3.3.bb index 92a3f11388..ffbd671598 100644 --- a/meta/recipes-devtools/gcc/gcc-crosssdk_4.3.3.bb +++ b/meta/recipes-devtools/gcc/gcc-crosssdk_4.3.3.bb @@ -1,3 +1,3 @@ require gcc-cross_${PV}.bb require gcc-crosssdk.inc -PR="r1" +PR="r2" diff --git a/meta/recipes-devtools/gcc/gcc-crosssdk_4.5.0.bb b/meta/recipes-devtools/gcc/gcc-crosssdk_4.5.0.bb index 31ebe80978..ffb0739c5d 100644 --- a/meta/recipes-devtools/gcc/gcc-crosssdk_4.5.0.bb +++ b/meta/recipes-devtools/gcc/gcc-crosssdk_4.5.0.bb @@ -1,4 +1,4 @@ require gcc-cross_${PV}.bb require gcc-crosssdk.inc -PR = "r7" +PR = "r8" diff --git a/meta/recipes-devtools/gcc/gcc-runtime_4.3.3.bb b/meta/recipes-devtools/gcc/gcc-runtime_4.3.3.bb index 543bf24b77..8c7c123f2e 100644 --- a/meta/recipes-devtools/gcc/gcc-runtime_4.3.3.bb +++ b/meta/recipes-devtools/gcc/gcc-runtime_4.3.3.bb @@ -1,4 +1,4 @@ -PR = "r15" +PR = "r16" require gcc-${PV}.inc require gcc-configure-runtime.inc diff --git a/meta/recipes-devtools/gcc/gcc-runtime_4.5.0.bb b/meta/recipes-devtools/gcc/gcc-runtime_4.5.0.bb index 28bae50197..2231c4269e 100644 --- a/meta/recipes-devtools/gcc/gcc-runtime_4.5.0.bb +++ b/meta/recipes-devtools/gcc/gcc-runtime_4.5.0.bb @@ -1,4 +1,4 @@ -PR = "r6" +PR = "r7" require gcc-${PV}.inc require gcc-configure-runtime.inc diff --git a/meta/recipes-devtools/gcc/gcc_4.3.3.bb b/meta/recipes-devtools/gcc/gcc_4.3.3.bb index a2ae0c0e92..ca22e0f69c 100644 --- a/meta/recipes-devtools/gcc/gcc_4.3.3.bb +++ b/meta/recipes-devtools/gcc/gcc_4.3.3.bb @@ -1,4 +1,4 @@ -PR = "r8" +PR = "r9" require gcc-${PV}.inc require gcc-configure-target.inc diff --git a/meta/recipes-devtools/gcc/gcc_4.5.0.bb b/meta/recipes-devtools/gcc/gcc_4.5.0.bb index e133c5bac7..45bbb01e40 100644 --- a/meta/recipes-devtools/gcc/gcc_4.5.0.bb +++ b/meta/recipes-devtools/gcc/gcc_4.5.0.bb @@ -1,4 +1,4 @@ -PR = "r6" +PR = "r7" require gcc-${PV}.inc require gcc-configure-target.inc diff --git a/meta/recipes-devtools/gcc/gcc_csl-arm-2008q1.bb b/meta/recipes-devtools/gcc/gcc_csl-arm-2008q1.bb index 832167ca4e..4999c6a53e 100644 --- a/meta/recipes-devtools/gcc/gcc_csl-arm-2008q1.bb +++ b/meta/recipes-devtools/gcc/gcc_csl-arm-2008q1.bb @@ -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 index 0000000000..ecb3a9d32e --- /dev/null +++ b/meta/recipes-multimedia/mpeg2dec/mpeg2dec-0.4.1/altivec_h_needed.patch @@ -0,0 +1,41 @@ +Add new method to judge whether is needed + +The original logic will use "typedef vector int t;" to judge +whether 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 + +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 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 ], +- [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 header.]) + have_altivec=yes; AC_MSG_RESULT(yes)], diff --git a/meta/recipes-multimedia/mpeg2dec/mpeg2dec_0.4.1.bb b/meta/recipes-multimedia/mpeg2dec/mpeg2dec_0.4.1.bb index a769e5a70e..4aa6f8cc66 100644 --- a/meta/recipes-multimedia/mpeg2dec/mpeg2dec_0.4.1.bb +++ b/meta/recipes-multimedia/mpeg2dec/mpeg2dec_0.4.1.bb @@ -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 -- cgit 1.2.3-korg