RenderKit / ospray

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

Superbuild shared library versions #386

Closed paulmelis closed 4 years ago

paulmelis commented 4 years ago

These might not strictly be related to OSPRay, but I see these issues when doing the superbuild. Library variants (.so, .so.<version>, etc) are not installed with symlinks, but as copies for libembree3.so and libOpenImageDenoise.so:

paulm@cmstorm 14:32:~/software/ospray-superbuild-git$ ls -l lib/
total 223148
-rwxr-xr-x 1 paulm paulm 45709752 dec  9 14:25 libembree3.so
-rwxr-xr-x 1 paulm paulm 45709752 dec  9 14:25 libembree3.so.3
...
-rwxr-xr-x 1 paulm paulm 40778269 dec  9 14:25 libOpenImageDenoise.so
-rwxr-xr-x 1 paulm paulm 40778269 dec  9 14:25 libOpenImageDenoise.so.0
-rwxr-xr-x 1 paulm paulm 40778269 dec  9 14:25 libOpenImageDenoise.so.1.0.0

This is probably because I'm using BUILD_EMBREE_FROM_SOURCE=OFF and BUILD_OIDN_FROM_SOURCE=OFF, but building Embree from source doesn't seem to work, as it can't find ISPC during the build, even though I'm using DOWNLOAD_ISPC=ON.

The above merely wastes disk space, but what's weirder is that for libtbb.so and libtbbmalloc.so the variants appear to be different libraries and I'm wondering about the potential consequences of that fact:

-rwxr-xr-x 1 paulm paulm   167808 dec  9 14:25 libtbbmalloc.so
-rwxr-xr-x 1 paulm paulm   789206 dec  9 14:25 libtbbmalloc.so.2
-rwxr-xr-x 1 paulm paulm   357096 dec  9 14:25 libtbb.so
-rwxr-xr-x 1 paulm paulm  2155173 dec  9 14:25 libtbb.so.2

This is with building in an empty build directory and installing to an empty destination directory with the following config and build commands:

paulm@cmstorm 14:35:~/c/ospray-git/superbuild$ cat .conf.sh 
#!/bin/sh
cmake \
    -DCMAKE_INSTALL_PREFIX=$HOME/software/ospray-superbuild-git \
    -DCMAKE_BUILD_TYPE=Release \
    -DBUILD_JOBS=8 \
    -DBUILD_EMBREE_FROM_SOURCE=OFF \
    -DBUILD_OIDN=ON \
    -DBUILD_OIDN_FROM_SOURCE=OFF \
    -DINSTALL_IN_SEPARATE_DIRECTORIES=OFF \
    -DDOWNLOAD_ISPC=ON \
    ../scripts/superbuild

paulm@cmstorm 14:35:~/c/ospray-git/superbuild$ cat .build.sh 
#!/bin/sh
cmake --build .
paulmelis commented 4 years ago

One more bit of information, just noticed that the files differ in having debug symbols or not:


paulm@cmstorm 15:40:~/software/ospray-superbuild-git/lib$ file libtbb.so
libtbb.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=d16d9a54229bc7465316a70d80311fdd7257cb67, not stripped
paulm@cmstorm 15:40:~/software/ospray-superbuild-git/lib$ file libtbb.so.2 
libtbb.so.2: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=1aa5c9bb536cda1bc63b8b6be30bd6a32b18d5f3, with debug_info, not stripped
``
johguenther commented 4 years ago

Symlinks to libraries OSPRay depends on have been fixed in v2.3.