Grid icon indicating copy to clipboard operation
Grid copied to clipboard

Fail building grid 0.8.2 on ThunderX2 Marvel system with GCC 8.2.0

Open adrianjhpc opened this issue 5 years ago • 0 comments

I'm trying to build Grid 0.8.2 on a Marvel ThunderX2 based system with SLES15 and GCC 8.2.0. I'm getting compiler failures in the Hadron directory with errors like this:

/scratch3/home/fh01/fh01/adrianj/grid/Grid-0.8.2/Hadrons/Global.hpp:122:23: error: declaration of ‘typedef class Grid::Hadrons::Solver<FImpl> Grid::Hadrons::MSolver::TA2AAslashVectors<FImpl>::Solver’ [-fpermissive]
 typedef Solver<FImpl> Solver##suffix;
                       ^~~~~~
/scratch3/home/fh01/fh01/adrianj/grid/Grid-0.8.2/Hadrons/Global.hpp:122:23: note: in definition of macro ‘SOLVER_TYPE_ALIASES’
 typedef Solver<FImpl> Solver##suffix;
                       ^~~~~~
In file included from /scratch3/home/fh01/fh01/adrianj/grid/Grid-0.8.2/Hadrons/A2AVectors.hpp:34,
                 from /scratch3/home/fh01/fh01/adrianj/grid/Grid-0.8.2/Hadrons/Modules/MUtilities/RandomVectors.hpp:34,
                 from /scratch3/home/fh01/fh01/adrianj/grid/Grid-0.8.2/Hadrons/Modules.hpp:40,
                 from ../../Hadrons/Application.cc:31:
/scratch3/home/fh01/fh01/adrianj/grid/Grid-0.8.2/Hadrons/Solver.hpp:36:7: error: changes meaning of ‘Solver’ from ‘class Grid::Hadrons::Solver<FImpl>’ [-fpermissive]
 class Solver
       ^~~~~~
In file included from /scratch3/home/fh01/fh01/adrianj/grid/Grid-0.8.2/Hadrons/Application.hpp:32,
                 from ../../Hadrons/Application.cc:29:
/scratch3/home/fh01/fh01/adrianj/grid/Grid-0.8.2/Hadrons/Global.hpp:122:23: error: declaration of ‘typedef class Grid::Hadrons::Solver<FImpl> Grid::Hadrons::MSolver::TRBPrecCG<FImpl, nBasis>::Solver’ [-fpermissive]
 typedef Solver<FImpl> Solver##suffix;
                       ^~~~~~
/scratch3/home/fh01/fh01/adrianj/grid/Grid-0.8.2/Hadrons/Global.hpp:122:23: note: in definition of macro ‘SOLVER_TYPE_ALIASES’
 typedef Solver<FImpl> Solver##suffix;
                       ^~~~~~
In file included from /scratch3/home/fh01/fh01/adrianj/grid/Grid-0.8.2/Hadrons/A2AVectors.hpp:34,
                 from /scratch3/home/fh01/fh01/adrianj/grid/Grid-0.8.2/Hadrons/Modules/MUtilities/RandomVectors.hpp:34,
                 from /scratch3/home/fh01/fh01/adrianj/grid/Grid-0.8.2/Hadrons/Modules.hpp:40,
                 from ../../Hadrons/Application.cc:31:
/scratch3/home/fh01/fh01/adrianj/grid/Grid-0.8.2/Hadrons/Solver.hpp:36:7: error: changes meaning of ‘Solver’ from ‘class Grid::Hadrons::Solver<FImpl>’ [-fpermissive]
 class Solver
       ^~~~~~
In file included from /scratch3/home/fh01/fh01/adrianj/grid/Grid-0.8.2/Hadrons/Application.hpp:32,
                 from ../../Hadrons/Application.cc:29:
/scratch3/home/fh01/fh01/adrianj/grid/Grid-0.8.2/Hadrons/Global.hpp:122:23: error: declaration of ‘typedef class Grid::Hadrons::Solver<FImpl> Grid::Hadrons::MSolver::TA2AVectors<FImpl, Pack>::Solver’ [-fpermissive]
 typedef Solver<FImpl> Solver##suffix;
                       ^~~~~~
/scratch3/home/fh01/fh01/adrianj/grid/Grid-0.8.2/Hadrons/Global.hpp:122:23: note: in definition of macro ‘SOLVER_TYPE_ALIASES’
 typedef Solver<FImpl> Solver##suffix;
                       ^~~~~~
