Starting last night, Trilinos failed to build in one of our nightly Albany tests that uses a Kokkos OpenMP node + gcc/8.1.1 on a Fedora 28 OS. Here is the error:
[ 73%] Built target galeri-epetra
In file included from /home/ikalash/nightlyAlbanyTests/Results/Trilinos/packages/belos/src/BelosBlockCGSolMgr.hpp:56,
from /home/ikalash/nightlyAlbanyTests/Results/Trilinos/packages/belos/src/Belos_Details_registerSolverFactory.cpp:50:
/home/ikalash/nightlyAlbanyTests/Results/Trilinos/packages/belos/src/BelosCGSingleRedIter.hpp: In instantiation of ‘void Belos::CGSingleRedIter<ScalarType, MV, OP>::iterate() [with ScalarType = std::complex<double>; MV = Belos::MultiVec<std::complex<double> >; OP = Belos::Operator<std::complex<double> >]’:
/home/ikalash/nightlyAlbanyTests/Results/Trilinos/packages/belos/src/BelosCGSingleRedIter.hpp:404:8: required from here
/home/ikalash/nightlyAlbanyTests/Results/Trilinos/packages/belos/src/BelosCGSingleRedIter.hpp:432:16: error: no match for ‘operator<’ (operand types are ‘std::complex<double>’ and ‘Teuchos::ScalarTraits<std::complex<double> >::magnitudeType’ {aka ‘double’})
if ((delta < Teuchos::ScalarTraits<ScalarType>::eps()) &&
~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/8/bits/stl_algobase.h:64,
from /usr/include/c++/8/bits/char_traits.h:39,
from /usr/include/c++/8/string:40,
from /home/ikalash/nightlyAlbanyTests/Results/Trilinos/packages/teuchos/core/src/Teuchos_ConfigDefs.hpp:85,
from /home/ikalash/nightlyAlbanyTests/Results/Trilinos/packages/belos/src/BelosConfigDefs.hpp:96,
from /home/ikalash/nightlyAlbanyTests/Results/Trilinos/packages/belos/src/BelosTypes.hpp:50,
from /home/ikalash/nightlyAlbanyTests/Results/Trilinos/packages/belos/src/BelosMultiVecTraits.hpp:56,
from /home/ikalash/nightlyAlbanyTests/Results/Trilinos/packages/belos/src/BelosMultiVec.hpp:60,
from /home/ikalash/nightlyAlbanyTests/Results/Trilinos/packages/belos/src/Belos_Details_registerSolverFactory.cpp:45:
/usr/include/c++/8/bits/stl_pair.h:449:5: note: candidate: ‘template<class _T1, class _T2> constexpr bool std::operator<(const std::pair<_T1, _T2>&, const std::pair<_T1, _T2>&)’
operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
^~~~~~~~
(unfortunately it isn't available to see on the CDash site). The configuration can be found here: https://github.com/gahansen/Albany/blob/master/doc/nightlyTestHarness/do-cmake-trilinos-mpi-tpetra-openmp .
@trilinos/belos
This is being addressed by the pull request #3940. It has been approved, it is currently under test.
@ikalash The pull request #3940 has been merged into the Trilinos develop branch. This should address your build failure.
It is indeed fixed for us. Thanks!
Most helpful comment
This is being addressed by the pull request #3940. It has been approved, it is currently under test.