[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openembedded-core
Subject:    [OE-core] [PATCH] u-boot.inc: update linker arguments to pass --sysroot arg (BUILD BREAKAGE)
From:       sledz () dresearch-fe ! de (Steffen Sledz)
Date:       2012-10-31 7:02:54
Message-ID: 5090CD1E.9070203 () dresearch-fe ! de
[Download RAW message or body]

On 29.10.2012 19:08, McClintock Matthew-B29882 wrote:
> On Mon, Oct 29, 2012 at 9:36 AM, Matthew McClintock <msm at freescale.com> wrote:
> > On Mon, Oct 29, 2012 at 4:26 AM, Steffen Sledz <sledz at dresearch-fe.de> wrote:
> > > On 29.07.2012 11:29, Richard Purdie wrote:
> > > > On Thu, 2012-07-26 at 11:21 -0500, Matthew McClintock wrote:
> > > > > If we are building from sstate-cache it's possible to be building
> > > > > from another folder on another machine, therefore the linker requires
> > > > > that a proper --sysroot is passed too it so it can find things like
> > > > > libgcc.a and avoid errors such as:
> > > > > 
> > > > > > arm-poky-linux-gnueabi-gcc  -g  -O2  -fno-common -ffixed-r8 -msoft-float  \
> > > > > > -D__KERNEL__ -DCONFIG_SYS_TEXT_BASE=0x80008000 \
> > > > > > -I/local/yocto/upstream/label/ubuntu1204-64b/machine/beagleboard/poky/edis \
> > > > > > on/tmp/work/beagleboard-poky-linux-gnueabi/u-boot-v2011.06+git5+b1af6f532e0d348b153d5c148369229d24af361a-r0/git/include \
> > > > > > -fno-builtin -ffreestanding -nostdinc -isystem \
> > > > > > /local/yocto/upstream/label/ubuntu1204-64b/machine/beagleboard/poky/edison \
> > > > > > /tmp/sysroots/x86_64-linux/usr/bin/armv7a-vfp-neon-poky-linux-gnueabi/../. \
> > > > > > ./lib/armv7a-vfp-neon-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.6.3/include \
> > > > > > -pipe  -DCONFIG_ARM -D__ARM__ -marm  -mabi=aapcs-linux \
> > > > > > -mno-thumb-interwork -march=armv5 -Wall -Wstrict-prototypes \
> > > > > > -fno-stack-protector -fno-toplevel-reorder   -o hello_world.o \
> > > > > > hello_world.c -c
> > > > > > arm-poky-linux-gnueabi-gcc  -g  -O2  -fno-common -ffixed-r8 -msoft-float  \
> > > > > > -D__KERNEL__ -DCONFIG_SYS_TEXT_BASE=0x80008000 \
> > > > > > -I/local/yocto/upstream/label/ubuntu1204-64b/machine/beagleboard/poky/edis \
> > > > > > on/tmp/work/beagleboard-poky-linux-gnueabi/u-boot-v2011.06+git5+b1af6f532e0d348b153d5c148369229d24af361a-r0/git/include \
> > > > > > -fno-builtin -ffreestanding -nostdinc -isystem \
> > > > > > /local/yocto/upstream/label/ubuntu1204-64b/machine/beagleboard/poky/edison \
> > > > > > /tmp/sysroots/x86_64-linux/usr/bin/armv7a-vfp-neon-poky-linux-gnueabi/../. \
> > > > > > ./lib/armv7a-vfp-neon-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.6.3/include \
> > > > > > -pipe  -DCONFIG_ARM -D__ARM__ -marm  -mabi=aapcs-linux \
> > > > > > -mno-thumb-interwork -march=armv5 -Wall -Wstrict-prototypes \
> > > > > > -fno-stack-protector -fno-toplevel-reorder   -o stubs.o stubs.c -c
> > > > > > arm-poky-linux-gnueabi-ld  -r -o libstubs.o  stubs.o
> > > > > > arm-poky-linux-gnueabi-ld -g -Ttext 0x80300000 \
> > > > > > -o hello_world -e hello_world hello_world.o libstubs.o \
> > > > > > -L. -lgcc
> > > > > > arm-poky-linux-gnueabi-ld: cannot find -lgcc
> > > > > > make[1]: *** [hello_world] Error 1
> > > > > 
> > > > > Signed-off-by: Matthew McClintock <msm at freescale.com>
> > > > > ---
> > > > > meta/recipes-bsp/u-boot/u-boot.inc           |    2 +-
> > > > > meta/recipes-bsp/u-boot/u-boot_2011.03.bb    |    2 +-
> > > > > meta/recipes-bsp/u-boot/u-boot_2011.06.bb    |    2 +-
> > > > > meta/recipes-bsp/u-boot/u-boot_2012.04.01.bb |    1 +
> > > > > 4 files changed, 4 insertions(+), 3 deletions(-)
> > > > 
> > > > 
> > > > Merged to master, thanks.
> > > 
> > > While trying to migrate the u-boot support for our machine from oe-classic i \
> > > hit a problem with this patch. :( 
> > > The
> > > 
> > > EXTRA_OEMAKE = 'CROSS_COMPILE=${TARGET_PREFIX} CC="${TARGET_PREFIX}gcc \
> > > ${TOOLCHAIN_OPTIONS}"' 
> > > in u-boot.inc leads to compiling problems with some build support tools. The \
> > > tools (e.g. bmp_logo) are now compiled with the target compiler \
> > > (arm-oe-linux-gnueabi-gcc in our case) instead of the host compiler. This \
> > > results in build errors like 
> > > > ./bmp_logo logos/denx.bmp \
> > > > >/pm/sledz/oe-core/build/tmp-eglibc/work/hipox-oe-linux-gnueabi/u-boot-v2009.03+git91+e60beb13cf0135dc71c541021487b5ccc4d269cb-r8/git/include/bmp_logo.h
> > > > > 
> > > > /bin/sh: ./bmp_logo: cannot execute binary file
> > > 
> > > Reverting to
> > > 
> > > EXTRA_OEMAKE = 'CROSS_COMPILE=${TARGET_PREFIX}'
> > > 
> > > seems to fix this problem.
> > 
> > That however will break building from sstate... we might need to patch
> > u-boot's Makefiles here...
> 
> Looking closer you are using a really old u-boot. Can you update? The
> Makefile for bmp_logo uses HOSTCC so this should not be an issue with
> a recent u-boot.

You're right. We use a rather old version. Unfortunatly we are bound to it for the \
moment. :(

Until we can switch to a newer version i'll use a machine specific override for \
EXTRA_OEMAKE. I think this will be reasonable solution for this case.

Regards,
Steffen

-- 
DResearch Fahrzeugelektronik GmbH
Otto-Schmirgal-Str. 3, 10319 Berlin, Germany
Tel: +49 30 515932-237 mailto:sledz at dresearch-fe.de
Fax: +49 30 515932-299
Gesch?ftsf?hrer: Dr. Michael Weber, Werner M?gle;
Amtsgericht Berlin Charlottenburg; HRB 130120 B;
Ust.-IDNr. DE273952058


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic