[
https://issues.apache.org/jira/browse/MESOS-1754?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14120278#comment-14120278
]
Vinod Kone commented on MESOS-1754:
-----------------------------------
Hi [~tstclair], not sure how versioned .so solves this problem?
Shouldn't libtool/automake merge the archives correctly when we do *_LIBADD ?
It seems to do the right thing for .so but not for .a. IIUC, the linker
will/should copy all the required/referenced symbols from the linked archive
even if it doesn't pull in all the symbols in the archive? Maybe it has to do
with the fact that we have an intermediate non-installable convenience library
(libmesos_no_3rdparty) or the fact that we have installable 3rd party libraries
(libglog.a etc) ?
> Mesos static library has undefined symbols from 3rd party deps
> --------------------------------------------------------------
>
> Key: MESOS-1754
> URL: https://issues.apache.org/jira/browse/MESOS-1754
> Project: Mesos
> Issue Type: Bug
> Affects Versions: 0.20.0
> Reporter: Vinod Kone
> Assignee: Vinod Kone
>
> Looks like the static libmesos library that we build is missing some symbols
> from 3rd party deps (e.g, GLOG, ZooKeeper). I suspect this has to do with the
> order of libraries defined on the linker command line.
> {code}
> zookeeper_init symbol is present in .so but not in .a.
> $ nm libmesos.so | grep zookeeper_init
> 00000000030519f0 T zookeeper_init
> $ nm libmesos.a | grep zookeeper_init
> nm: libleveldb.a: File format not recognized
> U zookeeper_init
> Same with google::InstallFailureSignalHandler.
> $ nm libmesos.so | grep InstallFailureSignalHandler
> 000000000301901d T _ZN6google27InstallFailureSignalHandlerEv
> $ nm libmesos.a | grep InstallFailureSignalHandler
> nm: libleveldb.a: File format not recognized
> U _ZN6google27InstallFailureSignalHandlerEv
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)