You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mesos.apache.org by Benjamin Hindman <be...@berkeley.edu> on 2014/01/06 20:40:35 UTC

Review Request 16664: Added --with-cxx11 to Mesos configuration.

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

Review request for mesos, Ben Mahler, Niklas Nielsen, and Vinod Kone.


Repository: mesos-git


Description
-------

When building with clang we assume --with-cxx11. For example:
    
  CC=/path/to/clang CXX=/path/to/clang++ ../configure
    
But when building with gcc 4.8 you need to specify C++11:
    
  CC=/path/to/gcc CXX=/path/to/g++ ../configure --with-cxx11
    
At this point in time compiling using C++11 with gcc 4.8 on OS X does not work with Python so it is explicitely disabled.


Diffs
-----

  configure.ac f69908af84882088ccbf14f89cf46c3a5364cabf 
  m4/ax_cxx_compile_stdcxx_11.m4 PRE-CREATION 

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


Testing
-------

$ CC=/path/to/clang CXX=/path/to/clang++ ../configure && make check
$ CC=/path/to/gcc CXX=/path/to/g++ ../configure --with-cxx11 && make check


Thanks,

Benjamin Hindman


Re: Review Request 16664: Added --with-cxx11 to Mesos configuration.

Posted by Ben Mahler <be...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/16664/#review31562
-----------------------------------------------------------

Ship it!


- Ben Mahler


On Jan. 6, 2014, 7:40 p.m., Benjamin Hindman wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/16664/
> -----------------------------------------------------------
> 
> (Updated Jan. 6, 2014, 7:40 p.m.)
> 
> 
> Review request for mesos, Ben Mahler, Niklas Nielsen, and Vinod Kone.
> 
> 
> Repository: mesos-git
> 
> 
> Description
> -------
> 
> When building with clang we assume --with-cxx11. For example:
>     
>   CC=/path/to/clang CXX=/path/to/clang++ ../configure
>     
> But when building with gcc 4.8 you need to specify C++11:
>     
>   CC=/path/to/gcc CXX=/path/to/g++ ../configure --with-cxx11
>     
> At this point in time compiling using C++11 with gcc 4.8 on OS X does not work with Python so it is explicitely disabled.
> 
> 
> Diffs
> -----
> 
>   configure.ac f69908af84882088ccbf14f89cf46c3a5364cabf 
>   m4/ax_cxx_compile_stdcxx_11.m4 PRE-CREATION 
> 
> Diff: https://reviews.apache.org/r/16664/diff/
> 
> 
> Testing
> -------
> 
> $ CC=/path/to/clang CXX=/path/to/clang++ ../configure && make check
> $ CC=/path/to/gcc CXX=/path/to/g++ ../configure --with-cxx11 && make check
> 
> 
> Thanks,
> 
> Benjamin Hindman
> 
>


Re: Review Request 16664: Added --with-cxx11 to Mesos configuration.

Posted by Benjamin Hindman <be...@berkeley.edu>.

> On Jan. 7, 2014, 7:58 a.m., Niklas Nielsen wrote:
> > configure.ac, line 146
> > <https://reviews.apache.org/r/16664/diff/1/?file=417618#file417618line146>
> >
> >     Indentation: Is space in front on purpose?

Nope, thanks!


