[oe] RFC: SDK/external-toolchain fixes

Denys Dmytriyenko denis at denix.org
Fri Sep 12 01:53:20 UTC 2008


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

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?

-- 
Denys




More information about the Openembedded-devel mailing list