Neil Conway created MESOS-4963:
----------------------------------
Summary: Compile error with GCC 6
Key: MESOS-4963
URL: https://issues.apache.org/jira/browse/MESOS-4963
Project: Mesos
Issue Type: Bug
Components: stout
Reporter: Neil Conway
{noformat}
$ ~/local/gcc/bin/g++ --version
g++ (GCC) 6.0.0 20160227 (experimental)
Copyright (C) 2016 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$ make V=0
make[2]: Entering directory '/home/vagrant/build-mesos-2-gcc6/src'
CXX appc/libmesos_no_3rdparty_la-spec.lo
In file included from
/mesos-2/3rdparty/libprocess/3rdparty/stout/include/stout/os/shell.hpp:22:0,
from
/mesos-2/3rdparty/libprocess/3rdparty/stout/include/stout/os.hpp:56,
from /mesos-2/src/appc/spec.cpp:17:
/mesos-2/3rdparty/libprocess/3rdparty/stout/include/stout/os/posix/shell.hpp:
In instantiation of ‘int os::execlp(const char*, T ...) [with T = {const char*,
const char*, const char*, char*}]’:
/mesos-2/3rdparty/libprocess/3rdparty/stout/include/stout/os/posix/fork.hpp:371:52:
required from here
/mesos-2/3rdparty/libprocess/3rdparty/stout/include/stout/os/posix/shell.hpp:151:18:
error: missing sentinel in function call [-Werror=format=]
return ::execlp(file, t...);
~~~~~~~~^~~~~~~~~~~~
cc1plus: all warnings being treated as errors
Makefile:5584: recipe for target 'appc/libmesos_no_3rdparty_la-spec.lo' failed
{noformat}
I'll verify this with a more recent GCC6 snapshot, but assuming it repros, I
think we have a few options:
* Have {{os::execlp}} *not* specify a NULL sentinel, and instead have the
implementation of {{os::execlp}} always pass {{static_cast<T>(NULL)}} as the
last argument to the {{execlp}} call.
* Disable the GCC warning via a pragma or similar means.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)