[oe] [Jethro] Can't compile gcc-cross when gcc-6 is the host compiler

Jérémy Rosen jeremy.rosen at smile.fr
Fri Aug 12 13:38:52 UTC 2016



On 11/08/2016 21:38, Burton, Ross wrote:
> On 11 August 2016 at 13:40, Jérémy Rosen <jeremy.rosen at smile.fr> wrote:
>
>> This helped, and allowed me to go much further in my build, but the recipe
>> gcc-cross-arm still failed. To be able to compile my build I had to add the
>> following to my local.conf
>>
>> CC_pn-gcc-cross-arm= "${BUILD_CC}"
>> CXX_pn-gcc-cross-arm= "${BUILD_CXX}"
>> CC_pn-gcc-crosssdk-x86_64= "${BUILD_CC}"
>> CXX_pn-gcc-crosssdk-x86_64= "${BUILD_CXX}"
>>
>>
>> So apparently, gcc still has some reference to $CC and $CXX hardcoded
>> somewhere (I think it's in do_configure)
>>
>> It seems to set $CC in the do_compile correctly, but not in do_configure.
>> And it never sets $CXX
>>
>> I tried to understand what the GCC recipe was doing wrong, but I couldn't
>> find out on first look and it's a really complicated recipe
>>
> Could you try adding a do_configure_prepend to gcc-cross.inc that sets
> exports those (and extend the do_compile exports) to see if that solves it?

I did the following

diff --git a/meta/recipes-devtools/gcc/gcc-cross.inc 
b/meta/recipes-devtools/gcc/gcc-cross.inc
index aa10633..9a2e06f 100644
--- a/meta/recipes-devtools/gcc/gcc-cross.inc
+++ b/meta/recipes-devtools/gcc/gcc-cross.inc
@@ -36,8 +36,14 @@ EXTRA_OECONF_PATHS = "\

  ARCH_FLAGS_FOR_TARGET += 
"-isystem${STAGING_DIR_TARGET}${target_includedir}"

+do_configure_prepend () {
+    export CC="${BUILD_CC}"
+    export CXX="${BUILD_CXX}"
+}
+
  do_compile () {
      export CC="${BUILD_CC}"
+    export CXX="${BUILD_CXX}"
      export AR_FOR_TARGET="${TARGET_SYS}-ar"
      export RANLIB_FOR_TARGET="${TARGET_SYS}-ranlib"
      export LD_FOR_TARGET="${TARGET_SYS}-ld"


(which I think is what you meant) and it did indeed solve the problem.

> Ross




More information about the Openembedded-devel mailing list