[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