[OE-core] Default rpaths in BUILD_LDFLAGS

Martin Kelly mkelly at xevo.com
Wed Mar 8 21:56:12 UTC 2017


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.

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



More information about the Openembedded-core mailing list