RenderKit / ospray

An Open, Scalable, Portable, Ray Tracing Based Rendering Engine for High-Fidelity Visualization
http://ospray.org
Apache License 2.0
1k stars 182 forks source link

Make install places libraries in lib64, but sets RPATH to lib (devel branch) #334

Closed paulmelis closed 5 years ago

paulmelis commented 5 years ago

I wanted to try out the devel branch so built it locally (was using binaries for 1.8.x so far). Make install works, but the RPATH values do not point to the right place (lib instead of lib64):

paulm@llt0022:~/software/ospray-devel-git/bin$ ./ospTutorialBoxes 
./ospTutorialBoxes: symbol lookup error: ./ospTutorialBoxes: undefined symbol: ospNewWorld

paulm@llt0022:~/software/ospray-devel-git/bin$ ldd ./ospTutorialBoxes | grep ospray
    libospray_testing.so.0 => /usr/lib/libospray_testing.so.0 (0x00007f1378c0a000)
    libospray.so.0 => /usr/lib/libospray.so.0 (0x00007f1378bcc000)
    libospray_imgui.so.0 => /usr/lib/libospray_imgui.so.0 (0x00007f1378b05000)
    libospray_common.so.0 => /usr/lib/libospray_common.so.0 (0x00007f1378ad1000)

paulm@llt0022:~/software/ospray-devel-git/bin$ readelf -d ospTutorialBoxes | grep RPATH
 0x000000000000000f (RPATH)              Library rpath: [$ORIGIN:$ORIGIN/../lib]

paulm@llt0022:~/software/ospray-devel-git/bin$ ls -l ../lib
ls: cannot access '../lib': No such file or directory
paulm@llt0022:~/software/ospray-devel-git/bin$ ls -l ../lib64
total 9736
drwxr-xr-x 3 paulm paulm    4096 Jul  1 11:52 cmake
lrwxrwxrwx 1 paulm paulm      21 Jul  1 11:52 libospray_common.so -> libospray_common.so.0
lrwxrwxrwx 1 paulm paulm      25 Jul  1 11:52 libospray_common.so.0 -> libospray_common.so.2.0.0
-rwxr-xr-x 1 paulm paulm  265560 Jul  1 11:37 libospray_common.so.2.0.0
lrwxrwxrwx 1 paulm paulm      20 Jul  1 11:52 libospray_imgui.so -> libospray_imgui.so.0
lrwxrwxrwx 1 paulm paulm      24 Jul  1 11:52 libospray_imgui.so.0 -> libospray_imgui.so.2.0.0
-rwxr-xr-x 1 paulm paulm  712456 Jul  1 11:44 libospray_imgui.so.2.0.0
lrwxrwxrwx 1 paulm paulm      26 Jul  1 11:52 libospray_module_ispc.so -> libospray_module_ispc.so.0
lrwxrwxrwx 1 paulm paulm      30 Jul  1 11:52 libospray_module_ispc.so.0 -> libospray_module_ispc.so.2.0.0
-rwxr-xr-x 1 paulm paulm 8415760 Jul  1 11:52 libospray_module_ispc.so.2.0.0
lrwxrwxrwx 1 paulm paulm      14 Jul  1 11:52 libospray.so -> libospray.so.0
lrwxrwxrwx 1 paulm paulm      18 Jul  1 11:52 libospray.so.0 -> libospray.so.2.0.0
-rwxr-xr-x 1 paulm paulm  344448 Jul  1 11:37 libospray.so.2.0.0
lrwxrwxrwx 1 paulm paulm      22 Jul  1 11:52 libospray_testing.so -> libospray_testing.so.0
lrwxrwxrwx 1 paulm paulm      26 Jul  1 11:52 libospray_testing.so.0 -> libospray_testing.so.2.0.0
-rwxr-xr-x 1 paulm paulm  143728 Jul  1 11:44 libospray_testing.so.2.0.0
-rw-r--r-- 1 paulm paulm   70518 Jul  1 11:44 libtutorial_common.a

paulm@llt0022:~/c/ospray-git/build$ grep CMAKE_INSTALL_LIBDIR CMakeCache.txt 
CMAKE_INSTALL_LIBDIR:PATH=lib64
paulmelis commented 5 years ago

This is made worse by the use of RPATH in the binaries, which cannot be overridden by LD_LIBRARY_PATH (while RUNPATH can). But I guess this is standard practice in CMake builds these days?

jeffamstutz commented 5 years ago

Hi,

I took care of this just now (sorry it took so long for us to get to it!). Once it passes our internal CI tests it will end up on devel. I'll ping this thread when that gets pushed.

jeffamstutz commented 5 years ago

Ok, have a look at 9a0d61d22, which is now on devel. If you have other issues, please let us know.

FWIW, you can set OSPRAY_ZIP_MODE=OFF to disable rpath, as rpath is intended to create "standalone" zip packages (this feature is ON by default).

paulmelis commented 5 years ago

Thanks, that fixed it