In file included from /scratch3/home/fh01/fh01/adrianj/grid/Grid-0.8.2/Hadrons/A2AVectors.hpp:34,
                 from /scratch3/home/fh01/fh01/adrianj/grid/Grid-0.8.2/Hadrons/Modules/MUtilities/RandomVectors.hpp:34,
                 from /scratch3/home/fh01/fh01/adrianj/grid/Grid-0.8.2/Hadrons/Modules.hpp:40,
                 from ../../Hadrons/Application.cc:31:
/scratch3/home/fh01/fh01/adrianj/grid/Grid-0.8.2/Hadrons/Solver.hpp:36:7: error: changes meaning of ‘Solver’ from ‘class Grid::Hadrons::Solver<FImpl>’ [-fpermissive]
 class Solver
       ^~~~~~
In file included from /scratch3/home/fh01/fh01/adrianj/grid/Grid-0.8.2/Hadrons/Application.hpp:32,
                 from ../../Hadrons/Application.cc:29:
/scratch3/home/fh01/fh01/adrianj/grid/Grid-0.8.2/Hadrons/Global.hpp:122:23: error: declaration of ‘typedef class Grid::Hadrons::Solver<FImplOuter> Grid::Hadrons::MSolver::TMixedPrecisionRBPrecCG<FImplInner, FImplOuter, nBasis>::Solver’ [-fpermissive]
 typedef Solver<FImpl> Solver##suffix;
                       ^~~~~~
/scratch3/home/fh01/fh01/adrianj/grid/Grid-0.8.2/Hadrons/Global.hpp:122:23: note: in definition of macro ‘SOLVER_TYPE_ALIASES’
 typedef Solver<FImpl> Solver##suffix;
                       ^~~~~~
In file included from /scratch3/home/fh01/fh01/adrianj/grid/Grid-0.8.2/Hadrons/A2AVectors.hpp:34,
                 from /scratch3/home/fh01/fh01/adrianj/grid/Grid-0.8.2/Hadrons/Modules/MUtilities/RandomVectors.hpp:34,
                 from /scratch3/home/fh01/fh01/adrianj/grid/Grid-0.8.2/Hadrons/Modules.hpp:40,
                 from ../../Hadrons/Application.cc:31:
/scratch3/home/fh01/fh01/adrianj/grid/Grid-0.8.2/Hadrons/Solver.hpp:36:7: error: changes meaning of ‘Solver’ from ‘class Grid::Hadrons::Solver<FImplOuter>’ [-fpermissive]
 class Solver
       ^~~~~~
In file included from /scratch3/home/fh01/fh01/adrianj/grid/Grid-0.8.2/Hadrons/Application.hpp:32,
                 from ../../Hadrons/Application.cc:29:
/scratch3/home/fh01/fh01/adrianj/grid/Grid-0.8.2/Hadrons/Global.hpp:122:23: error: declaration of ‘typedef class Grid::Hadrons::Solver<FImpl> Grid::Hadrons::MFermion::TGaugeProp<FImpl>::Solver’ [-fpermissive]
 typedef Solver<FImpl> Solver##suffix;
                       ^~~~~~
/scratch3/home/fh01/fh01/adrianj/grid/Grid-0.8.2/Hadrons/Global.hpp:122:23: note: in definition of macro ‘SOLVER_TYPE_ALIASES’
 typedef Solver<FImpl> Solver##suffix;
                       ^~~~~~
In file included from /scratch3/home/fh01/fh01/adrianj/grid/Grid-0.8.2/Hadrons/A2AVectors.hpp:34,
                 from /scratch3/home/fh01/fh01/adrianj/grid/Grid-0.8.2/Hadrons/Modules/MUtilities/RandomVectors.hpp:34,
                 from /scratch3/home/fh01/fh01/adrianj/grid/Grid-0.8.2/Hadrons/Modules.hpp:40,
                 from ../../Hadrons/Application.cc:31:
/scratch3/home/fh01/fh01/adrianj/grid/Grid-0.8.2/Hadrons/Solver.hpp:36:7: error: changes meaning of ‘Solver’ from ‘class Grid::Hadrons::Solver<FImpl>’ [-fpermissive]
 class Solver
       ^~~~~~
