Patchwork [16/17] gcc: fix possible problems with nscd compilation during eglibc-nativesdk build

login
register
mail settings
Submitter lumag
Date Sept. 21, 2011, 6:40 p.m.
Message ID <1316630404-10336-16-git-send-email-dbaryshkov@gmail.com>
Download mbox | patch
Permalink /patch/11905/
State New, archived
Headers show

Comments

lumag - Sept. 21, 2011, 6:40 p.m.
Long time ago a066e7ca90a28d5681c5fa895a29e999ed7c88b was committed to
address possible problems with compilation of nscd during
eglibc-nativesdk build. Problems were related to the way gcc searches
for headers to check if it should enable it's own stack smash protection
bits or it can relay on eglibc for it.

However after 934d38530c9a67562e53d4034aee5531f0f26750 things got
broken, as for gcc-crosssdk{,-intermediate} packages:
1) EXTRA_OECONF is ignored
2) headers are installed in a different location than expected by that
patch.

This results in eglibc-nativesdk build broken on some systems (e.g. mine
Debian x86_64 squeeze). Fix that by providing with-headers options to
crosssdk gcc configurations.

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
---
 meta/recipes-devtools/gcc/gcc-4.5.1.inc            |    2 +-
 meta/recipes-devtools/gcc/gcc-4.6.inc              |    2 +-
 .../gcc/gcc-crosssdk-intermediate.inc              |    2 ++
 meta/recipes-devtools/gcc/gcc-crosssdk.inc         |    2 ++
 4 files changed, 6 insertions(+), 2 deletions(-)
Richard Purdie - Sept. 22, 2011, 5:44 a.m.
On Wed, 2011-09-21 at 22:40 +0400, Dmitry Eremin-Solenikov wrote:
> Long time ago a066e7ca90a28d5681c5fa895a29e999ed7c88b was committed to
> address possible problems with compilation of nscd during
> eglibc-nativesdk build. Problems were related to the way gcc searches
> for headers to check if it should enable it's own stack smash protection
> bits or it can relay on eglibc for it.
> 
> However after 934d38530c9a67562e53d4034aee5531f0f26750 things got
> broken, as for gcc-crosssdk{,-intermediate} packages:
> 1) EXTRA_OECONF is ignored
> 2) headers are installed in a different location than expected by that
> patch.
> 
> This results in eglibc-nativesdk build broken on some systems (e.g. mine
> Debian x86_64 squeeze). Fix that by providing with-headers options to
> crosssdk gcc configurations.
> 
> Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
> ---
>  meta/recipes-devtools/gcc/gcc-4.5.1.inc            |    2 +-
>  meta/recipes-devtools/gcc/gcc-4.6.inc              |    2 +-
>  .../gcc/gcc-crosssdk-intermediate.inc              |    2 ++
>  meta/recipes-devtools/gcc/gcc-crosssdk.inc         |    2 ++
>  4 files changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/meta/recipes-devtools/gcc/gcc-4.5.1.inc b/meta/recipes-devtools/gcc/gcc-4.5.1.inc
> index 90824bd..6a9a7a6 100644
> --- a/meta/recipes-devtools/gcc/gcc-4.5.1.inc
> +++ b/meta/recipes-devtools/gcc/gcc-4.5.1.inc
> @@ -1,6 +1,6 @@
>  require gcc-common.inc
>  
> -PR = "r10"
> +PR = "r11"
>  
>  DEPENDS =+ "mpfr gmp libmpc elfutils"
>  NATIVEDEPS = "mpfr-native gmp-native gettext-native libmpc-native elfutils-native"
> diff --git a/meta/recipes-devtools/gcc/gcc-4.6.inc b/meta/recipes-devtools/gcc/gcc-4.6.inc
> index ee42fa7..5d83e90 100644
> --- a/meta/recipes-devtools/gcc/gcc-4.6.inc
> +++ b/meta/recipes-devtools/gcc/gcc-4.6.inc
> @@ -1,6 +1,6 @@
>  require gcc-common.inc
>  
> -PR = "r11"
> +PR = "r12"
>  
>  # Third digit in PV should be incremented after a minor release
>  # happens from this branch on gcc e.g. currently its 4.6.0
> diff --git a/meta/recipes-devtools/gcc/gcc-crosssdk-intermediate.inc b/meta/recipes-devtools/gcc/gcc-crosssdk-intermediate.inc
> index ed5d5e8..8f20d20 100644
> --- a/meta/recipes-devtools/gcc/gcc-crosssdk-intermediate.inc
> +++ b/meta/recipes-devtools/gcc/gcc-crosssdk-intermediate.inc
> @@ -7,3 +7,5 @@ SYSTEMLIBS1 = "${SDKPATHNATIVE}${libdir_nativesdk}/"
>  DEPENDS = "virtual/${TARGET_PREFIX}binutils-crosssdk gettext-native"
>  DEPENDS += "virtual/${TARGET_PREFIX}libc-initial-nativesdk"
>  PROVIDES = "virtual/${TARGET_PREFIX}gcc-intermediate-crosssdk"
> +
> +EXTRA_OECONF += " --with-headers=${STAGING_DIR_TCBOOTSTRAP}${SYSTEMHEADERS} "
> diff --git a/meta/recipes-devtools/gcc/gcc-crosssdk.inc b/meta/recipes-devtools/gcc/gcc-crosssdk.inc
> index 0fd82a6..5063f6f 100644
> --- a/meta/recipes-devtools/gcc/gcc-crosssdk.inc
> +++ b/meta/recipes-devtools/gcc/gcc-crosssdk.inc
> @@ -8,3 +8,5 @@ GCCMULTILIB = "--disable-multilib"
>  
>  DEPENDS = "virtual/${TARGET_PREFIX}binutils-crosssdk virtual/${TARGET_PREFIX}libc-for-gcc-nativesdk gettext-native"
>  PROVIDES = "virtual/${TARGET_PREFIX}gcc-crosssdk virtual/${TARGET_PREFIX}g++-crosssdk"
> +
> +EXTRA_OECONF += " --with-headers=${STAGING_DIR_TARGET}${SYSTEMHEADERS} "


