You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@mesos.apache.org by "Neil Conway (JIRA)" <ji...@apache.org> on 2016/03/16 22:43:33 UTC

[jira] [Created] (MESOS-4963) Compile error with GCC 6

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)