[ https://issues.apache.org/jira/browse/MESOS-2486?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Gavin updated MESOS-2486: ------------------------- Comment: was deleted (was: www.rtat.net) > With unbundled dependencies Mesos doesn't build with > -Wl,--no-copy-dt-needed-entries > ------------------------------------------------------------------------------------ > > Key: MESOS-2486 > URL: https://issues.apache.org/jira/browse/MESOS-2486 > Project: Mesos > Issue Type: Bug > Components: build > Affects Versions: 0.22.0 > Environment: Ubuntu 14.10 > Reporter: Cody Maloney > Assignee: Cody Maloney > Priority: Blocker > Labels: mesosphere > > To build a module, glog, protobuf, and boost need to be unbundled so they can > be used by both the module as well as Mesos. > In a bundled build, we build the libraries into libmesos.la / libmesos.so, so > every program picks them up. > In unbundled dependencies are used, we link against all of the dynamic > libraries / .so files manually. We link libmesos.so against them, then link > all the other programs against libmesos.so to get the dependencies. > This relies on the DT_NEEDED flag "copying" the .so's dependencies into the > executable. [Ubuntu and > Debian|https://wiki.ubuntu.com/ToolChain/CompilerFlags#A-Wl.2C--no-copy-dt-needed-entries] > forcibly add the flag `-Wl,--no-copy-dt-needed-entries` to the linker to > disable this. > This breaks the build with unbundled dependencies on those platforms. Some > sample error messages: > {code} > /usr/bin/ld: log/mesos_log-main.o: undefined reference to symbol > '_ZN6google4base21CheckOpMessageBuilder7ForVar2Ev' > /usr/bin/ld: local/mesos_local-main.o: undefined reference to symbol > '_ZN6google4base21CheckOpMessageBuilder7ForVar2Ev' > cli/mesos-mesos.o: In function `os::getenv(std::string const&, bool) [clone > .part.30]': > mesos.cpp:(.text.unlikely+0x2b): undefined reference to > `google::LogMessageFatal::LogMessageFatal(char const*, int)' > mesos.cpp:(.text.unlikely+0x33): undefined reference to > `google::LogMessage::stream()' > mesos.cpp:(.text.unlikely+0x66): undefined reference to > `google::LogMessageFatal::~LogMessageFatal()' > collect2: error: ld returned 1 exit status > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)