> On Jan. 7, 2014, 7:58 a.m., Niklas Nielsen wrote:
> > configure.ac, lines 568-575
> > <https://reviews.apache.org/r/16664/diff/1/?file=417618#file417618line568>
> >
> >     Could this be combined with Till's python egg test? I think it turned out to be an issue with universal binaries, so GCC built eggs actually could work with clang built Python binaries.
> >     Till can probably comment :)
> 
> TILL TOENSHOFF wrote:
>     TL/DR: I think its a good idea to commit https://reviews.apache.org/r/16436/ as that prevents us from having to disable anything by default.
>     
>     The problems are confusing, hence I shall try to draft my understanding 
>     of the mesos python-bridge vs. OSX problems. While revisiting the issue, 
>     a few omissions popped up in my earlier evaluation.
>     
>     Setup: homebrew gcc-4.7, apple default clang 5.0 (llvm 3.3), osx 10.9.1,
>     apple default python 2.7.5, homebrew python 2.7.3 
>     
>     Facts: 
>     - Python eggs do dynamically link against the standard c++ library. 
>     That would be stdlibc++ or libc++ depending on the original python build 
>     setup.
>     - The OSX default distribution of Python is a universal (32+64bit) build 
>     and linked against libc++.
>     - Python distutils partially enforce the original build settings of 
>     the Python distribution on the egg build process. Note that some build 
>     settings can still be overridden as done in by 
>     https://reviews.apache.org/r/16419/ - cheers Niklas!
>     - Mesos is linked statically into the Python bridge by the build process.
>     
>     
>     Scenario A; default OSX Python (clang, libc++) vs. Mesos (clang, libc++)
>     Issue/s:
>     - distutils produce a bunch of universal build related warnings as Mesos 
>     is 64bit only, no errors 
>     Result: 
>     OK
>     
>     
>     Scenario B; default OSX Python (clang, libc++) vs. Mesos (gcc, stdlibc++)
>     Issue/s:
>     - distutils enforce a universal build using "-arch x86_64 -arch i386"-
>     flags on gcc. As gcc in its standard version does not allow building
>     both architectures in a single run, only the last supplied one will be
>     built.
>     Result: 
>     Python bridge NOT usable on a OSX 64bit platform.
>     
>     
>     Scenario C; homebrew Python (gcc, stdlibc++, 64bit only) vs. 
>     Mesos (gcc, stdlibc++)
>     Issue/s:
>     - none
>     Result:
>     OK
>     
>     
>     Scenario D; homebrew Python (gcc, stdlibc++, 64bit only) vs. 
>     Mesos (clang, libc++)
>     Issue/s: 
>     - crash by segmentation fault
>     Result:
>     Python bridge NOT usable on a OSX 64bit platform.
>
> 
> Benjamin Hindman wrote:
>     Sounds great Till. Let's get that committed!

Okay, I killed the part of my patch that checks for non-clang Python on OS X and instead checked that Till's code does the trick. Thanks Till!


- Benjamin


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


On Jan. 6, 2014, 7:40 p.m., Benjamin Hindman wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/16664/
> -----------------------------------------------------------
> 
> (Updated Jan. 6, 2014, 7:40 p.m.)
> 
> 
> Review request for mesos, Ben Mahler, Niklas Nielsen, and Vinod Kone.
> 
> 
> Repository: mesos-git
> 
> 
> Description
> -------
> 
> When building with clang we assume --with-cxx11. For example:
>     
>   CC=/path/to/clang CXX=/path/to/clang++ ../configure
>     
> But when building with gcc 4.8 you need to specify C++11:
>     
>   CC=/path/to/gcc CXX=/path/to/g++ ../configure --with-cxx11
>     
> At this point in time compiling using C++11 with gcc 4.8 on OS X does not work with Python so it is explicitely disabled.
> 
> 
> Diffs
> -----
> 
>   configure.ac f69908af84882088ccbf14f89cf46c3a5364cabf 
>   m4/ax_cxx_compile_stdcxx_11.m4 PRE-CREATION 
> 
> Diff: https://reviews.apache.org/r/16664/diff/
> 
> 
> Testing
> -------
> 
> $ CC=/path/to/clang CXX=/path/to/clang++ ../configure && make check
> $ CC=/path/to/gcc CXX=/path/to/g++ ../configure --with-cxx11 && make check
> 
> 
> Thanks,
> 
> Benjamin Hindman
> 
>


Re: Review Request 16664: Added --with-cxx11 to Mesos configuration.

Posted by TILL TOENSHOFF <to...@me.com>.

> On Jan. 7, 2014, 7:58 a.m., Niklas Nielsen wrote:
> > configure.ac, lines 568-575
> > <https://reviews.apache.org/r/16664/diff/1/?file=417618#file417618line568>
> >
> >     Could this be combined with Till's python egg test? I think it turned out to be an issue with universal binaries, so GCC built eggs actually could work with clang built Python binaries.
> >     Till can probably comment :)

TL/DR: I think its a good idea to commit https://reviews.apache.org/r/16436/ as that prevents us from having to disable anything by default.

The problems are confusing, hence I shall try to draft my understanding 
of the mesos python-bridge vs. OSX problems. While revisiting the issue, 
a few omissions popped up in my earlier evaluation.

Setup: homebrew gcc-4.7, apple default clang 5.0 (llvm 3.3), osx 10.9.1,
apple default python 2.7.5, homebrew python 2.7.3 

Facts: 
- Python eggs do dynamically link against the standard c++ library. 
That would be stdlibc++ or libc++ depending on the original python build 
setup.
- The OSX default distribution of Python is a universal (32+64bit) build 
and linked against libc++.
- Python distutils partially enforce the original build settings of 
the Python distribution on the egg build process. Note that some build 
settings can still be overridden as done in by 
https://reviews.apache.org/r/16419/ - cheers Niklas!
- Mesos is linked statically into the Python bridge by the build process.


