Tpetra: 'Class with virtual base class and delegating constructor' error under IBM xlC
Created by: djfitzgerald
@trilinos/tpetra
When attempting to unit test a fix I've been working on for #2781 (closed), the IBM XL compiler fails at packages/tpetra/core/src/Tpetra_CrsGraph_def.hpp:651 with error: 1540-2206 Class with virtual base class and delegating constructor is not supported.
The failing class definition is as follows:
template <class LocalOrdinal, class GlobalOrdinal, class Node>
CrsGraph<LocalOrdinal, GlobalOrdinal, Node>::
CrsGraph (const Teuchos::RCP<const map_type>& rowMap,
const Teuchos::RCP<const map_type>& colMap,
const local_graph_type& k_local_graph_,
const Teuchos::RCP<Teuchos::ParameterList>& params)
: CrsGraph (k_local_graph_,
rowMap,
colMap,
Teuchos::null,
Teuchos::null,
params)
{}
It looks like this area of code was modified in the recent past, by https://github.com/djfitzgerald/Trilinos/commit/c5fd93a0756df81cb0cda375f135de968372f634 and https://github.com/djfitzgerald/Trilinos/commit/888258fc088fa5276137ce4655a3707bb54fd748. Because I know very little about C++, I'd rather not be the person to attempt fixing it. This is preventing the UT of my fix for #2781 (closed).
I am building Trilinos from Spack, using a Spack repository to recognize a fake Trilinos "version 12.13.1" that points to a working branch in my fork of this GitHub repository. From the hacked Spack package.py file for my local Trilinos install:
version('12.13.1', git='https://github.com/basicmanfitz/Trilinos.git', branch='fix-2781')
My Spack install command is:
spack install --test=root trilinos@12.13.1%xl_r ~pnetcdf ^netlib-lapack+external-blas ^netcdf%gcc ^m4%gcc
And the pertinent text from my Spack build log:
==> Installing trilinos
==> Trying to clone git repository: https://github.com/djfitzgerald/Trilinos.git on branch fix-2781
==> No checksum needed when fetching with git
==> Already staged trilinos-12.13.1-4kl2xjobtvkeiimmeunht447jfdolep2 in /u/danfitz/spack/var/spack/stage/trilinos-12.13.1-4kl2xjobtvkeiimmeunht447jfdolep2
==> Applied patch xlf_seacas.patch
==> Building trilinos [CMakePackage]
==> Executing phase: 'cmake'
==> Executing phase: 'build'
==> Error: ProcessError: Command exited with status 2:
'make' '-j176'
5 errors found in build log:
8539 cd /tmp/danfitz/spack-stage/spack-stage-AO_5dB/Trilinos/spack-build/packages/ifpack/src && /u/danfitz/spack/opt/spack/linux-rhel7-ppc64le/xl_r-16.1/cmak
e-3.11.3-4joy3z55k5hm6j75ssjougditfpsjh5j/bin/cmake -E cmake_link_script CMakeFiles/ifpack.dir/link.txt --verbose=1
8540 /opt/ibm/spectrum_mpi/bin/mpixlC -DMUMPS_5_0 -std=gnu++11 -g -qmkshrobj -Wl,-soname,libifpack.so.12 -o libifpack.so.12.13 CMakeFiles/ifpack.dir/Ifpack
_IlukGraph.cpp.o CMakeFiles/ifpack.dir/Ifpack_CrsRiluk.cpp.o CMakeFiles/ifpack.dir/Ifpack_ILU.cpp.o CMakeFiles/ifpack.dir/Ifpack_IKLU.cpp.o CMakeFiles/i
fpack.dir/Ifpack_IKLU_Utils.cpp.o CMakeFiles/ifpack.dir/Ifpack_ILUT.cpp.o CMakeFiles/ifpack.dir/Ifpack_ICT.cpp.o CMakeFiles/ifpack.dir/Ifpack_IC.cpp.o C
MakeFiles/ifpack.dir/Ifpack_IC_Utils.cpp.o CMakeFiles/ifpack.dir/Ifpack_OverlapGraph.cpp.o CMakeFiles/ifpack.dir/Ifpack_MultiListSort.c.o CMakeFiles/ifp
ack.dir/ifp_parameters.cpp.o CMakeFiles/ifpack.dir/Ifpack_DiagPreconditioner.cpp.o CMakeFiles/ifpack.dir/Ifpack_PointRelaxation.cpp.o CMakeFiles/ifpack.
dir/Ifpack_Condest.cpp.o CMakeFiles/ifpack.dir/Ifpack.cpp.o CMakeFiles/ifpack.dir/Ifpack_DenseContainer.cpp.o CMakeFiles/ifpack.dir/Ifpack_TriDiContaine
r.cpp.o CMakeFiles/ifpack.dir/Ifpack_SerialTriDiMatrix.cpp.o CMakeFiles/ifpack.dir/Ifpack_SerialTriDiSolver.cpp.o CMakeFiles/ifpack.dir/Ifpack_LocalFilt
er.cpp.o CMakeFiles/ifpack.dir/Ifpack_NodeFilter.cpp.o CMakeFiles/ifpack.dir/Ifpack_SingletonFilter.cpp.o CMakeFiles/ifpack.dir/Ifpack_DropFilter.cpp.o
CMakeFiles/ifpack.dir/Ifpack_SparsityFilter.cpp.o CMakeFiles/ifpack.dir/Ifpack_ReorderFilter.cpp.o CMakeFiles/ifpack.dir/Ifpack_DiagonalFilter.cpp.o CMa
keFiles/ifpack.dir/Ifpack_Graph_Epetra_RowMatrix.cpp.o CMakeFiles/ifpack.dir/Ifpack_Graph_Epetra_CrsGraph.cpp.o CMakeFiles/ifpack.dir/Ifpack_Utils.cpp.o
CMakeFiles/ifpack.dir/Ifpack_SPARSKIT.cpp.o CMakeFiles/ifpack.dir/Ifpack_Chebyshev.cpp.o CMakeFiles/ifpack.dir/Ifpack_Polynomial.cpp.o CMakeFiles/ifpac
k.dir/Ifpack_Krylov.cpp.o CMakeFiles/ifpack.dir/Ifpack_OverlappingPartitioner.cpp.o CMakeFiles/ifpack.dir/Ifpack_LinePartitioner.cpp.o CMakeFiles/ifpack
.dir/Ifpack_LinearPartitioner.cpp.o CMakeFiles/ifpack.dir/Ifpack_GreedyPartitioner.cpp.o CMakeFiles/ifpack.dir/Ifpack_METISPartitioner.cpp.o CMakeFiles/
ifpack.dir/Ifpack_EquationPartitioner.cpp.o CMakeFiles/ifpack.dir/Ifpack_UserPartitioner.cpp.o CMakeFiles/ifpack.dir/Ifpack_RCMReordering.cpp.o CMakeFil
es/ifpack.dir/Ifpack_METISReordering.cpp.o CMakeFiles/ifpack.dir/Ifpack_OverlappingRowMatrix.cpp.o CMakeFiles/ifpack.dir/Ifpack_ValidParameters.cpp.o CM
akeFiles/ifpack.dir/Ifpack_HIPS.cpp.o CMakeFiles/ifpack.dir/Ifpack_Hypre.cpp.o CMakeFiles/ifpack.dir/Ifpack_Euclid.cpp.o CMakeFiles/ifpack.dir/Ifpack_SI
LU.cpp.o CMakeFiles/ifpack.dir/Ifpack_IHSS.cpp.o CMakeFiles/ifpack.dir/Ifpack_SORa.cpp.o CMakeFiles/ifpack.dir/Ifpack_AMDReordering.cpp.o CMakeFiles/ifp
ack.dir/Ifpack_Amesos.cpp.o -Wl,-rpath,/tmp/danfitz/spack-stage/spack-stage-AO_5dB/Trilinos/spack-build/packages/amesos/src:/tmp/danfitz/spack-stage/spa
ck-stage-AO_5dB/Trilinos/spack-build/packages/aztecoo/src:/tmp/danfitz/spack-stage/spack-stage-AO_5dB/Trilinos/spack-build/packages/epetraext/src:/u/dan
fitz/spack/opt/spack/linux-rhel7-ppc64le/xl_r-16.1/hypre-2.14.0-3vyhhypsq43ie2zjpp634apu6eqcucts/lib:/u/danfitz/spack/opt/spack/linux-rhel7-ppc64le/gcc-
4.8.5/hdf5-1.10.2-247ex6z2m4ehrczv6r7gibf3to2zsa5f/lib:/u/danfitz/spack/opt/spack/linux-rhel7-ppc64le/gcc-4.8.5/zlib-1.2.11-4v3ticyykh2xcgw5fzltjrfuxkx7
ipqh/lib:/tmp/danfitz/spack-stage/spack-stage-AO_5dB/Trilinos/spack-build/packages/common/auxiliarySoftware/SuiteSparse/src:/u/danfitz/spack/opt/spack/l
inux-rhel7-ppc64le/xl_r-16.1/mumps-5.1.1-3ivwblkwww3x3geewzye2v5swtucrtsv/lib:/u/danfitz/spack/opt/spack/linux-rhel7-ppc64le/xl_r-16.1/netlib-scalapack-
2.0.2-r6jp3lwxdyceztqrux4zwlujuk3lb4ji/lib:/u/danfitz/spack/opt/spack/linux-rhel7-ppc64le/xl_r-16.1/suite-sparse-5.2.0-dmch5hznwgrmg3tcnfhmojixpzkncf26/
lib:/u/danfitz/spack/opt/spack/linux-rhel7-ppc64le/xl_r-16.1/parmetis-4.0.3-ripisfb4stbqj5ueqswwgm3pkccppoir/lib:/u/danfitz/spack/opt/spack/linux-rhel7-
ppc64le/xl_r-16.1/metis-5.1.0-wjzuwozzzsscsyqfwjrexn6kaet7rbha/lib:/tmp/danfitz/spack-stage/spack-stage-AO_5dB/Trilinos/spack-build/packages/triutils/sr
c:/tmp/danfitz/spack-stage/spack-stage-AO_5dB/Trilinos/spack-build/packages/epetra/src:/tmp/danfitz/spack-stage/spack-stage-AO_5dB/Trilinos/spack-build/
packages/teuchos/kokkoscomm/src:/tmp/danfitz/spack-stage/spack-stage-AO_5dB/Trilinos/spack-build/packages/teuchos/kokkoscompat/src:/tmp/danfitz/spack-st
age/spack-stage-AO_5dB/Trilinos/spack-build/packages/teuchos/remainder/src:/tmp/danfitz/spack-stage/spack-stage-AO_5dB/Trilinos/spack-build/packages/teu
chos/numerics/src:/tmp/danfitz/spack-stage/spack-stage-AO_5dB/Trilinos/spack-build/packages/teuchos/comm/src:/tmp/danfitz/spack-stage/spack-stage-AO_5dB
/Trilinos/spack-build/packages/teuchos/parameterlist/src:/tmp/danfitz/spack-stage/spack-stage-AO_5dB/Trilinos/spack-build/packages/teuchos/parser/src:/u
/danfitz/spack/opt/spack/linux-rhel7-ppc64le/xl_r-16.1/netlib-lapack-3.8.0-gyxkcm34uk2mx2sp2tkajit5qjcefqp4/lib64:/opt/ibmmath/essl/6.1/lib64:/tmp/danfi
tz/spack-stage/spack-stage-AO_5dB/Trilinos/spack-build/packages/teuchos/core/src:/tmp/danfitz/spack-stage/spack-stage-AO_5dB/Trilinos/spack-build/packag
es/kokkos/core/src: ../../amesos/src/libamesos.so.12.13 ../../aztecoo/src/libaztecoo.so.12.13 ../../epetraext/src/libepetraext.so.12.13 /u/danfitz/spack
/opt/spack/linux-rhel7-ppc64le/xl_r-16.1/hypre-2.14.0-3vyhhypsq43ie2zjpp634apu6eqcucts/lib/libHYPRE.so /u/danfitz/spack/opt/spack/linux-rhel7-ppc64le/gc
c-4.8.5/hdf5-1.10.2-247ex6z2m4ehrczv6r7gibf3to2zsa5f/lib/libhdf5.so /u/danfitz/spack/opt/spack/linux-rhel7-ppc64le/gcc-4.8.5/zlib-1.2.11-4v3ticyykh2xcgw
5fzltjrfuxkx7ipqh/lib/libz.so /u/danfitz/spack/opt/spack/linux-rhel7-ppc64le/gcc-4.8.5/hdf5-1.10.2-247ex6z2m4ehrczv6r7gibf3to2zsa5f/lib/libhdf5_hl.so ..
/../common/auxiliarySoftware/SuiteSparse/src/libtrilinosss.so.12.13 -lm /u/danfitz/spack/opt/spack/linux-rhel7-ppc64le/xl_r-16.1/mumps-5.1.1-3ivwblkwww3
x3geewzye2v5swtucrtsv/lib/libdmumps.so /u/danfitz/spack/opt/spack/linux-rhel7-ppc64le/xl_r-16.1/mumps-5.1.1-3ivwblkwww3x3geewzye2v5swtucrtsv/lib/libmump
s_common.so /u/danfitz/spack/opt/spack/linux-rhel7-ppc64le/xl_r-16.1/mumps-5.1.1-3ivwblkwww3x3geewzye2v5swtucrtsv/lib/libpord.so /u/danfitz/spack/opt/sp
ack/linux-rhel7-ppc64le/xl_r-16.1/netlib-scalapack-2.0.2-r6jp3lwxdyceztqrux4zwlujuk3lb4ji/lib/libscalapack.so /u/danfitz/spack/opt/spack/linux-rhel7-ppc
64le/xl_r-16.1/suite-sparse-5.2.0-dmch5hznwgrmg3tcnfhmojixpzkncf26/lib/libumfpack.so /u/danfitz/spack/opt/spack/linux-rhel7-ppc64le/xl_r-16.1/suite-spar
se-5.2.0-dmch5hznwgrmg3tcnfhmojixpzkncf26/lib/libamd.so /u/danfitz/spack/opt/spack/linux-rhel7-ppc64le/xl_r-16.1/suite-sparse-5.2.0-dmch5hznwgrmg3tcnfhm
ojixpzkncf26/lib/libcolamd.so /u/danfitz/spack/opt/spack/linux-rhel7-ppc64le/xl_r-16.1/suite-sparse-5.2.0-dmch5hznwgrmg3tcnfhmojixpzkncf26/lib/libcholmo
d.so /u/danfitz/spack/opt/spack/linux-rhel7-ppc64le/xl_r-16.1/suite-sparse-5.2.0-dmch5hznwgrmg3tcnfhmojixpzkncf26/lib/libsuitesparseconfig.so /u/danfitz
/spack/opt/spack/linux-rhel7-ppc64le/xl_r-16.1/superlu-dist-5.2.2-duvrseth6foutnu24gq6mk6n3bpto636/lib/libsuperlu_dist.a /u/danfitz/spack/opt/spack/linu
x-rhel7-ppc64le/xl_r-16.1/parmetis-4.0.3-ripisfb4stbqj5ueqswwgm3pkccppoir/lib/libparmetis.so /u/danfitz/spack/opt/spack/linux-rhel7-ppc64le/xl_r-16.1/me
tis-5.1.0-wjzuwozzzsscsyqfwjrexn6kaet7rbha/lib/libmetis.so ../../triutils/src/libtriutils.so.12.13 ../../epetra/src/libepetra.so.12.13 ../../teuchos/kok
koscomm/src/libteuchoskokkoscomm.so.12.13 ../../teuchos/kokkoscompat/src/libteuchoskokkoscompat.so.12.13 ../../teuchos/remainder/src/libteuchosremainder
.so.12.13 ../../teuchos/numerics/src/libteuchosnumerics.so.12.13 ../../teuchos/comm/src/libteuchoscomm.so.12.13 ../../teuchos/parameterlist/src/libteuch
osparameterlist.so.12.13 ../../teuchos/parser/src/libteuchosparser.so.12.13 /u/danfitz/spack/opt/spack/linux-rhel7-ppc64le/xl_r-16.1/netlib-lapack-3.8.0
-gyxkcm34uk2mx2sp2tkajit5qjcefqp4/lib64/liblapack.so /opt/ibmmath/essl/6.1/lib64/libesslsmp.so ../../teuchos/core/src/libteuchoscore.so.12.13 ../../kokk
os/core/src/libkokkoscore.so.12.13 /usr/lib64/libdl.so
8541 cd /tmp/danfitz/spack-stage/spack-stage-AO_5dB/Trilinos/spack-build/packages/ifpack/src && /u/danfitz/spack/opt/spack/linux-rhel7-ppc64le/xl_r-16.1/cmak
e-3.11.3-4joy3z55k5hm6j75ssjougditfpsjh5j/bin/cmake -E cmake_symlink_library libifpack.so.12.13 libifpack.so.12 libifpack.so
8542 make[2]: Leaving directory `/tmp/danfitz/spack-stage/spack-stage-AO_5dB/Trilinos/spack-build'
8543 [ 84%] Built target ifpack
8544 In file included from /u/danfitz/spack/var/spack/stage/trilinos-12.13.1-4kl2xjobtvkeiimmeunht447jfdolep2/Trilinos/packages/tpetra/core/src/Tpetra_CrsGra
ph_SerialWrapperNode.cpp:54:
>> 8545 /u/danfitz/spack/var/spack/stage/trilinos-12.13.1-4kl2xjobtvkeiimmeunht447jfdolep2/Trilinos/packages/tpetra/core/src/Tpetra_CrsGraph_def.hpp:651:3: erro
r: 1540-2206 Class with virtual base class and delegating constructor is not supported.
8546 CrsGraph<LocalOrdinal, GlobalOrdinal, Node>::
8547 ^
8548 1 error generated.
>> 8549 Error while processing /u/danfitz/spack/var/spack/stage/trilinos-12.13.1-4kl2xjobtvkeiimmeunht447jfdolep2/Trilinos/packages/tpetra/core/src/Tpetra_CrsGr
aph_SerialWrapperNode.cpp.
>> 8550 make[2]: *** [packages/tpetra/core/src/CMakeFiles/tpetra.dir/Tpetra_CrsGraph_SerialWrapperNode.cpp.o] Error 1
8551 make[2]: *** Waiting for unfinished jobs....
8552 make[2]: Leaving directory `/tmp/danfitz/spack-stage/spack-stage-AO_5dB/Trilinos/spack-build'
>> 8553 make[1]: *** [packages/tpetra/core/src/CMakeFiles/tpetra.dir/all] Error 2
8554 make[1]: Leaving directory `/tmp/danfitz/spack-stage/spack-stage-AO_5dB/Trilinos/spack-build'
>> 8555 make: *** [all] Error 2