-Wno-c++11-long-long has no effect, warning

Issue #47 resolved
Nico Schlömer created an issue

Referring to

ENABLE_IF_SUPPORTED(MOAB_CXX_FLAGS "-Wno-c++11-long-long")

from config/CheckCompilerFlags.cmake. Together with -Wall, this flag gives the build warning

cc1plus: warning: unrecognized command line option -Wno-c++11-long-long

This can be reproduced with any hello-world and

g++ -Wall -Wno-c++11-long-long hello.cxx

Comments (6)

  1. Vijay M

    Nico, many of these are simple fixes. I'll take care of them this weekend.

    With regard to your question on Eigen, we noticed a considerable speedup when replacing our Matrix class with that from Eigen. We are also beginning to develop some algorithms to support discretizations described on a MOAB mesh. These features will rely on some of the solvers and data structures in Eigen. Rather than having this as an optional dependency (we still can do this if there is a strong enough reason), we decided to distribute a frozen version that is tested with MOAB algorithms. Hopefully that clarifies the motivation. Let me know if you have more questions.

    Vijay

  2. Nico Schlömer reporter

    With regard to your question on Eigen, we noticed a considerable speedup when replacing our Matrix class with that from Eigen.

    I believe it! Eigen is great, and they put of lot of intelligence into how to organize their data. Looking at the code makes my legs shake, but boy did they do a good job there.

    we decided to distribute a frozen version that is tested with MOAB algorithms.

    The typical way of demanding a particular version is to depend on it via CMake. I believe Eigen reports its version transparently, so you could assert EIGEN_VERSION=="whatever". I don't need to tell you about all the downsides of bundling, but most significant for you might be that you're missing out on fixes and improvments in Eigen. By the way I noticed that MOAB bundles Eigen only because I got flooded with about 4.6MB of warnings like

    /home/nschloe/software/moab/source-upstream/src/moab/Eigen/src/Core/arch/SSE/PacketMath.h:161:43:
    warning: ignoring attributes on template argument
    ‘Eigen::internal::Packet4f {aka __vector(4) float}’ [-Wignored-attributes]
    

    The actual build error was hard to find in between all this mess. :)

    Cheers, Nico

  3. Vijay M

    I think this error might be because g++ is invoked without specification for C++11. But then the -Wno-c++11-long-long flag assumes that C++11 is enabled already.

    Can you try the branch vijaysm/cmake-fixes and rebuild ? I'll address the Eigen related warnings in a separate PR.

  4. Log in to comment