[OE-core] Default rpaths in BUILD_LDFLAGS

Khem Raj raj.khem at gmail.com
Wed Mar 8 22:23:33 UTC 2017


On 17-03-08 13:56:12, Martin Kelly wrote:
> On 03/08/2017 01:46 PM, Khem Raj wrote:
> > On 17-03-07 16:43:47, Martin Kelly wrote:
> > > Hi,
> > > 
> > > While debugging an issue with a package that uses llvm-config to compile
> > > with clang, I started hitting [rpaths] QA warnings because some output
> > > executables contained absolute rpaths pointing into my build directory.
> > > After tracing through the issue, I determined the rpaths to eventually be
> > > originating from the setting of BUILD_LDFLAGS in meta/conf/bitbake.conf. The
> > > rpath part of this was added in commit 35759f97 to the poky repo.
> > 
> > thats for native packages alone.
> > 
> 
> You're right, it is for native packages only. That means this issue is
> really specific to clang or other toolchains with similar issues rather than
> being a general issue, which is good.
> 
> In this case, because llvm-config is built natively (as it needs to be run
> on the build host), and because llvm-config populates its --ldflags argument
> with the contents of BUILD_LDFLAGS, then the target build ends up inheriting
> all these flags.
> 
> > > 
> > > In case you're curious about the background of the issue, my project is
> > > using the output of llvm-config --ldflags to set its linker flags.
> > > llvm-config is populating the output --ldflags with whatever it is given for
> > > CXX_LINK_FLAGS. CXX_LINK_FLAGS is being populated by the generic cmake logic
> > > in cmake.bbclass, which is getting its flags from BUILD_LDFLAGS in
> > > meta/conf/bitbake.conf.
> > 
> > I think we shoud not need rpaths for target recipes. We should see if we
> > can just remove it atleast for /lib /usr/lib
> > 
> 
> I agree we should not need them. Of course I can run a sed line to remove
> the rpaths from LLVM_LDFLAGS from tools/llvm-config/BuildVariables.inc (and
> this works just fine). However, I think there's a deeper issue here: All the
> build-time flags that llvm-config spits out (--cppflags, --cflags,
> --cxxflags) probably need to be replaced with target versions of those
> variables.

Its fine to sed it out, we are trying to use llvm-confing in a cross env
and this seems to be less treaded path for it, it assumes you would use
it for building packages natively generally.

> 
> Do you agree with replacing all of those, or do you think we should replace
> only the rpaths?

yes please



More information about the Openembedded-core mailing list