Open cconvey opened 6 years ago
libiomp5.so
libgomp.so
libsoxr.so.0
libopencv_core.so.2.4 libavformat-ffmpeg.so.56 libavcodec-ffmpeg.so.56 libswresample-ffmpeg.so.1 libsoxr.so.0 libgomp.so.1
In practice it's not possible:
libsoxr.so,0
$ readelf -d /usr/lib/x86_64-linux-gnu/libsoxr.so.0 | grep -i omp 0x0000000000000001 (NEEDED) Shared library: [libgomp.so.1]
master
-fopenmp={libgomp|libiomp5}
libgomp.so.1
Root of the conflict
libiomp5.so
for several reasons, including:libiomp5.so
.libiomp5.so
, notlibgomp.so
.libgomp.so
, via the Ubuntu-supplied version oflibsoxr.so.0
, via this dependence chain:Drop-in equivalence (at dynamic linking time) of
libgomp.so
andlibiomp5.so
In practice it's not possible:
libgomp.so
sometimes depends on dynamic symbols not provided bylibiomp5.so
. See herelibiomp5.so
at runtime can be satisfied by the implementation provided bylibgomp.so
.libsoxr.so,0
is overly (IMO) dependent onlibgomp.so
: It stipulates the filename as well:Compiler / static-linker support for OMP library selection:
libgomp.so
specifically.master
, maybe earlier) is more flexible: It supports-fopenmp={libgomp|libiomp5}
, and generates appropriate object code.Possible solutions
libsoxr.so.0
that depends onlibiomp5.so
instead oflibgomp.so
libsoxr.so.0
to replacelibgomp.so.1
withlibiomp5.so
.Additional notes for implementors