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 23:22:33 UTC

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

     [ https://issues.apache.org/jira/browse/MESOS-4963?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Neil Conway updated MESOS-4963:
-------------------------------
    Description: 
{noformat}
$ head config.log
[...]
/mesos-2/configure --enable-optimize --disable-python CC=ccache /home/vagrant/local/gcc/bin/gcc CXX=ccache /home/vagrant/local/gcc/bin/g++
$ ~/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.

  was:
{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.


> 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
>              Labels: mesosphere
>
> {noformat}
> $ head config.log
> [...]
> /mesos-2/configure --enable-optimize --disable-python CC=ccache /home/vagrant/local/gcc/bin/gcc CXX=ccache /home/vagrant/local/gcc/bin/g++
> $ ~/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)