trilinos / Trilinos

Primary repository for the Trilinos Project
https://trilinos.org/
Other
1.2k stars 563 forks source link

Teuchos: Error: 'template<class ... _Elements> class std::tuple' is not a function #785

Closed sagitter closed 7 years ago

sagitter commented 7 years ago

Hello.

This error comes out on a RHEL6 64-bit build-system with GCC-4.4.7:

[ 33%] Building CXX object packages/teuchos/parameterlist/src/CMakeFiles/teuchosparameterlist.dir/Teuchos_TreeBuildingXMLHandler.cpp.o
cd /builddir/build/BUILD/trilinos-12.8.1/Trilinos-trilinos-release-12-8-1/build/packages/teuchos/parameterlist/src && /usr/bin/c++   -DTEUCHOSPARAMETERLIST_LIB_EXPORTS_MODE -Dteuchosparameterlist_EXPORTS -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -fPIC -DNDEBUG -std=c++0x  -fopenmp -O3 -fPIC -I/builddir/build/BUILD/trilinos-12.8.1/Trilinos-trilinos-release-12-8-1/build -I/builddir/build/BUILD/trilinos-12.8.1/Trilinos-trilinos-release-12-8-1/packages/teuchos/parameterlist/src -I/builddir/build/BUILD/trilinos-12.8.1/Trilinos-trilinos-release-12-8-1/build/packages/teuchos/core/src -I/builddir/build/BUILD/trilinos-12.8.1/Trilinos-trilinos-release-12-8-1/packages/teuchos/core/src    -o CMakeFiles/teuchosparameterlist.dir/Teuchos_TreeBuildingXMLHandler.cpp.o -c /builddir/build/BUILD/trilinos-12.8.1/Trilinos-trilinos-release-12-8-1/packages/teuchos/parameterlist/src/Teuchos_TreeBuildingXMLHandler.cpp
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/tuple: In function 'Teuchos::RCP<Teuchos::StringToIntegralParameterEntryValidator<Teuchos::EVerbosityLevel> > Teuchos::verbosityLevelParameterEntryValidator(const std::string&)':
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/tuple:226: error: 'template<class ... _Elements> class std::tuple' is not a function,
/builddir/build/BUILD/trilinos-12.8.1/Trilinos-trilinos-release-12-8-1/packages/teuchos/core/src/Teuchos_Tuple.hpp:512: error:   conflict with 'template<class T> Teuchos::Tuple<T, 15> Teuchos::tuple(const T&, const T&, const T&, const T&, const T&, const T&, const T&, const T&, const T&, const T&, const T&, const T&, const T&, const T&, const T&)'
/builddir/build/BUILD/trilinos-12.8.1/Trilinos-trilinos-release-12-8-1/packages/teuchos/parameterlist/src/Teuchos_StandardParameterEntryValidators.cpp:101: error:   in call to 'tuple'
make[2]: *** [packages/teuchos/parameterlist/src/CMakeFiles/teuchosparameterlist.dir/Teuchos_StandardParameterEntryValidators.cpp.o] Error 1
make[2]: /usr/bin/cmake -E cmake_progress_report /builddir/build/BUILD/trilinos-12.8.1/Trilinos-trilinos-release-12-8-1/build/CMakeFiles 
*** Waiting for unfinished jobs....

cmake configuration:

cmake \
 -DCMAKE_BUILD_TYPE:STRING=Release \
 -DCMAKE_C_FLAGS_RELEASE:STRING="%{optflags} -Wl,-z,relro -fPIC -Wl,-z,now" \
 -DCMAKE_CXX_FLAGS_RELEASE:STRING="%{optflags} -Wl,-z,relro -fPIC -Wl,-z,now %{?el6:-std=c++0x}" \
 -DCMAKE_Fortran_FLAGS_RELEASE:STRING="%{optflags} -Wl,-z,relro -fPIC -Wl,-z,now" \
%endif
 -DCMAKE_EXE_LINKER_FLAGS:STRING="%{__global_ldflags} -fPIC -pie -Wl,-z,now -Wl,--as-needed" \
 -DCMAKE_INSTALL_PREFIX=%{_prefix} \
 -DCMAKE_SKIP_RPATH:BOOL=YES -DCMAKE_SKIP_INSTALL_RPATH:BOOL=YES \
 -DBUILD_SHARED_LIBS:BOOL=ON \
 -DTPL_ENABLE_MPI=OFF \
 -DTrilinos_ENABLE_FORTRAN:BOOL=ON \
%if %{with check}
 -DTrilinos_ENABLE_TESTS:BOOL=ON \
%endif
 -DTrilinos_ENABLE_OpenMP:BOOL=ON \
%if %{with python}
 -DTrilinos_ENABLE_PyTrilinos:BOOL=ON \
 -DTrilinos_ENABLE_ALL_OPTIONAL_PACKAGES:BOOL=ON \
 -DPyTrilinos_INSTALL_PREFIX:PATH=%{_libdir} \
 -DPYTHON_VERSION:STRING=%{python2_version} \
