#525 [source] missing -lzmq for libtango

closed
Source distribution
5
2013-07-09
2012-08-18
No

Hello, during the preparationof the Debian package of tango8, I got a few error message like these ones.

dpkg-shlibdeps: warning: symbol zmq_connect used by debian/libtango8/usr/lib/i386-linux-gnu/libtango.so.8.0.5 found in none of the libraries
dpkg-shlibdeps: warning: symbol zmq_msg_init_data used by debian/libtango8/usr/lib/i386-linux-gnu/libtango.so.8.0.5 found in none of the libraries
dpkg-shlibdeps: warning: symbol zmq_strerror used by debian/libtango8/usr/lib/i386-linux-gnu/libtango.so.8.0.5 found in none of the libraries
dpkg-shlibdeps: warning: symbol zmq_msg_init_size used by debian/libtango8/usr/lib/i386-linux-gnu/libtango.so.8.0.5 found in none of the libraries
dpkg-shlibdeps: warning: symbol zmq_setsockopt used by debian/libtango8/usr/lib/i386-linux-gnu/libtango.so.8.0.5 found in none of the libraries
dpkg-shlibdeps: warning: symbol zmq_init used by debian/libtango8/usr/lib/i386-linux-gnu/libtango.so.8.0.5 found in none of the libraries
dpkg-shlibdeps: warning: symbol zmq_socket used by debian/libtango8/usr/lib/i386-linux-gnu/libtango.so.8.0.5 found in none of the libraries
dpkg-shlibdeps: warning: symbol zmq_recvmsg used by debian/libtango8/usr/lib/i386-linux-gnu/libtango.so.8.0.5 found in none of the libraries
dpkg-shlibdeps: warning: symbol zmq_poll used by debian/libtango8/usr/lib/i386-linux-gnu/libtango.so.8.0.5 found in none of the libraries
dpkg-shlibdeps: warning: symbol zmq_msg_copy used by debian/libtango8/usr/lib/i386-linux-gnu/libtango.so.8.0.5 found in none of the libraries

when looking in the build log I check that no -lzmw flags was used for libtango.

this flag is used by the devices but not for the library.

See you

Fred

Discussion

  • Emmanuel Taurel

    Emmanuel Taurel - 2012-08-29

    Hi Fred,

    I don't really get the point here. When you build the lib, you do not need to link with zmq (or omniORB libs). Could you be more precise?

    Regards

    Emmanuel

     
  • Emmanuel Taurel

    Emmanuel Taurel - 2012-08-29
    • assigned_to: andy_gotz --> taurel
     
  • Frédéric PICCA

    Hello manu,

    In fact when you build tango you link the code with omniORB even if you did not add it explicitely in the Makefile.am

    look here the link part of the libtango

    libtool: link: g++ -fPIC -DPIC -shared -nostdlib /usr/lib/gcc/i486-linux-gnu/4.7/../../../i386-linux-gnu/crti.o /usr/lib/gcc/i486-linux-gnu/4.7/crtbeginS.o .libs/tango
    SK.o .libs/tangoDynSK.o .libs/attrdesc.o .libs/attribute.o .libs/attrmanip.o .libs/basiccommand.o .libs/blackbox.o .libs/class_factory.o .libs/classattribute.o .libs/com
    mand.o .libs/coutappender.o .libs/dev_event.o .libs/dev_poll.o .libs/device.o .libs/device_2.o .libs/device_3.o .libs/device_4.o .libs/deviceclass.o .libs/devicelog.o .l
    ibs/dserver.o .libs/dserverclass.o .libs/dserverlock.o .libs/dserverlog.o .libs/dserverpoll.o .libs/dserversignal.o .libs/encoded_attribute.o .libs/eventcmds.o .libs/eve
    ntsupplier.o .libs/except.o .libs/logcmds.o .libs/logging.o .libs/logstream.o .libs/multiattribute.o .libs/notifdeventsupplier.o .libs/pollcmds.o .libs/pollobj.o .libs/p
    ollring.o .libs/pollthread.o .libs/seqvec.o .libs/subdev_diag.o .libs/tangoappender.o .libs/tangorollingfileappender.o .libs/thsig.o .libs/utils.o .libs/utils_polling.o
    .libs/utils_shut.o .libs/w_attribute.o .libs/zmqeventsupplier.o -Wl,--whole-archive ../client/.libs/libclient.a jpeg/.libs/libjpeg.a jpeg_mmx/.libs/libjpeg_mmx.a -Wl,--
    no-whole-archive -Wl,-rpath -Wl,/tmp/buildd/tango-8.0.5+dfsg/build/lib/cpp/log4tango/src/.libs -L/usr/lib ../log4tango/src/.libs/liblog4tango.so -lzmq -ldl -lomniORB4 -
    lomniDynamic4 -lCOS4 -lnsl -lomnithread -lpthread -L/usr/lib/gcc/i486-linux-gnu/4.7 -L/usr/lib/gcc/i486-linux-gnu/4.7/../../../i386-linux-gnu -L/usr/lib/gcc/i486-linux-g
    nu/4.7/../../../../lib -L/lib/i386-linux-gnu -L/lib/../lib -L/usr/lib/i386-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/i486-linux-gnu/4.7/../../.. -lstdc++ -lm -lc -lgcc_
    s /usr/lib/gcc/i486-linux-gnu/4.7/crtendS.o /usr/lib/gcc/i486-linux-gnu/4.7/../../../i386-linux-gnu/crtn.o -O2 -Wl,-z -Wl,relro -Wl,-soname -Wl,libtango.so.8 -o .libs
    /libtango.so.8.0.5

    there is the -lomniORB4 etc... this is because the configure.in add automatically the omniORB library flags to the general link flag. (it would be nice to use also PKG_CONFIG for omniorb4)
    But when you use the PKG_CONFIG system for zmq it doesn not add zmq to the general link flag of the project.
    Indeed libtango use zmq symbols, so you need to explicitely add zmq to the libtango library.

    The attached patch solve this issue.

    If I do not use this patch , the Debian build system do not generate the right package dependency
    (libtango does not depends of libzmq) -> I can not build PyTango8

     
  • Emmanuel Taurel

    Emmanuel Taurel - 2013-06-06
    • Category: --> Source distribution
     
  • Emmanuel Taurel

    Emmanuel Taurel - 2013-07-09
    • Status: open --> closed
     

Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:





No, thanks