[ https://issues.apache.org/jira/browse/MESOS-1010?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14697447#comment-14697447 ]
Greg Mann commented on MESOS-1010: ---------------------------------- After a bit of testing, it looks like option B from above, altering the Mesos configuration to detect installed gflags and link against them when compiling {{_mesos.so}}, offers one big advantage: it will lead to a properly functioning Python module if the user has elected to use their own system glog via {{--with-glog=...}}. Even if they have a system glog that was NOT built with the gflags installation present on their system, linking against the system's gflags when building {{_mesos.so}} still produces a working module. Thus, this solution leads to a correct Python module build for all cases, and I would advocate for it. I'm currently implementing, and will hopefully have a patch soon, but feel free to chime in with any thoughts/concerns on this approach. > Python extension build is broken if gflags-dev is installed > ----------------------------------------------------------- > > Key: MESOS-1010 > URL: https://issues.apache.org/jira/browse/MESOS-1010 > Project: Mesos > Issue Type: Bug > Components: build, python api > Environment: Fedora 20, amd64, GCC: 4.8.2; OSX 10.10.4, Apple LLVM > 6.1.0 (~LLVM 3.6.0) > Reporter: Nikita Vetoshkin > Assignee: Greg Mann > Labels: flaky-test, mesosphere > > In my environment mesos build from master results in broken python api module > {{_mesos.so}}: > {noformat} > nekto0n@ya-darkstar ~/workspace/mesos/src/python $ > PYTHONPATH=build/lib.linux-x86_64-2.7/ python -c "import _mesos" > Traceback (most recent call last): > File "<string>", line 1, in <module> > ImportError: > /home/nekto0n/workspace/mesos/src/python/build/lib.linux-x86_64-2.7/_mesos.so: > undefined symbol: _ZN6google14FlagRegistererC1EPKcS2_S2_S2_PvS3_ > {noformat} > Unmangled version of symbol looks like this: > {noformat} > google::FlagRegisterer::FlagRegisterer(char const*, char const*, char const*, > char const*, void*, void*) > {noformat} > During {{./configure}} step {{glog}} finds {{gflags}} development files and > starts using them, thus *implicitly* adding dependency on {{libgflags.so}}. > This breaks Python extensions module and perhaps can break other mesos > subsystems when moved to hosts without {{gflags}} installed. > This task is done when the ExamplesTest.PythonFramework test will pass on a > system with gflags installed. -- This message was sent by Atlassian JIRA (v6.3.4#6332)