Scenario A; default OSX Python (clang, libc++) vs. Mesos (clang, libc++)
Issue/s:
- distutils produce a bunch of universal build related warnings as Mesos 
is 64bit only, no errors 
Result: 
OK


Scenario B; default OSX Python (clang, libc++) vs. Mesos (gcc, stdlibc++)
Issue/s:
- distutils enforce a universal build using "-arch x86_64 -arch i386"-
flags on gcc. As gcc in its standard version does not allow building
both architectures in a single run, only the last supplied one will be
built.
Result: 
Python bridge NOT usable on a OSX 64bit platform.


Scenario C; homebrew Python (gcc, stdlibc++, 64bit only) vs. 
Mesos (gcc, stdlibc++)
Issue/s:
- none
Result:
OK


Scenario D; homebrew Python (gcc, stdlibc++, 64bit only) vs. 
Mesos (clang, libc++)
Issue/s: 
- crash by segmentation fault
Result:
Python bridge NOT usable on a OSX 64bit platform.


- TILL


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


On Jan. 6, 2014, 7:40 p.m., Benjamin Hindman wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/16664/
> -----------------------------------------------------------
> 
> (Updated Jan. 6, 2014, 7:40 p.m.)
> 
> 
> Review request for mesos, Ben Mahler, Niklas Nielsen, and Vinod Kone.
> 
> 
> Repository: mesos-git
> 
> 
> Description
> -------
> 
> When building with clang we assume --with-cxx11. For example:
>     
>   CC=/path/to/clang CXX=/path/to/clang++ ../configure
>     
> But when building with gcc 4.8 you need to specify C++11:
>     
>   CC=/path/to/gcc CXX=/path/to/g++ ../configure --with-cxx11
>     
> At this point in time compiling using C++11 with gcc 4.8 on OS X does not work with Python so it is explicitely disabled.
> 
> 
> Diffs
> -----
> 
>   configure.ac f69908af84882088ccbf14f89cf46c3a5364cabf 
>   m4/ax_cxx_compile_stdcxx_11.m4 PRE-CREATION 
> 
> Diff: https://reviews.apache.org/r/16664/diff/
> 
> 
> Testing
> -------
> 
> $ CC=/path/to/clang CXX=/path/to/clang++ ../configure && make check
> $ CC=/path/to/gcc CXX=/path/to/g++ ../configure --with-cxx11 && make check
> 
> 
> Thanks,
> 
> Benjamin Hindman
> 
>


Re: Review Request 16664: Added --with-cxx11 to Mesos configuration.

Posted by Benjamin Hindman <be...@berkeley.edu>.

> On Jan. 7, 2014, 7:58 a.m., Niklas Nielsen wrote:
> > configure.ac, lines 568-575
> > <https://reviews.apache.org/r/16664/diff/1/?file=417618#file417618line568>
> >
> >     Could this be combined with Till's python egg test? I think it turned out to be an issue with universal binaries, so GCC built eggs actually could work with clang built Python binaries.
> >     Till can probably comment :)
> 
> TILL TOENSHOFF wrote:
>     TL/DR: I think its a good idea to commit https://reviews.apache.org/r/16436/ as that prevents us from having to disable anything by default.
>     
>     The problems are confusing, hence I shall try to draft my understanding 
>     of the mesos python-bridge vs. OSX problems. While revisiting the issue, 
>     a few omissions popped up in my earlier evaluation.
>     
>     Setup: homebrew gcc-4.7, apple default clang 5.0 (llvm 3.3), osx 10.9.1,
>     apple default python 2.7.5, homebrew python 2.7.3 
>     
>     Facts: 
>     - Python eggs do dynamically link against the standard c++ library. 
>     That would be stdlibc++ or libc++ depending on the original python build 
>     setup.
>     - The OSX default distribution of Python is a universal (32+64bit) build 
>     and linked against libc++.
>     - Python distutils partially enforce the original build settings of 
>     the Python distribution on the egg build process. Note that some build 
>     settings can still be overridden as done in by 
>     https://reviews.apache.org/r/16419/ - cheers Niklas!
>     - Mesos is linked statically into the Python bridge by the build process.
>     
>     
>     Scenario A; default OSX Python (clang, libc++) vs. Mesos (clang, libc++)
>     Issue/s:
>     - distutils produce a bunch of universal build related warnings as Mesos 
>     is 64bit only, no errors 
>     Result: 
>     OK
>     
>     
>     Scenario B; default OSX Python (clang, libc++) vs. Mesos (gcc, stdlibc++)
>     Issue/s:
>     - distutils enforce a universal build using "-arch x86_64 -arch i386"-
>     flags on gcc. As gcc in its standard version does not allow building
>     both architectures in a single run, only the last supplied one will be
>     built.
>     Result: 
>     Python bridge NOT usable on a OSX 64bit platform.
>     
>     
>     Scenario C; homebrew Python (gcc, stdlibc++, 64bit only) vs. 
>     Mesos (gcc, stdlibc++)
>     Issue/s:
>     - none
>     Result:
>     OK
>     
>     
>     Scenario D; homebrew Python (gcc, stdlibc++, 64bit only) vs. 
>     Mesos (clang, libc++)
>     Issue/s: 
>     - crash by segmentation fault
>     Result:
>     Python bridge NOT usable on a OSX 64bit platform.
>

