mesos-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bernd Mathiske" <be...@mesosphere.io>
Subject Re: Review Request 18307: Fixed compile error MESOS-1009, plus subsequent compile errors
Date Thu, 20 Feb 2014 14:29:25 GMT

-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/18307/
-----------------------------------------------------------

(Updated Feb. 20, 2014, 6:29 a.m.)


Review request for mesos.


Changes
-------

Reverted some unnecessary changes in the previous patch. Only references that are in fact
used by va_start must be replaced by non-references. All other rdferences can remain. Also,
object parameters do not need to be references.


Repository: mesos-git


Description (updated)
-------

Fix for MESOS-1009 plus fixes for all subsequent compile errors that were masked by the first
one reported in MESOS-1009. Result: Mesos compiles on Ubuntu 13.10 with Clang 3.5. Original
problem was a coding mistake in the glog library from Google. Appended diff to the glog lib
patch file already in Mesos.

The additional errors found and fixed are:

../../3rdparty/libprocess/3rdparty/stout/include/stout/os.hpp:730:18: error: 'va_start' has
undefined behavior with
      reference types [-Werror,-Wvarargs]
  va_start(args, fmt);
                 ^
/root/clang/build/Release/bin/../lib/clang/3.5/include/stdarg.h:33:52: note: expanded from
macro 'va_start'
#define va_start(ap, param) __builtin_va_start(ap, param)
                                                   ^
../../3rdparty/libprocess/3rdparty/stout/include/stout/os.hpp:727:60: note: parameter of type
'const std::string &'
      (aka 'const basic_string<char> &') is declared here
inline Try<int> shell(std::ostream* os, const std::string& fmt, ...)


——

../../3rdparty/libprocess/3rdparty/stout/include/stout/format.hpp:402:18: error: 'va_start'
has undefined behavior with
      reference types [-Werror,-Wvarargs]
  va_start(args, fmt);
                 ^
/root/clang/build/Release/bin/../lib/clang/3.5/include/stdarg.h:33:52: note: expanded from
macro 'va_start'
#define va_start(ap, param) __builtin_va_start(ap, param)
                                                   ^
../../3rdparty/libprocess/3rdparty/stout/include/stout/format.hpp:399:51: note: parameter
of type 'const std::string &'
      (aka 'const basic_string<char> &') is declared here
inline Try<std::string> format(const std::string& fmt, ...)


——

../../src/messages/state.hpp:19:9: error: '__MESSAGE_STATE_HPP__' is used as a header guard
here, followed by #define
      of a different macro [-Werror,-Wheader-guard]
#ifndef __MESSAGE_STATE_HPP__
        ^~~~~~~~~~~~~~~~~~~~~
../../src/messages/state.hpp:20:9: note: '__MESSAGES_STATE_HPP__' is defined here; did you
mean
      '__MESSAGE_STATE_HPP__'?
#define __MESSAGES_STATE_HPP__
        ^~~~~~~~~~~~~~~~~~~~~~
        __MESSAGE_STATE_HPP__


——


In file included from ../../src/java/jni/convert.cpp:32:
../../src/jvm/jvm.hpp:473:18: error: 'va_start' has undefined behavior with reference types
[-Werror,-Wvarargs]
  va_start(args, method);
                 ^
/root/clang/build/Release/bin/../lib/clang/3.5/include/stdarg.h:33:52: note: expanded from
macro 'va_start'
#define va_start(ap, param) __builtin_va_start(ap, param)
                                                   ^
../../src/jvm/jvm.hpp:470:53: note: parameter of type 'const Jvm::Method &' is declared
here
T Jvm::invoke(const jobject receiver, const Method& method, ...)
                                                    ^
../../src/jvm/jvm.hpp:488:18: error: 'va_start' has undefined behavior with reference types
[-Werror,-Wvarargs]
  va_start(args, method);
                 ^
/root/clang/build/Release/bin/../lib/clang/3.5/include/stdarg.h:33:52: note: expanded from
macro 'va_start'
#define va_start(ap, param) __builtin_va_start(ap, param)
                                                   ^
../../src/jvm/jvm.hpp:485:35: note: parameter of type 'const Jvm::Method &' is declared
here
T Jvm::invokeStatic(const Method& method, ...)
                                  ^


Diffs (updated)
-----

  3rdparty/libprocess/3rdparty/glog-0.3.3.patch 974f9f5 
  3rdparty/libprocess/3rdparty/stout/include/stout/format.hpp 3eadaef 
  3rdparty/libprocess/3rdparty/stout/include/stout/os.hpp bba6f43 
  src/jvm/jvm.hpp b4dff78 
  src/jvm/jvm.cpp 6eb3a34 
  src/messages/state.hpp 6245499 

Diff: https://reviews.apache.org/r/18307/diff/


Testing
-------

make succeeded on Ubuntu 13.10 with Clang 3.5 and on Mac OS X 10.9 with Clang 3.2. "make check"
OK on Mac, small problem may remain on Ubuntu, suspect unrelated issue. C test framework OK
on Mac, but not on Ubuntu: all tasks end up in state 5. Suspect an unrelated issue here. Java
test framework runs on both platforms.


Thanks,

Bernd Mathiske


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message