%else
 -DTrilinos_ENABLE_PyTrilinos:BOOL=OFF \
%endif
%ifarch %{ix86} %{arm}
 -DTrilinos_ENABLE_Kokkos:BOOL=OFF \
 -DTrilinos_ENABLE_Xpetra:BOOL=OFF \
 -DTrilinos_ENABLE_Piro:BOOL=OFF \
 -DTpetra_INST_SERIAL:BOOL=OFF \
%else
 -DTpetra_INST_SERIAL:BOOL=ON \
%endif
 -DCMAKE_VERBOSE_MAKEFILE=TRUE \
 -DTrilinos_VERBOSE_CONFIGURE=OFF \
%if 0%{?rhel} || 0%{?rhel} < 7
 -DTrilinos_ENABLE_CXX11=OFF \
 -DTrilinos_ENABLE_MueLu:BOOL=OFF \
 -DTrilinos_ENABLE_Tpetra:BOOL=OFF \
 -DTrilinos_ENABLE_SEACAS:BOOL=OFF \
%endif
%if 0%{?rhel}
 -DTPL_Boost_INCLUDE_DIRS:PATH=%{_includedir}/boost148 \
 -DTPL_Boost_LIBRARIES:PATH=%{_libdir}/boost148/libboost_system.so:%{_libdir}/boost148/libboost_program_options.so:%{_libdir}/boost148/libboost_signals.so:%{_libdir}/boost148/libboost_regex.so:%{_libdir}/boost148/libboost_filesystem.so:%{_libdir}/boost148/libboost_thread.so:%{_libdir}/boost148/libboost_wserialization.so:%{_libdir}/boost148/libboost_serialization.so \
%endif
 -DTrilinos_INSTALL_INCLUDE_DIR=%{_includedir}/%{name} \
 -DTrilinos_INSTALL_LIB_DIR=%{_libdir} \
 -DTrilinos_INSTALL_RUNTIME_DIR=%{_bindir} \
 -DTrilinos_INSTALL_EXAMPLE_DIR=%{_datadir}/%{name}/examples \
 -DTrilinos_ENABLE_STRONG_C_COMPILE_WARNINGS=OFF \
 -DTrilinos_ENABLE_STRONG_CXX_COMPILE_WARNINGS=OFF \
 -DTrilinos_ENABLE_EXPLICIT_INSTANTIATION:BOOL=ON \
 -DTPL_ENABLE_gtest:BOOL=OFF \
 -DTrilinos_ENABLE_STK:BOOL=OFF \
 -DTrilinos_ENABLE_ALL_PACKAGES=ON \
 -DTrilinos_NO_64BIT_GLOBAL_INDICES=ON ..

Can you take a look please?

mhoemmen commented 7 years ago

Hm, it looks like something in Teuchos is using a C++11 feature. Are you sure that Trilinos_ENABLE_CXX11 is OFF? (Could you check your CMakeLists.txt file?)

bartlettroscoe commented 7 years ago

Please attach the STDOUT from CMake. That will show if CXX11 is enabled or not.

sagitter commented 7 years ago

+ /usr/bin/cmake -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_INSTALL_PREFIX:PATH=/usr -DCMAKE_INSTALL_LIBDIR:PATH=/usr/lib64 -DINCLUDE_INSTALL_DIR:PATH=/usr/include -DLIB_INSTALL_DIR:PATH=/usr/lib64 -DSYSCONF_INSTALL_DIR:PATH=/etc -DSHARE_INSTALL_PREFIX:PATH=/usr/share -DLIB_SUFFIX=64 -DCMAKE_SKIP_RPATH:BOOL=ON -DBUILD_SHARED_LIBS:BOOL=ON -DCMAKE_BUILD_TYPE:STRING=Release '-DCMAKE_C_FLAGS_RELEASE:STRING=-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -Wl,-z,relro -fPIC -Wl,-z,now' '-DCMAKE_CXX_FLAGS_RELEASE:STRING=-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -Wl,-z,relro -fPIC -Wl,-z,now -std=c++0x' '-DCMAKE_Fortran_FLAGS_RELEASE:STRING=-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -Wl,-z,relro -fPIC -Wl,-z,now' '-DCMAKE_EXE_LINKER_FLAGS:STRING=-Wl,-z,relro -fPIC -pie -Wl,-z,now -Wl,--as-needed' -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_SKIP_RPATH:BOOL=YES -DCMAKE_SKIP_INSTALL_RPATH:BOOL=YES -DBUILD_SHARED_LIBS:BOOL=ON -DTPL_ENABLE_MPI=OFF -DTrilinos_ENABLE_FORTRAN:BOOL=ON -DTrilinos_ENABLE_OpenMP:BOOL=ON -DTrilinos_ENABLE_PyTrilinos:BOOL=OFF -DTpetra_INST_SERIAL:BOOL=ON -DCMAKE_VERBOSE_MAKEFILE=TRUE -DTrilinos_VERBOSE_CONFIGURE=OFF -DTrilinos_ENABLE_CXX11=OFF -DTrilinos_ENABLE_MueLu:BOOL=OFF -DTrilinos_ENABLE_Tpetra:BOOL=OFF -DTrilinos_ENABLE_SEACAS:BOOL=OFF -DTPL_Boost_INCLUDE_DIRS:PATH=/usr/include/boost148 -DTPL_Boost_LIBRARIES:PATH=/usr/lib64/boost148/libboost_system.so:/usr/lib64/boost148/libboost_program_options.so:/usr/lib64/boost148/libboost_signals.so:/usr/lib64/boost148/libboost_regex.so:/usr/lib64/boost148/libboost_filesystem.so:/usr/lib64/boost148/libboost_thread.so:/usr/lib64/boost148/libboost_wserialization.so:/usr/lib64/boost148/libboost_serialization.so -DTrilinos_INSTALL_INCLUDE_DIR=/usr/include/trilinos -DTrilinos_INSTALL_LIB_DIR=/usr/lib64 -DTrilinos_INSTALL_RUNTIME_DIR=/usr/bin -DTrilinos_INSTALL_EXAMPLE_DIR=/usr/share/trilinos/examples -DTrilinos_ENABLE_STRONG_C_COMPILE_WARNINGS=OFF -DTrilinos_ENABLE_STRONG_CXX_COMPILE_WARNINGS=OFF -DTrilinos_ENABLE_EXPLICIT_INSTANTIATION:BOOL=ON -DTPL_ENABLE_gtest:BOOL=OFF -DTrilinos_ENABLE_STK:BOOL=OFF -DTrilinos_ENABLE_ALL_PACKAGES=ON -DTrilinos_NO_64BIT_GLOBAL_INDICES=ON ..

