[
https://issues.apache.org/jira/browse/MESOS-1754?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14118952#comment-14118952
]
Vinod Kone edited comment on MESOS-1754 at 9/3/14 8:45 PM:
-----------------------------------------------------------
Looks like some of the 3rd party deps are not included in the static archive
during libtool link step. Not sure if we are missing a flag or something. cc.
[~tstclair]
shared library includes glog and zookeeper for example.
{code}
libtool: link: g++ -shared -nostdlib /usr/lib/../lib64/crti.o
/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.1/crtbeginS.o
-Wl,--whole-archive ./.libs/libmesos_no_3rdparty.a
../3rdparty/libprocess/.libs/libprocess.a ./.libs/libjava.a
-Wl,--no-whole-archive
../3rdparty/libprocess/3rdparty/glog-0.3.3/.libs/libglog.a -L/usr/lib/../lib64
../3rdparty/leveldb/libleveldb.a
../3rdparty/zookeeper-3.4.5/src/c/.libs/libzookeeper_mt.a
../3rdparty/libprocess/3rdparty/protobuf-2.5.0/src/.libs/libprotobuf.a
/home/vinod/mesos/build/3rdparty/libprocess/3rdparty/glog-0.3.3/.libs/libglog.a
-lpthread
/home/vinod/mesos/build/3rdparty/libprocess/3rdparty/libev-4.15/.libs/libev.a
-lsasl2 -lcurl -lz -lrt /usr/lib64/libunwind.so -lgcc
-L/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.1
-L/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.1/../../../../lib64
-L/lib/../lib64
-L/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.1/../../..
-lstdc++ -lm -lc -lgcc_s
/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.1/crtendS.o
/usr/lib/../lib64/crtn.o -pthread -Wl,-soname -Wl,libmesos-0.21.0.so -o
.libs/libmesos-0.21.0.so
libtool: link: (cd ".libs" && rm -f "libmesos.so" && ln -s "libmesos-0.21.0.so"
"libmesos.so")
{code}
static archive doesn't include glog or zookeeper for example.
{code}
libtool: link: (cd .libs/libmesos.lax/libmesos_no_3rdparty.a && ar x
"/home/vinod/mesos/build/src/./.libs/libmesos_no_3rdparty.a")
libtool: link: (cd .libs/libmesos.lax/libprocess.a && ar x
"/home/vinod/mesos/build/src/../3rdparty/libprocess/.libs/libprocess.a")
libtool: link: (cd .libs/libmesos.lax/libjava.a && ar x
"/home/vinod/mesos/build/src/./.libs/libjava.a")
libtool: link: ar cru .libs/libmesos.a ../3rdparty/leveldb/libleveldb.a
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-state.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-docker.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libstate_la-zookeeper.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-group.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-detector.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-registrar.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-http.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-auxprop.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-gc.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/liblog_la-recover.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-type_utils.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-repairer.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-scheduler.pb.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-slave.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/lt2-libmesos_no_3rdparty_la-constants.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-files.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-usage.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-launch.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-authorizer.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-sched.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/liblog_la-consensus.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libstate_la-log.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-mem.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/liblog_la-coordinator.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/lt5-libmesos_no_3rdparty_la-containerizer.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-launcher.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-logging.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/liblog_la-initialize.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-isolator.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libstate_la-leveldb.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libbuild_la-build.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-values.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/liblog_la-catchup.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-resources.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/liblog_la-read.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-composing.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/liblog_la-log.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-external_containerizer.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-perf.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-attributes.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/lt1-liblog_la-replica.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-containerizer.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/lt1-libmesos_no_3rdparty_la-http.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libstate_la-in_memory.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/liblog_la-log.pb.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-scheduler.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/liblog_la-benchmark.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/liblog_la-replica.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-authentication.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/lt4-libmesos_no_3rdparty_la-docker.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-local.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-zookeeper.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-exec.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libstate_la-state.pb.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-messages.pb.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/lt6-libmesos_no_3rdparty_la-contender.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-master.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/lt3-libmesos_no_3rdparty_la-http.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-monitor.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-lock.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-cpushare.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-thread.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-cgroups.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-containerizer.pb.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-protobuf_utils.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-drf_sorter.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-linux_launcher.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-constants.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-contender.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/lt7-libmesos_no_3rdparty_la-detector.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/liblog_la-leveldb.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-status_update_manager.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-date_utils.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-mesos.pb.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-registry.pb.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-perf_event.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-fs.o
.libs/libmesos.lax/libprocess.a/libprocess_la-metrics.o
.libs/libmesos.lax/libprocess.a/libprocess_la-timeseries.o
.libs/libmesos.lax/libprocess.a/libprocess_la-http.o
.libs/libmesos.lax/libprocess.a/libprocess_la-reap.o
.libs/libmesos.lax/libprocess.a/libry_http_parser_la-http_parser.o
.libs/libmesos.lax/libprocess.a/libprocess_la-subprocess.o
.libs/libmesos.lax/libprocess.a/libprocess_la-process.o
.libs/libmesos.lax/libprocess.a/libprocess_la-pid.o
.libs/libmesos.lax/libprocess.a/libprocess_la-latch.o
.libs/libmesos.lax/libjava.a/libjava_la-org_apache_mesos_MesosSchedulerDriver.o
.libs/libmesos.lax/libjava.a/libjava_la-org_apache_mesos_state_LevelDBState.o
.libs/libmesos.lax/libjava.a/libjava_la-log4j.o
.libs/libmesos.lax/libjava.a/libjava_la-construct.o
.libs/libmesos.lax/libjava.a/libjava_la-org_apache_mesos_Log.o
.libs/libmesos.lax/libjava.a/libjava_la-convert.o
.libs/libmesos.lax/libjava.a/libjava_la-org_apache_mesos_state_ZooKeeperState.o
.libs/libmesos.lax/libjava.a/libjava_la-zookeeper.o
.libs/libmesos.lax/libjava.a/libjava_la-jvm.o
.libs/libmesos.lax/libjava.a/libjava_la-org_apache_mesos_MesosExecutorDriver.o
.libs/libmesos.lax/libjava.a/libjava_la-org_apache_mesos_state_Variable.o
.libs/libmesos.lax/libjava.a/libjava_la-org_apache_mesos_state_AbstractState.o
{code}
Perhaps orthogonal, but I'm not sure why we link non-libtool version of leveldb
(.a) instead of the libtool version (.la). There is a comment in the Makefile
but I don't understand it. It throws warnings like these. cc [~benjaminhindman]
{code}
/bin/sh ../libtool --tag=CC --tag=CXX --mode=link gcc -g
-Wno-unused-local-typedefs -release 0.21.0 -o libmesos.la -rpath
/usr/local/lib libmesos_no_3rdparty.la
../3rdparty/libprocess/3rdparty/glog-0.3.3/libglog.la
../3rdparty/leveldb/libleveldb.a
../3rdparty/zookeeper-3.4.5/src/c/libzookeeper_mt.la
../3rdparty/libprocess/3rdparty/protobuf-2.5.0/src/libprotobuf.la
../3rdparty/libprocess/libprocess.la libjava.la -lsasl2 -lcurl -lz -lrt
-lunwind
libtool: link: warning: `/usr/lib/../lib64/libunwind.la' seems to be moved
*** Warning: Linking the shared library libmesos.la against the
*** static library ../3rdparty/leveldb/libleveldb.a is not portable!
libtool: link: warning: `/usr/lib/../lib64/libunwind.la' seems to be moved
{code}
was (Author: vinodkone):
Looks like some of the 3rd party deps are not included in the static archive
during libtool link step. Not sure if we are missing a flag or something. cc.
[~tstclair]
shared library includes glog and zookeeper for example.
{code}
libtool: link: g++ -shared -nostdlib /usr/lib/../lib64/crti.o
/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.1/crtbeginS.o
-Wl,--whole-archive ./.libs/libmesos_no_3rdparty.a
../3rdparty/libprocess/.libs/libprocess.a ./.libs/libjava.a
-Wl,--no-whole-archive
../3rdparty/libprocess/3rdparty/glog-0.3.3/.libs/libglog.a -L/usr/lib/../lib64
../3rdparty/leveldb/libleveldb.a
../3rdparty/zookeeper-3.4.5/src/c/.libs/libzookeeper_mt.a
../3rdparty/libprocess/3rdparty/protobuf-2.5.0/src/.libs/libprotobuf.a
/home/vinod/mesos/build/3rdparty/libprocess/3rdparty/glog-0.3.3/.libs/libglog.a
-lpthread
/home/vinod/mesos/build/3rdparty/libprocess/3rdparty/libev-4.15/.libs/libev.a
-lsasl2 -lcurl -lz -lrt /usr/lib64/libunwind.so -lgcc
-L/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.1
-L/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.1/../../../../lib64
-L/lib/../lib64
-L/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.1/../../..
-lstdc++ -lm -lc -lgcc_s
/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.1/crtendS.o
/usr/lib/../lib64/crtn.o -pthread -Wl,-soname -Wl,libmesos-0.21.0.so -o
.libs/libmesos-0.21.0.so
{code}
static archive doesn't include glog or zookeeper for example.
{code}
libtool: link: ar cru .libs/libmesos.a ../3rdparty/leveldb/libleveldb.a
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-state.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-docker.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libstate_la-zookeeper.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-group.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-detector.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-registrar.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-http.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-auxprop.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-gc.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/liblog_la-recover.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-type_utils.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-repairer.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-scheduler.pb.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-slave.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/lt2-libmesos_no_3rdparty_la-constants.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-files.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-usage.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-launch.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-authorizer.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-sched.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/liblog_la-consensus.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libstate_la-log.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-mem.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/liblog_la-coordinator.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/lt5-libmesos_no_3rdparty_la-containerizer.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-launcher.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-logging.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/liblog_la-initialize.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-isolator.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libstate_la-leveldb.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libbuild_la-build.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-values.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/liblog_la-catchup.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-resources.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/liblog_la-read.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-composing.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/liblog_la-log.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-external_containerizer.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-perf.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-attributes.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/lt1-liblog_la-replica.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-containerizer.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/lt1-libmesos_no_3rdparty_la-http.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libstate_la-in_memory.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/liblog_la-log.pb.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-scheduler.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/liblog_la-benchmark.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/liblog_la-replica.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-authentication.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/lt4-libmesos_no_3rdparty_la-docker.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-local.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-zookeeper.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-exec.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libstate_la-state.pb.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-messages.pb.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/lt6-libmesos_no_3rdparty_la-contender.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-master.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/lt3-libmesos_no_3rdparty_la-http.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-monitor.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-lock.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-cpushare.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-thread.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-cgroups.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-containerizer.pb.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-protobuf_utils.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-drf_sorter.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-linux_launcher.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-constants.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-contender.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/lt7-libmesos_no_3rdparty_la-detector.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/liblog_la-leveldb.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-status_update_manager.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-date_utils.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-mesos.pb.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-registry.pb.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-perf_event.o
.libs/libmesos.lax/libmesos_no_3rdparty.a/libmesos_no_3rdparty_la-fs.o
.libs/libmesos.lax/libprocess.a/libprocess_la-metrics.o
.libs/libmesos.lax/libprocess.a/libprocess_la-timeseries.o
.libs/libmesos.lax/libprocess.a/libprocess_la-http.o
.libs/libmesos.lax/libprocess.a/libprocess_la-reap.o
.libs/libmesos.lax/libprocess.a/libry_http_parser_la-http_parser.o
.libs/libmesos.lax/libprocess.a/libprocess_la-subprocess.o
.libs/libmesos.lax/libprocess.a/libprocess_la-process.o
.libs/libmesos.lax/libprocess.a/libprocess_la-pid.o
.libs/libmesos.lax/libprocess.a/libprocess_la-latch.o
.libs/libmesos.lax/libjava.a/libjava_la-org_apache_mesos_MesosSchedulerDriver.o
.libs/libmesos.lax/libjava.a/libjava_la-org_apache_mesos_state_LevelDBState.o
.libs/libmesos.lax/libjava.a/libjava_la-log4j.o
.libs/libmesos.lax/libjava.a/libjava_la-construct.o
.libs/libmesos.lax/libjava.a/libjava_la-org_apache_mesos_Log.o
.libs/libmesos.lax/libjava.a/libjava_la-convert.o
.libs/libmesos.lax/libjava.a/libjava_la-org_apache_mesos_state_ZooKeeperState.o
.libs/libmesos.lax/libjava.a/libjava_la-zookeeper.o
.libs/libmesos.lax/libjava.a/libjava_la-jvm.o
.libs/libmesos.lax/libjava.a/libjava_la-org_apache_mesos_MesosExecutorDriver.o
.libs/libmesos.lax/libjava.a/libjava_la-org_apache_mesos_state_Variable.o
.libs/libmesos.lax/libjava.a/libjava_la-org_apache_mesos_state_AbstractState.o
{code}
Perhaps orthogonal, but I'm not sure why we link non-libtool version of leveldb
(.a) instead of the libtool version (.la). There is a comment in the Makefile
but I don't understand it. It throws warnings like these. cc [~benjaminhindman]
{code}
/bin/sh ../libtool --tag=CC --tag=CXX --mode=link gcc -g
-Wno-unused-local-typedefs -release 0.21.0 -o libmesos.la -rpath
/usr/local/lib libmesos_no_3rdparty.la
../3rdparty/libprocess/3rdparty/glog-0.3.3/libglog.la
../3rdparty/leveldb/libleveldb.a
../3rdparty/zookeeper-3.4.5/src/c/libzookeeper_mt.la
../3rdparty/libprocess/3rdparty/protobuf-2.5.0/src/libprotobuf.la
../3rdparty/libprocess/libprocess.la libjava.la -lsasl2 -lcurl -lz -lrt
-lunwind
libtool: link: warning: `/usr/lib/../lib64/libunwind.la' seems to be moved
*** Warning: Linking the shared library libmesos.la against the
*** static library ../3rdparty/leveldb/libleveldb.a is not portable!
libtool: link: warning: `/usr/lib/../lib64/libunwind.la' seems to be moved
{code}
> 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)