Closed ghisvail closed 9 years ago
I have dpkg-shlibdeps
installed. Could you, please, show how exactly do I come to that warnings?
This is part of the package build process. AFAIK, this cannot be reproduced outside the package build environment.
The output is self-explanatory though. For instance,
dpkg-shlibdeps: warning: symbol _ZN3aclmiIN3asl4AVecIdEEEENS_16VectorOfElementsERKS4_RKT_ used by debian/libasl0/usr/lib/x86_64-linux-gnu/libasldata.so.0.1.5 found in none of the libraries
libasldata
uses VectorOfElements
which is provided by libaslmath
. However, there is no explicit linkage between both in src/data/CMakeLists.txt
.
VectorOfElements
is provided by libaslmath
?Maybe fixing this issue will fix the issue #11...
Maybe fixing this issue will fix the issue #11...
This is very likely.
I can't confirm this bug. Symbols are defined here, e.g.:
$ symlookup -q _ZN3acl12KERNEL_BASICE -p /usr/lib64
/usr/lib64/libaslacl.so.0.1.5: _ZN3acl12KERNEL_BASICE
And so on.
And I'm not sure this bug is strongly related #11, since #11 can be fixed be manually by fixing order of libraries, as I wrote in one of the comments.
with the latest git HEAD:
dpkg-shlibdeps: warning: symbol _ZN5boost6system15system_categoryEv used by debian/libasl0/usr/lib/x86_64-linux-gnu/libaslvtk.so.0.1.5 found in none of the libraries
dpkg-shlibdeps: warning: symbol _ZN3asl27generateDataContainerACL_SPERKNS_5BlockEN3acl6TypeIDEjjSt10shared_ptrIN2cl12CommandQueueEE used by debian/libasl0/usr/lib/x86_64-linux-gnu/libaslvtk.so.0.1.5 found in none of the libraries
dpkg-shlibdeps: warning: symbol _ZNK5boost10filesystem4path9extensionEv used by debian/libasl0/usr/lib/x86_64-linux-gnu/libaslvtk.so.0.1.5 found in none of the libraries
dpkg-shlibdeps: warning: symbol _ZN3asl6offsetERKNS_5BlockEi used by debian/libasl0/usr/lib/x86_64-linux-gnu/libaslvtk.so.0.1.5 found in none of the libraries
dpkg-shlibdeps: warning: symbol _ZN5boost6system16generic_categoryEv used by debian/libasl0/usr/lib/x86_64-linux-gnu/libaslvtk.so.0.1.5 found in none of the libraries
dpkg-shlibdeps: warning: symbol _ZN3asl6WriterC2ERKSs used by debian/libasl0/usr/lib/x86_64-linux-gnu/libaslvtk.so.0.1.5 found in none of the libraries
dpkg-shlibdeps: warning: symbol _ZN3acl9typeToStrIjEERKSsv used by debian/libasl0/usr/lib/x86_64-linux-gnu/libaslcommon.so.0.1.5 found in none of the libraries
dpkg-shlibdeps: warning: symbol _ZN3acl9typeToStrIlEERKSsv used by debian/libasl0/usr/lib/x86_64-linux-gnu/libaslcommon.so.0.1.5 found in none of the libraries
dpkg-shlibdeps: warning: symbol _ZN3acl9typeToStrIdEERKSsv used by debian/libasl0/usr/lib/x86_64-linux-gnu/libaslcommon.so.0.1.5 found in none of the libraries
dpkg-shlibdeps: warning: symbol _ZN3acl9typeToStrIiEERKSsv used by debian/libasl0/usr/lib/x86_64-linux-gnu/libaslcommon.so.0.1.5 found in none of the libraries
dpkg-shlibdeps: warning: symbol _ZN3acl9typeToStrIfEERKSsv used by debian/libasl0/usr/lib/x86_64-linux-gnu/libaslcommon.so.0.1.5 found in none of the libraries
dpkg-shlibdeps: warning: symbol _ZTIN3asl9NumMethodE used by debian/libasl0/usr/lib/x86_64-linux-gnu/libaslnumext.so.0.1.5 found in none of the libraries
dpkg-shlibdeps: warning: symbol _ZN3asl9NumMethodD2Ev used by debian/libasl0/usr/lib/x86_64-linux-gnu/libaslnumext.so.0.1.5 found in none of the libraries
so much less, but still some missing linkage apparently.
dpkg-shlibdeps: warning: symbol _ZN5boost6system15system_categoryEv used by debian/libasl0/usr/lib/x86_64-linux-gnu/libaslvtk.so.0.1.5 found in none of the libraries
This is missing linkage between libaslvtk
and libboost_system
dpkg-shlibdeps: warning: symbol _ZNK5boost10filesystem4path9extensionEv used by debian/libasl0/usr/lib/x86_64-linux-gnu/libaslvtk.so.0.1.5 found in none of the libraries
This is missing linkage between libaslvtk
and libboost_filesystem
I have some time now, so I might come up with a patch soon if you're patient
dpkg-shlibdeps: warning: symbol _ZN3acl9typeToStrIjEERKSsv used by debian/libasl0/usr/lib/x86_64-linux-gnu/libaslcommon.so.0.1.5 found in none of the libraries
So libaslcommon
depends on libaslacl
but libaslacl
already depends on libaslcommon
:
add_library(aslacl ${aslacl_PUBLIC_HEADERS} ${aslacl_SOURCES})
target_link_libraries(aslacl PUBLIC aslcommon ${OpenCL_LIBRARIES})
INSTALL_SUBLIB(aslacl aslacl_PUBLIC_HEADERS)
dpkg-shlibdeps: warning: symbol _ZTIN3asl9NumMethodE used by debian/libasl0/usr/lib/x86_64-linux-gnu/libaslnumext.so.0.1.5 found in none of the libraries
libaslnumext
depends on libaslnum
dpkg-shlibdeps: warning: symbol _ZN3asl6offsetERKNS_5BlockEi used by debian/libasl0/usr/lib/x86_64-linux-gnu/libaslvtk.so.0.1.5 found in none of the libraries
libaslvtk
depends on libasl
I managed to reduce this issue to the following warnings:
dpkg-shlibdeps: warning: symbol _ZN3acl9typeToStrIdEERKSsv used by debian/libasl0/usr/lib/x86_64-linux-gnu/libaslcommon.so.0.1.5 found in none of the libraries
dpkg-shlibdeps: warning: symbol _ZN3acl9typeToStrIlEERKSsv used by debian/libasl0/usr/lib/x86_64-linux-gnu/libaslcommon.so.0.1.5 found in none of the libraries
dpkg-shlibdeps: warning: symbol _ZN3acl9typeToStrIfEERKSsv used by debian/libasl0/usr/lib/x86_64-linux-gnu/libaslcommon.so.0.1.5 found in none of the libraries
dpkg-shlibdeps: warning: symbol _ZN3acl9typeToStrIjEERKSsv used by debian/libasl0/usr/lib/x86_64-linux-gnu/libaslcommon.so.0.1.5 found in none of the libraries
dpkg-shlibdeps: warning: symbol _ZN3acl9typeToStrIiEERKSsv used by debian/libasl0/usr/lib/x86_64-linux-gnu/libaslcommon.so.0.1.5 found in none of the libraries
which I can't fix trivially due to the cyclic dependency between libaslcommon
and libacl
, you guys might want to move things around to remove the cycling coupling.
I hope it is fixed now. Please check.
Instead of doing this commit: 0c03aee119148b74976b1af3c3ae8e9744c11a39
It would have been better to first merge my PR (#14) and then fix the remaining cyclic dependency issue. Now, my contribution is gone. This sort of practice may drive external contributions away in the future, myself included.
I'm sorry, @ghisvail - we'll pay attention to this in the future
Is it fixed now?
On building the binary packages for Debian,
dpkg-shlibdeps
threw a large amount of warnings related to missing symbols. This is most likely a consequence of underlinkage.The following build options were used:
And the following warnings were generated: