[oe] linux-libc-headers-native, gcc-cross issue

Khem Raj raj.khem at gmail.com
Mon Jun 21 19:58:06 UTC 2010


On (21/06/10 21:49), Frans Meulenbroeks wrote:
> 2010/6/21 Khem Raj <raj.khem at gmail.com>:
> > On (21/06/10 21:27), Frans Meulenbroeks wrote:
> >> 2010/6/21 Tom Rini <tom_rini at mentor.com>:
> >> > Frans Meulenbroeks wrote:
> >> >>
> >> >> Dear all,
> >> >>
> >> >> After the introduction of linux-libc-headers-native I've bumped into
> >> >> the following issue.
> >> >> linux-libc-headers-native installs unistd.h in sysroots
> >> >> This causes other recipes to pick up the x86 files instead of the target
> >> >> ones.
> >> >> I've seen this happen for both unistd.h and sigcontext.h
> >> >
> >> > What DISTRO/MACHINE are you using?
> >>
> >> DISTRO is angstrom-2008.1, MACHINE is NEEK; this one is NIOS2 based
> >> and not committed yet.
> >> From examining the gcc-cross dir I suspect some other archtectures
> >> will also be vulnerable to this (as they also have a linux-unwind.h
> >> which includes signal.h to get sigcontext).
> >> The following architectures have a sigcontext struct in their gcc/config dir:
> >>
> >> gcc-cross-4.1.2-r23.1/gcc-4.1.2/gcc/config> grep -r sigcontext .
> >> ./sh/linux-unwind.h:  struct sigcontext *sc;
> >> ./sh/linux-unwind.h:      sc = (struct sigcontext *) (void *)
> >> &rt_->uc.uc_mcontext;
> >> ./sh/linux-unwind.h:  struct sigcontext *sc;
> >> ./sh/linux-unwind.h:      sc = (struct sigcontext *) (void *)
> >> &rt_->uc.uc_mcontext;
> >> ./alpha/linux-unwind.h:  struct sigcontext *sc;
> >> ./i386/linux-unwind.h:  struct sigcontext *sc;
> >> ./i386/linux-unwind.h:      sc = (struct sigcontext *) (void *)
> >> &uc_->uc_mcontext;
> >> ./i386/linux-unwind.h:  struct sigcontext *sc;
> >> ./i386/linux-unwind.h:      sc = (struct sigcontext *) (void *)
> >> &rt_->uc.uc_mcontext;
> >> ./mips/linux-unwind.h:    struct sigcontext uc_mcontext;
> >> ./mips/linux-unwind.h:  struct sigcontext *sc;
> >> ./mips/linux-unwind.h:        struct sigcontext sigctx;
> >> ./mips/linux-unwind.h:  /* On o32 Linux, the register save slots in
> >> the sigcontext are
> >> ./ia64/linux-unwind.h:/* This works only for glibc-2.3 and later,
> >> because sigcontext is different
> >> ./ia64/linux-unwind.h:        struct sigcontext *sc;
> >> ./ia64/linux-unwind.h:      struct sigcontext *sc = frame_->sc;
> >> ./ia64/linux-unwind.h:         in the sigcontext but leaves them intact, so there's no
> >> ./ia64/linux-unwind.h:        struct sigcontext *sc;
> >> ./ia64/linux-unwind.h:      struct sigcontext *sc = frame->sc;
> >> ./ia64/linux-unwind.h:         in the sigcontext but leaves them intact, so there's no
> >> ./pa/linux-unwind.h:   tell us how to locate the sigcontext structure.
> >> ./pa/linux-unwind.h:  struct sigcontext *sc;
> >> ./nios2/linux-unwind.h:       struct sigcontext ctx;
> >
> > try to port recipes/gcc/gcc-4.2.4/sh_unwind.patch to nios. This could help
> > here.
> >
> 
> Will look into it. This might indeed help (actually I don't know too
> much about this).
> Still of course this is only a workaround. 

no its not a workaround. such a fix is upstream in gcc for SH and MIPS

The root cause is the host
> inc dir when compiling a target dir.
> Thinking of it, apart from fixing the root cause (which is probably
> above my capabilities), 

GMPINC should not be passed when building target files. I will see if I can
cook up something.

the simplest way would be just to patch the
> generated Makefile and remove the offending -I
> That would also solve my unistd.h problem.

thats even uglier to much with generated files.

> 
> Frans
> 
> _______________________________________________
> 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