You are patching both gcc-crosssdk and gcc-crosssdk-intermediate here. I
ran a check:

bitbake gcc-crosssdk -e | grep EXTRA_OECONF

and this suggested the second part of this change isn't needed and the
real issue is in the intermediate step?

How about we add this line explicitly to gcc-cross-intermediate.inc?

Cheers,

Richard

Patch

diff --git a/meta/recipes-devtools/gcc/gcc-4.5.1.inc b/meta/recipes-devtools/gcc/gcc-4.5.1.inc
index 90824bd..6a9a7a6 100644
--- a/meta/recipes-devtools/gcc/gcc-4.5.1.inc
+++ b/meta/recipes-devtools/gcc/gcc-4.5.1.inc
@@ -1,6 +1,6 @@ 
 require gcc-common.inc
 
-PR = "r10"
+PR = "r11"
 
 DEPENDS =+ "mpfr gmp libmpc elfutils"
 NATIVEDEPS = "mpfr-native gmp-native gettext-native libmpc-native elfutils-native"
diff --git a/meta/recipes-devtools/gcc/gcc-4.6.inc b/meta/recipes-devtools/gcc/gcc-4.6.inc
index ee42fa7..5d83e90 100644
--- a/meta/recipes-devtools/gcc/gcc-4.6.inc
+++ b/meta/recipes-devtools/gcc/gcc-4.6.inc
@@ -1,6 +1,6 @@ 
 require gcc-common.inc
 
-PR = "r11"
+PR = "r12"
 
 # Third digit in PV should be incremented after a minor release
 # happens from this branch on gcc e.g. currently its 4.6.0
diff --git a/meta/recipes-devtools/gcc/gcc-crosssdk-intermediate.inc b/meta/recipes-devtools/gcc/gcc-crosssdk-intermediate.inc
index ed5d5e8..8f20d20 100644
--- a/meta/recipes-devtools/gcc/gcc-crosssdk-intermediate.inc
+++ b/meta/recipes-devtools/gcc/gcc-crosssdk-intermediate.inc
@@ -7,3 +7,5 @@  SYSTEMLIBS1 = "${SDKPATHNATIVE}${libdir_nativesdk}/"
 DEPENDS = "virtual/${TARGET_PREFIX}binutils-crosssdk gettext-native"
 DEPENDS += "virtual/${TARGET_PREFIX}libc-initial-nativesdk"
 PROVIDES = "virtual/${TARGET_PREFIX}gcc-intermediate-crosssdk"
+
+EXTRA_OECONF += " --with-headers=${STAGING_DIR_TCBOOTSTRAP}${SYSTEMHEADERS} "
diff --git a/meta/recipes-devtools/gcc/gcc-crosssdk.inc b/meta/recipes-devtools/gcc/gcc-crosssdk.inc
index 0fd82a6..5063f6f 100644
--- a/meta/recipes-devtools/gcc/gcc-crosssdk.inc
+++ b/meta/recipes-devtools/gcc/gcc-crosssdk.inc
@@ -8,3 +8,5 @@  GCCMULTILIB = "--disable-multilib"
 
 DEPENDS = "virtual/${TARGET_PREFIX}binutils-crosssdk virtual/${TARGET_PREFIX}libc-for-gcc-nativesdk gettext-native"
 PROVIDES = "virtual/${TARGET_PREFIX}gcc-crosssdk virtual/${TARGET_PREFIX}g++-crosssdk"
+
+EXTRA_OECONF += " --with-headers=${STAGING_DIR_TARGET}${SYSTEMHEADERS} "