Opened 13 months ago
Last modified 13 months ago
#68559 assigned defect
openbabel build fails to set correct C++ standard: C++14 is required by eigen3 (at least by -devel)
Reported by: | barracuda156 | Owned by: | reneeotten (Renee Otten) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.8.1 |
Keywords: | Cc: | ||
Port: | openbabel |
Description
Error with eigen3
:
:info:build [ 8%] Building CXX object src/CMakeFiles/openbabel.dir/builder.cpp.o :info:build cd /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_science_openbabel/openbabel/work/build/src && /opt/local/bin/g++-mp-13 -DHAVE_EIGEN -DHAVE_EIGEN3 -DHAVE_LIBZ -DHAVE_RADPIJSON -DHAVE_SHARED_POINTER -DHAVE_WXWIDGETS -DMAKE_OBDLL -DUSING_DYNAMIC_LIBS -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D__WXDEBUG__ -D__WXMAC__ -I/opt/local/include -I/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_science_openbabel/openbabel/work/build/include -I/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_science_openbabel/openbabel/work/openbabel-3.1.1/data -I/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_science_openbabel/openbabel/work/openbabel-3.1.1/include -I/opt/local/include/eigen3 -isystem /usr/lib/wx/include/mac-unicode-debug-2.8 -isystem /usr/include/wx-2.8 -pipe -Os -DNDEBUG -I/opt/local/include -D_GLIBCXX_USE_CXX11_ABI=0 -std=gnu++11 -arch ppc -mmacosx-version-min=10.6 -fPIC -MD -MT src/CMakeFiles/openbabel.dir/builder.cpp.o -MF CMakeFiles/openbabel.dir/builder.cpp.o.d -o CMakeFiles/openbabel.dir/builder.cpp.o -c /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_science_openbabel/openbabel/work/openbabel-3.1.1/src/builder.cpp :info:build In file included from /opt/local/include/eigen3/Eigen/Core:19, :info:build from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_science_openbabel/openbabel/work/openbabel-3.1.1/include/openbabel/distgeom.h:34, :info:build from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_science_openbabel/openbabel/work/openbabel-3.1.1/src/builder.cpp:33: :info:build /opt/local/include/eigen3/Eigen/src/Core/util/Macros.h:712:2: error: #error This compiler appears to be too old to be supported by Eigen :info:build 712 | #error This compiler appears to be too old to be supported by Eigen :info:build | ^~~~~
This happens because it requires C++14, while the build uses C++11:
#if EIGEN_MAX_CPP_VER < 14 || EIGEN_COMP_CXXVER < 14 || \ (EIGEN_COMP_MSVC && EIGEN_COMP_MSVC < 1900) || \ (EIGEN_COMP_ICC && EIGEN_COMP_ICC < 1500) || \ (EIGEN_COMP_NVCC && EIGEN_COMP_NVCC < 80000) || \ (EIGEN_COMP_CLANG_STRICT && EIGEN_COMP_CLANG < 390) || \ (EIGEN_COMP_CLANGAPPLE && EIGEN_COMP_CLANGAPPLE < 9000000) || \ (EIGEN_COMP_GNUC_STRICT && EIGEN_COMP_GNUC < 510) #error This compiler appears to be too old to be supported by Eigen #endif
Change History (10)
comment:1 follow-up: 5 Changed 13 months ago by barracuda156
comment:2 follow-up: 4 Changed 13 months ago by barracuda156
By the way, I can confirm that once C++ standard is set to 14, no more disaster with Eigen.
comment:3 Changed 13 months ago by barracuda156
On a side note, I have opened an issue with Eigen
re that silly error, hopefully they gonna fix it: https://gitlab.com/libeigen/eigen/-/issues/2741
It is really confusing atm.
comment:4 follow-up: 7 Changed 13 months ago by reneeotten (Renee Otten)
Replying to barracuda156:
By the way, I can confirm that once C++ standard is set to 14, no more disaster with Eigen.
well eigen3
claims itself to be needing CXX11 so if that's indeed correct there should be no need for openbabel
to require anything else.
comment:5 Changed 13 months ago by reneeotten (Renee Otten)
Replying to barracuda156:
Also, if it actually uses Python for anything, perhaps it should use Macports one:
Found PythonInterp: /usr/bin/python (found version "2.5.1")
- S. And is it correct that is uses system wxWidgets?
/usr/include/wx-2.8(I am not saying that is wrong; Macports wxWidgets seems to have issues on old systems, so it could be that the old system one is actually preferable. Needs to be verified.)
that indeed doesn't seem right, but I cannot recall having seen that before - I can take a look at some point...
comment:6 follow-up: 8 Changed 13 months ago by reneeotten (Renee Otten)
with what variants are you installing this - it doesn't install any Python bindings so I don't think it should be using it
comment:7 Changed 13 months ago by barracuda156
Replying to reneeotten:
Replying to barracuda156:
By the way, I can confirm that once C++ standard is set to 14, no more disaster with Eigen.
well
eigen3
claims itself to be needing CXX11 so if that's indeed correct there should be no need foropenbabel
to require anything else.
I have quoted eigen3
header above: the current version does require C++14. Possibly, the older one is at C++11.
comment:8 Changed 13 months ago by barracuda156
Replying to reneeotten:
with what variants are you installing this - it doesn't install any Python bindings so I don't think it should be using it
Whatever default was. I think CMake does not use Python, just checked for it.
comment:9 Changed 13 months ago by barracuda156
So it looks like gui
is not default, so no wxWidgets should have been used, but the linking flag is still passed.
Also wxWidgets-3.2
is definitely broken on old systems atm; if it support 2.8 or 3.0, it should be conditionally preferred. (May not save PowerPC, as of now, but should help older Intel.)
comment:10 Changed 13 months ago by barracuda156
Summary: | openbabel build fails to set correct C++ standard: C++14 is required due to Eigen → openbabel build fails to set correct C++ standard: C++14 is required by eigen3 (at least by -devel) |
---|
Also, if it actually uses Python for anything, perhaps it should use Macports one:
(I am not saying that is wrong; Macports wxWidgets seems to have issues on old systems, so it could be that the old system one is actually preferable. Needs to be verified.)