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

Reply via email to