Is it -std=c++0xthe cause?

mhoemmen commented 7 years ago

@sagitter wrote:

Is -std=c++0x the cause?

Yes. The problem is in the following line of your configuration:

-DCMAKE_CXX_FLAGS_RELEASE:STRING="%{optflags} -Wl,-z,relro -fPIC -Wl,-z,now %{?el6:-std=c++0x}"

This line appears to be setting -std=c++0x. This overrides Trilinos_ENABLE_CXX11:BOOL=OFF. You do not need to set the -std option; Trilinos_ENABLE_CXX11 controls that option for you.

mhoemmen commented 7 years ago

@trilinos/teuchos

sagitter commented 7 years ago

This line appears to be setting -std=c++0x. This overrides Trilinos_ENABLE_CXX11:BOOL=OFF. You do not need to set the -std option; Trilinos_ENABLE_CXX11 controls that option for you.

Okay, removed.

New build stopped by this error:

[ 28%] Building CXX object packages/pamgen/src/CMakeFiles/pamgen.dir/__/rtcompiler/NormalBlock.C.o
cd /builddir/build/BUILD/trilinos-12.8.1/Trilinos-trilinos-release-12-8-1/build/packages/pamgen/src && /usr/bin/c++   -Dpamgen_EXPORTS -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -fPIC -DNDEBUG  -fopenmp -O3 -fPIC -I/builddir/build/BUILD/trilinos-12.8.1/Trilinos-trilinos-release-12-8-1/build -I/builddir/build/BUILD/trilinos-12.8.1/Trilinos-trilinos-release-12-8-1/build/packages/pamgen/src -I/builddir/build/BUILD/trilinos-12.8.1/Trilinos-trilinos-release-12-8-1/packages/pamgen/src -I/builddir/build/BUILD/trilinos-12.8.1/Trilinos-trilinos-release-12-8-1/packages/pamgen/mesh_spec_lt -I/builddir/build/BUILD/trilinos-12.8.1/Trilinos-trilinos-release-12-8-1/packages/pamgen/extra_functions -I/builddir/build/BUILD/trilinos-12.8.1/Trilinos-trilinos-release-12-8-1/packages/pamgen/rtcompiler    -o CMakeFiles/pamgen.dir/__/rtcompiler/NormalBlock.C.o -c /builddir/build/BUILD/trilinos-12.8.1/Trilinos-trilinos-release-12-8-1/packages/pamgen/rtcompiler/NormalBlock.C
/builddir/build/BUILD/trilinos-12.8.1/Trilinos-trilinos-release-12-8-1/packages/pamgen/rtcompiler/Line.C: In member function 'void PG_RuntimeCompiler::Line::process_number(PG_RuntimeCompiler::Tokenizer&)':
/builddir/build/BUILD/trilinos-12.8.1/Trilinos-trilinos-release-12-8-1/packages/pamgen/rtcompiler/Line.C:304: error: 'stol' was not declared in this scope
/builddir/build/BUILD/trilinos-12.8.1/Trilinos-trilinos-release-12-8-1/packages/pamgen/rtcompiler/Line.C:308: error: 'stod' was not declared in this scope
csiefer2 commented 7 years ago

@mhoemmen : Ask Dave @dmhensi.

mhoemmen commented 7 years ago

@sagitter I have moved discussion of your latter issue to #788.

mhoemmen commented 7 years ago

@csiefer2 Sorry for deleting my question :) I moved this to #788.

sagitter commented 7 years ago

Thank you.