[OE-core] export TARGET_LDFLAGS and native sstate

Mike Crowe mac at mcrowe.com
Mon Apr 7 15:53:33 UTC 2014


We're building for both ARM and MIPS-based MACHINEs in a single source
tree. This seems to result in us compiling (or luckily most of the time
resurrecting from sstate-cache) two different versions of all -native
packages due to different base hashes.

It seems that this difference in base hashes is due to the exported
variable TARGET_LDFLAGS being different between the two CPUs:

< export TARGET_LDFLAGS="-Wl,-O1  -Wl,--as-needed"
---
> export TARGET_LDFLAGS="-Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed"

which in turn is because TARGET_LINK_HASH_STYLE is explicitly set to "sysv"
on MIPS but allowed to be "gnu" on everything else.

Every time I switch back and forth between building ARM-based and
MIPS-based machines the do_populate_sysroot_setscene tasks run for each
required -native recipe.

If I modify native.bbclass to do:

 TARGET_LDFLAGS = "${BUILD_LDFLAGS}"

then the hashes match and this unnecessary sysroot population is avoided.

Is this a sensible thing to be doing? It does mean that TARGET_LDFLAGS
contains a lot of (presumably unnecessary) rpath shenanigans but perhaps
that doesn't matter. :(

Thanks.

Mike.



More information about the Openembedded-core mailing list