Dear Sam,
On 06/11/2018 16:56, Sam Moors wrote:
Dear Easybuilders,
There is something about dependencies that I don't quite understand.
I was trying to build OpenImageIO-1.8.16 with the foss/2018b toolchain,
which fails because the libpng dep is not linking against the correct
zlib (1.2.11), although zlib is a dep of libpng.
If I add zlib as a dependency, or if I explicitly add the zlib linking
path, OpenImageIO builds without a problem.
So why is zlib not added automatically?
There's a subtle difference between direct and indirect dependencies.
Only for direct dependencies, the corresponding lib(64) subdirectories
are listed in $LDFLAGS in the build environment that is set up by
EasyBuild, for example (from an OpenImageIO build log):
== 2018-10-14 15:09:53,374 environment.py:97 INFO Environment variable
LDFLAGS set to ...
-L/prefix/software/libjpeg-turbo/1.5.2-GCCcore-6.3.0/lib
-L/prefix/software/LibTIFF/4.0.8-intel-2017a/lib
-L/prefix/software/OpenEXR/2.2.0-intel-2017a/lib (previously undefined)
So if you don't include zlib as a direct dependency, the lib
subdirectory for zlib will not be listed there.
Usually that doesn't matter because the zlib module updates
$LIBRARY_PATH with the location of the libraries, which should get
picked up by the compiler/linker as well...
Why that doesn't work in this particular case, I'm not quite sure.
Maybe the OpenImage build procedure does a hard reset of $LIBRARY_PATH?
regards,
Kenneth