[
https://issues.apache.org/jira/browse/MESOS-1000?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13900852#comment-13900852
]
Till Toenshoff commented on MESOS-1000:
---------------------------------------
Re 3) I think we are missing a deferred overload for C++11. Adding a const
Future<Option<int>>& to the parameter list of "exited" as well as adding a
lambda::_1 to the defer call mentioned above fixes this particular issue. In
other words, defer on a future must have its type supplied in the list of
parameters for the current C++11 version.
Which then opens a hole new can of worms - clang nagging all around;
4) mesos_containerizer.cpp:818 needs to get some extra braces:
(future.isFailed() ? future.failure() : "discarded future")
5) ../../src/slave/containerizer/mesos_containerizer.cpp:397:6: note: in
instantiation of function template specialization
'process::Future<Nothing>::then<process::_Deferred<std::__1::__bind<process::Future<int>
(std::__1::function<process::Future<int> (const mesos::ContainerID &,
const mesos::ExecutorInfo &, std::__1::function<int ()> &, const mesos::SlaveID
&, bool, int)>::*)(const mesos::ContainerID &, const
mesos::ExecutorInfo &, std::__1::function<int ()> &, const mesos::SlaveID
&, bool, int) const, std::__1::function<process::Future<int> (const
mesos::ContainerID &, const mesos::ExecutorInfo &,
std::__1::function<int ()> &, const mesos::SlaveID &, bool, int)>,
mesos::ContainerID &, mesos::ExecutorInfo &, std::__1::function<int ()> &,
mesos::SlaveID &, bool &, int &> > >' requested here
.then(defer(self(),
At this point I stopped patching, hoping that RR 18090 will fix things.
> Clang build broken on 0.18.0 master
> -----------------------------------
>
> Key: MESOS-1000
> URL: https://issues.apache.org/jira/browse/MESOS-1000
> Project: Mesos
> Issue Type: Bug
> Components: libprocess
> Affects Versions: 0.18.0
> Environment: Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM
> 3.3svn)
> Reporter: Till Toenshoff
> Labels: clang, stout
>
> There are at least three new issues preventing mesos to build on clang.
> 1. ../../src/slave/containerizer/mesos_containerizer.hpp:174:8: error:
> 'mesos::internal::slave::MesosContainerizerProcess::exited' hides overloaded
> virtual function [-Werror,-Woverloaded-virtual]
> That one is rather easy to overcome; simply add something like the following
> to that header;
> // Prevent clang warning on hidden overloaded virtual function.
> using process::ProcessBase::exited;
> 2. ../../src/slave/containerizer/launcher.cpp:120:12: error: conversion from
> 'Unreachable' to 'Try<pid_t>' is ambiguous
> Can overcome by a nasty but simple disambiguation of the returned value by
> updating that line towards:
> static_cast<Try<int> >(UNREACHABLE());
> In this case, I guess it would be better to revisit the Unreachable
> implementation.
> 3. ../../src/slave/containerizer/mesos_containerizer.cpp:220:18: error: no
> matching function for call to 'defer'
> For that one, I am still trying to find out which overload of defer would be
> the best match and hence should possibly be updated accordingly.
--
This message was sent by Atlassian JIRA
(v6.1.5#6160)