[ 
https://issues.apache.org/jira/browse/MESOS-1754?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14120355#comment-14120355
 ] 

Timothy St. Clair commented on MESOS-1754:
------------------------------------------

For static libraries 'ar' is called to smush the .o files into a .a. Typically 
there is no link step / symbol resolution for .a files (only .so and 
executables) so there is no merging of .a files by default.  

A versioned .so forces linkage, hence it will force symbol resolution. 

> 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)

Reply via email to