On Tue, 2011-11-22 at 17:53 -0600, Khem Raj wrote:
> On Thu, Nov 10, 2011 at 2:36 PM,  <michael_e_br...@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?
> 
> there is much more than just building toolchain. You need to make sure
> that kernel is configured properly too and last time I remember doing
> it in oe.dev I needed some patches on vanilla
> kernel that may have changed now. I think adding SH4 to meta-oe can be
> considered if you post
> patches for that layer. Then the question remains where the remaining
> machine support goes. It can be a new layer for secondary qemu
> architectures.

I am porting a build from a pre-existing build system where I already
have full working rootfs and kernel, so porting our kernel is slightly
lower on the priority list than getting userland up and running. I'll be
working on kernel in a couple weeks, though I may get an sh4 qemu kernel
building in the meantime. If I get that going, I'll send patches, but I
would like to see the oe-core/yocto fixed up to build sh4 properly.

There are a total of 3 packages that require fixes to get all the
userspace packages building, and one fix to qemu to restore building sh4
binaries. In addition to the already posted gcc fixes:

1) libatomics needs to be upgraded to the latest, 7.2alpha6 for sh4
fixes. This upgrade is simply renaming the file and removing the
already-applied patches.

2) libart: the sh4 art_config.h was dropped in oe-core. Simply copy over
from oe.

--
Michael



_______________________________________________
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto

Reply via email to