[yocto] SH4 build failure fix
Michael E Brown
Michael_E_Brown at Dell.com
Thu Nov 10 19:20:47 PST 2011
On Thu, 2011-11-10 at 16:50 -0600, McClintock Matthew-B29882 wrote:
> On Thu, Nov 10, 2011 at 4:36 PM, <Michael_E_Brown at dell.com> wrote:
> > I'm presently working on porting the build environment for three existing embedded projects over to use yocto. Unfortunately, the project which has to go first is based on an SH4 chip, which isn't on the officially supported yocto architecture list. I gave the compile a go, and ran into a build error in gcc-cross-intermediate:
> >
> > build-edison-sh4/tmp/sysroots/i686-linux/usr/bin/sh4-poky-linux/sh4-poky-linux-ld: cannot find crti.o: No such file or directory
> > build-edison-sh4/tmp/sysroots/i686-linux/usr/bin/sh4-poky-linux/sh4-poky-linux-ld: cannot find -lc
> > build-edison-sh4/tmp/sysroots/i686-linux/usr/bin/sh4-poky-linux/sh4-poky-linux-ld: cannot find crtn.o: No such file or directory
> >
> > Trying to figure out the source of this build error, I found that base openembedded does compile this package successfully, so I started focusing on the differences. I narrowed the build failure down to this line in gcc-cross4.inc, which is present in openembedded, but absent in yocto/poky:
> > gcc-cross4.inc
> > EXTRA_OECONF_append_sh4 = " --with-multilib-list= --enable-incomplete-targets "
> >
> > After I added this one line, I was able to sucessfully build a base yocto image for qemu sh4. Is it possible to get this added to the upstream yocto build?
>
> Can you find the offending commit with 'git blame'?
Nope. It's been exactly that way since it was first checked in to poky,
as far as I can tell. All of the commits referencing this file are
missing this line.
Additionally, upstream openembedded has one additional
"sh4-multilib.patch" that isnt carried in poky. I dont know if I need
this, actually. It builds without it.
$ git log --follow ./gcc-cross4.inc
commit 29d6678fd546377459ef75cf54abeef5b969b5cf
Author: Richard Purdie <rpurdie at linux.intel.com>
Date: Fri Aug 27 15:14:24 2010 +0100
Major layout change to the packages directory
Having one monolithic packages directory makes it hard to find
things
and is generally overwhelming. This commit splits it into several
logical sections roughly based on function, recipes.txt gives more
information about the classifications used.
The opportunity is also used to switch from "packages" to "recipes"
as used in OpenEmbedded as the term "packages" can be confusing to
people and has many different meanings.
Not all recipes have been classified yet, this is just a first pass
at separating things out. Some packages are moved to meta-extras as
they're no longer actively used or maintained.
Signed-off-by: Richard Purdie <rpurdie at linux.intel.com>
commit 70abb2e3e8671b3d10c7db5a16e37d646014a4b6
Author: Richard Purdie <rpurdie at linux.intel.com>
Date: Wed Mar 31 13:43:09 2010 +0100
gcc-cross: Use NATIVEDEPS
Signed-off-by: Richard Purdie <rpurdie at linux.intel.com>
commit 91d2e7d1bc725f2c3a39b4c7413bf96e85d17375
Author: Joshua Lock <josh at linux.intel.com>
Date: Tue Dec 22 15:41:01 2009 +0000
gcc: add gettext to dependencies
Signed-off-by: Joshua Lock <josh at linux.intel.com>
commit b905e04eae5e557199c689ac63f56f996c3da27c
Author: Richard Purdie <richard at openedhand.com>
Date: Tue Mar 18 10:44:24 2008 +0000
gcc: Add missing files + changes from the last commit
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@4039
311d38ba-8fff-0310-9ca6-ca027cbcb966
More information about the yocto
mailing list