You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@mesos.apache.org by "Gavin (JIRA)" <ji...@apache.org> on 2019/04/29 09:28:02 UTC

[jira] [Issue Comment Deleted] (MESOS-2486) With unbundled dependencies Mesos doesn't build with -Wl,--no-copy-dt-needed-entries

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