[llvm] r201921 - Use relative rpath so that the installation and build dirs are relocatable.

Tobias Grosser tobias at grosser.es
Sat Feb 22 05:40:31 PST 2014


On 02/22/2014 05:01 AM, Rafael EspĂ­ndola wrote:
>> Hi Raphael,
>>
>> this one broke the polly build, because the libraries we are linking (libisl
>> and libcloog) are not anymore in the rpath (and they are also not in the
>> LD_LIBRARY_PATH). Is this change intended? Do you have an idea how to
>> proceed? Is this a problem with your change, should I fix the Polly cmake or
>> should we now always put such libraries into the LD_LIBRARY_PATH? (changing
>> the buildbots may take a little).
>
> It is this one:
> http://lab.llvm.org:8011/builders/polly-amd64-linux/builds/15464/steps/test_polly/logs/stdio,
> right?

Yes.

> Was the rpath of LLVMPolly.so being set in some way?

I did not do anything specific. Also, when running 'grep -R rpath 
tools/polly' only a couple of autoconf files match, but no file that 
contains cmake.

 > What was it?
 >
 > My
> understanding is that cmake was always setting it to the absolute path
> before, which looks to be
> /home/grosser/buildslave/polly-amd64-linux/llvm.obj/lib/. Now it
> should be $ORIGIN/../lib, which should be the same directory.


> Where is libisl.so.10?

/home/grosser/buildslave/polly-amd64-linux/cloog.install.lib

> Does it work when building with configure?

No, with configure it seems no rpath is set and I need to explicitly set 
LD_LIBRARY_PATH. The cmake behaviour now matches the autoconf behaviour. 
I earlier cmake behaviour was more convenient, but if there are reasons 
to go with the autoconf behaviour we can probably do this.
In case this is necessary, I can change the buildcommands and ask Galina 
to restart the buildbots on Monday.

 > What is the rpath you get
> in LLVMPolly.so?

On my home system I got the following:

Without your patch applied:

$ objdump -x lib/LLVMPolly.so |grep RPATH
   RPATH 
/home/grosser/Projects/polly/build/lib:/store/grosser/Projects/polly/tools/install/cloog/lib:

With your patch applied:

$ objdump -x lib/LLVMPolly.so |grep RPATH
   RPATH                $ORIGIN/../lib

It seems the path that contains polly is lost.

Tobias



More information about the llvm-commits mailing list