[OE-core] [PATCH] u-boot.inc: update linker arguments to pass --sysroot arg (BUILD BREAKAGE)
McClintock Matthew-B29882
B29882 at freescale.com
Mon Oct 29 14:36:31 UTC 2012
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/edison/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/edison/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...
-M
More information about the Openembedded-core
mailing list