[oe] RFC: SDK/external-toolchain fixes

Khem Raj raj.khem at gmail.com
Sat Sep 13 19:06:43 UTC 2008


On (13/09/08 15:49), Koen Kooi wrote:
> Khem Raj wrote:
>> On (11/09/08 21:53), Denys Dmytriyenko wrote:
>>> First of all, thanks for your review.
>>>
>>> On Thu, Sep 11, 2008 at 05:02:08PM -0700, Khem Raj wrote:
>>>> On (11/09/08 15:52), Denys Dmytriyenko wrote:
>>>>> #1 gcc-cross-sdk 4.3.1 missing include-fixed
>>>>> http://bugs.openembedded.net/show_bug.cgi?id=4536
>>>>>
>>>>> gcc 4.3.x has some GCC-provided headers in include-fixed (namely limits.h),
>>>>> which are missing in the gcc-cross-sdk version, rendering external toolchain
>>>>> unusable.
>>>> I do not like this fix. IMO Instead of copying them into include directory
>>>> they should be let alone in include-fixed directory and packaged. You should
>>>> add knowledge of this new directory to the failing package instead. What
>>>> packages are broken because of this.
>>> I agree that this is not a proper fix, but rather a hack. glibc has its own
>>> limits.h, which wants to include gcc's limits.h like this:
>>>
>>>   /* Get the compiler's limits.h, which defines almost all the ISO constants.
>>>      We put this #include_next outside the double inclusion check because
>>>      it should be possible to include this file more than once and still get
>>>      the definitions from gcc's header.  */
>>> #if defined __GNUC__&&  !defined _GCC_LIMITS_H_
>>> /* `_GCC_LIMITS_H_' is what GCC's file defines.  */
>>> # include_next<limits.h>
>>> #endif
>>>
>>> This issue was brought up before, but as far as I can tell, it wasn't fixed
>>> properly.
>>> This is initial Koen's post about the issue:
>>> http://projects.linuxtogo.org/pipermail/openembedded-devel/2008-April/005108.html
>>> And here is your own reply with one of the possible solutions:
>>> http://projects.linuxtogo.org/pipermail/openembedded-devel/2008-April/005111.html
>>>
>>
>> right. So can you try this patch and see if this fixes the problem ?
>>
>>> Here is how it's "solved" (i.e. worked around) in gcc-cross_4.3.1.bb (4.3.2):
>>>
>>> # Hack till we fix *libc properly
>>> do_stage_append() {
>>>          ln -sf ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${BINV}/include-fixed/* ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${BINV}/include/
>>> }
>>>
>>> I'd love to see it fixed properly, but for now I'm trying to bring
>>> gcc-cross-sdk on par with gcc-cross.
>>>
>>>>> Provided patch copies them in the include directory as a temporary solution.
>>>>> A similar temporary solution is present in gcc-cross_4.3.1, see
>>>>> do_stage_append()
>>>>>
>>>>>
>>>>> #2 external-toolchain misses providing runtime libgcc
>>>>> http://bugs.openembedded.net/show_bug.cgi?id=4542
>>>>>
>>>>> Since external-toolchain misses specifying libgcc as provided runtime library,
>>>>> dependency tree picks up either gcc-cross or even gcc-noemu...
>>>> This one seems ok to me.
>>> Thanks! Whom should I ping to get it commited?
>>
>> I can do it.
>
> gcc_4.3.x.bb also needs a fix since I get all kinds of limits.h related  
>, errors when trying to do native compilation on the beagle.

I only did cross build/testing no target gcc stuff so I did not see this problem thus far.
I thought gcc driver should have added include-fixed to default search paths for includes unless you disable it to do so like glibc does in such a case the application should add it to include search paths manually. 

If you can give more details about this failure on native build. I could try to dig more.

Thanks
-Khem

>
> regards,
>
> Koen
>
>
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel at lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel




More information about the Openembedded-devel mailing list