Sounds great Till. Let's get that committed!


- Benjamin


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


On Jan. 6, 2014, 7:40 p.m., Benjamin Hindman wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/16664/
> -----------------------------------------------------------
> 
> (Updated Jan. 6, 2014, 7:40 p.m.)
> 
> 
> Review request for mesos, Ben Mahler, Niklas Nielsen, and Vinod Kone.
> 
> 
> Repository: mesos-git
> 
> 
> Description
> -------
> 
> When building with clang we assume --with-cxx11. For example:
>     
>   CC=/path/to/clang CXX=/path/to/clang++ ../configure
>     
> But when building with gcc 4.8 you need to specify C++11:
>     
>   CC=/path/to/gcc CXX=/path/to/g++ ../configure --with-cxx11
>     
> At this point in time compiling using C++11 with gcc 4.8 on OS X does not work with Python so it is explicitely disabled.
> 
> 
> Diffs
> -----
> 
>   configure.ac f69908af84882088ccbf14f89cf46c3a5364cabf 
>   m4/ax_cxx_compile_stdcxx_11.m4 PRE-CREATION 
> 
> Diff: https://reviews.apache.org/r/16664/diff/
> 
> 
> Testing
> -------
> 
> $ CC=/path/to/clang CXX=/path/to/clang++ ../configure && make check
> $ CC=/path/to/gcc CXX=/path/to/g++ ../configure --with-cxx11 && make check
> 
> 
> Thanks,
> 
> Benjamin Hindman
> 
>


Re: Review Request 16664: Added --with-cxx11 to Mesos configuration.

Posted by Niklas Nielsen <ni...@qni.dk>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/16664/#review31293
-----------------------------------------------------------

Ship it!



configure.ac
<https://reviews.apache.org/r/16664/#comment59714>

    Indentation: Is space in front on purpose?



configure.ac
<https://reviews.apache.org/r/16664/#comment59718>

    Could this be combined with Till's python egg test? I think it turned out to be an issue with universal binaries, so GCC built eggs actually could work with clang built Python binaries.
    Till can probably comment :)


- Niklas Nielsen


On Jan. 6, 2014, 7:40 p.m., Benjamin Hindman wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/16664/
> -----------------------------------------------------------
> 
> (Updated Jan. 6, 2014, 7:40 p.m.)
> 
> 
> Review request for mesos, Ben Mahler, Niklas Nielsen, and Vinod Kone.
> 
> 
> Repository: mesos-git
> 
> 
> Description
> -------
> 
> When building with clang we assume --with-cxx11. For example:
>     
>   CC=/path/to/clang CXX=/path/to/clang++ ../configure
>     
> But when building with gcc 4.8 you need to specify C++11:
>     
>   CC=/path/to/gcc CXX=/path/to/g++ ../configure --with-cxx11
>     
> At this point in time compiling using C++11 with gcc 4.8 on OS X does not work with Python so it is explicitely disabled.
> 
> 
> Diffs
> -----
> 
>   configure.ac f69908af84882088ccbf14f89cf46c3a5364cabf 
>   m4/ax_cxx_compile_stdcxx_11.m4 PRE-CREATION 
> 
> Diff: https://reviews.apache.org/r/16664/diff/
> 
> 
> Testing
> -------
> 
> $ CC=/path/to/clang CXX=/path/to/clang++ ../configure && make check
> $ CC=/path/to/gcc CXX=/path/to/g++ ../configure --with-cxx11 && make check
> 
> 
> Thanks,
> 
> Benjamin Hindman
> 
>