In file included from /scratch3/home/fh01/fh01/adrianj/grid/Grid-0.8.2/Grid/lattice/Lattice.h:31,
                 from /scratch3/home/fh01/fh01/adrianj/grid/Grid-0.8.2/Grid/GridCore.h:55,
                 from /scratch3/home/fh01/fh01/adrianj/grid/Grid-0.8.2/Grid/Grid.h:41,
                 from /scratch3/home/fh01/fh01/adrianj/grid/Grid-0.8.2/Hadrons/Global.hpp:36,
                 from /scratch3/home/fh01/fh01/adrianj/grid/Grid-0.8.2/Hadrons/Application.hpp:32,
                 from ../../Hadrons/Application.cc:29:
/scratch3/home/fh01/fh01/adrianj/grid/Grid-0.8.2/Grid/lattice/Lattice_base.h: In instantiation of ‘Grid::Lattice<object>& Grid::Lattice<object>::operator=(const Grid::LatticeUnaryExpression<Op, T1>&) [with Op = Grid::UnaryExp<Grid::LatticeBinaryExpression<Grid::BinaryMul<std::complex<double>, const Grid::iScalar<Grid::iScalar<Grid::iScalar<Grid::Grid_simd<std::complex<double>, __vector(2) double> > > >&>, const std::complex<double>&, const Grid::Lattice<Grid::iScalar<Grid::iScalar<Grid::iScalar<Grid::Grid_simd<std::complex<double>, __vector(2) double> > > > >&> >; T1 = const Grid::LatticeBinaryExpression<Grid::BinaryMul<std::complex<double>, const Grid::iScalar<Grid::iScalar<Grid::iScalar<Grid::Grid_simd<std::complex<double>, __vector(2) double> > > >&>, const std::complex<double>&, const Grid::Lattice<Grid::iScalar<Grid::iScalar<Grid::iScalar<Grid::Grid_simd<std::complex<double>, __vector(2) double> > > > >&>&; vobj = Grid::iScalar<Grid::iScalar<Grid::iScalar<Grid::Grid_simd<std::complex<double>, __vector(2) double> > > >]’:
/scratch3/home/fh01/fh01/adrianj/grid/Grid-0.8.2/Hadrons/Modules/MContraction/A2AMesonField.hpp:267:19:   required from ‘void Grid::Hadrons::MContraction::TA2AMesonField<FImpl>::execute() [with FImpl = Grid::QCD::WilsonImpl<Grid::Grid_simd<std::complex<double>, __vector(2) double>, Grid::QCD::FundamentalRep<3>, Grid::QCD::CoeffReal>]’
/scratch3/home/fh01/fh01/adrianj/grid/Grid-0.8.2/Hadrons/Modules/MContraction/A2AMesonField.hpp:130:18:   required from here
/scratch3/home/fh01/fh01/adrianj/grid/Grid-0.8.2/Grid/lattice/Lattice_base.h:126:12: error: conversion from ‘Grid::LatticeUnaryExpression<Grid::UnaryExp<Grid::LatticeBinaryExpression<Grid::BinaryMul<std::complex<double>, const Grid::iScalar<Grid::iScalar<Grid::iScalar<Grid::Grid_simd<std::complex<double>, __vector(2) double> > > >&>, const std::complex<double>&, const Grid::Lattice<Grid::iScalar<Grid::iScalar<Grid::iScalar<Grid::Grid_simd<std::complex<double>, __vector(2) double> > > > >&> >, const Grid::LatticeBinaryExpression<Grid::BinaryMul<std::complex<double>, const Grid::iScalar<Grid::iScalar<Grid::iScalar<Grid::Grid_simd<std::complex<double>, __vector(2) double> > > >&>, const std::complex<double>&, const Grid::Lattice<Grid::iScalar<Grid::iScalar<Grid::iScalar<Grid::Grid_simd<std::complex<double>, __vector(2) double> > > > >&>&>’ to non-scalar type ‘Grid::iScalar<Grid::iScalar<Grid::iScalar<Grid::Grid_simd<std::complex<double>, __vector(2) double> > > >’ requested
       vobj tmp = eval(ss,expr);

Have I configured it wrong? Configured as:

../configure --enable-precision=double --enable-comms=mpi3 --enable-simd=NEONv8 CXX=mpicxx --with-lime=/scratch3/home/fh01/fh01/adrianj/spack-0.12.1/opt/spack/linux-sles15-aarch64/gcc-8
.2.0/c-lime-2-3-9-kjd2fdjwbfoizc4xe6sjy5vffj4bzpto --prefix=/home/fh01/fh01/adrianj/grid/gcc82install

adrianjhpc avatar Oct 15 '19 20:10 adrianjhpc