Work-around for IBM xlC bug (was called "Attempt to intialize matrix in header file fails under IBM xlC")
Created by: djfitzgerald
When attempting to unit test a fix I've been working on for #2781 (closed), the IBM XL compiler fails at packages/seacas/libraries/ioss/src/generated/Iogn_GeneratedMesh.h:493 with error: 1540-2991 The expression is not supported.
The failing expression is as follows:
double rotmat[3][3]{};
This change was added since 12.12.1, and I don't know what its purpose was so I am loath to "fix" it. 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:
7271 cd /tmp/danfitz/spack-stage/spack-stage-g_hy3L/Trilinos/spack-build/packages/teuchos/comm/src && /opt/ibm/spectrum_mpi/bin/mpixlC -+ -DTEUCHOSCOMM_LIB_E
XPORTS_MODE -Dteuchoscomm_EXPORTS -I/tmp/danfitz/spack-stage/spack-stage-g_hy3L/Trilinos/spack-build -I/u/danfitz/spack/var/spack/stage/trilinos-12.13.1
-c4ai2lelm44crs4zncdh35bylpr766h6/Trilinos/packages/teuchos/comm/src -I/u/danfitz/spack/var/spack/stage/trilinos-12.13.1-c4ai2lelm44crs4zncdh35bylpr766h
6/Trilinos/packages/teuchos/parameterlist/src -I/u/danfitz/spack/var/spack/stage/trilinos-12.13.1-c4ai2lelm44crs4zncdh35bylpr766h6/Trilinos/packages/teu
chos/parser/src -I/tmp/danfitz/spack-stage/spack-stage-g_hy3L/Trilinos/spack-build/packages/teuchos/core/src -I/u/danfitz/spack/var/spack/stage/trilinos
-12.13.1-c4ai2lelm44crs4zncdh35bylpr766h6/Trilinos/packages/teuchos/core/src -I/tmp/danfitz/spack-stage/spack-stage-g_hy3L/Trilinos/spack-build/packages
/kokkos/core/src -I/u/danfitz/spack/var/spack/stage/trilinos-12.13.1-c4ai2lelm44crs4zncdh35bylpr766h6/Trilinos/packages/kokkos/core/src -I/u/danfitz/spa
ck/opt/spack/linux-rhel7-ppc64le/xl_r-16.1/boost-1.67.0-5bom5du2myssl3gywvnxdzxhurklibbg/include -DMUMPS_5_0 -std=c++11 -g -qpic -o CMakeFiles/teucho
scomm.dir/Teuchos_YamlParameterListHelpers.cpp.o -c /u/danfitz/spack/var/spack/stage/trilinos-12.13.1-c4ai2lelm44crs4zncdh35bylpr766h6/Trilinos/packages
/teuchos/comm/src/Teuchos_YamlParameterListHelpers.cpp
7272 In file included from /u/danfitz/spack/var/spack/stage/trilinos-12.13.1-c4ai2lelm44crs4zncdh35bylpr766h6/Trilinos/packages/seacas/libraries/ioss/src/gen
erated/Iogn_GeneratedMesh.C:39:
>> 7273 /u/danfitz/spack/var/spack/stage/trilinos-12.13.1-c4ai2lelm44crs4zncdh35bylpr766h6/Trilinos/packages/seacas/libraries/ioss/src/generated/Iogn_GeneratedM
esh.h:493:44: error: 1540-2991 The expression is not supported.
7274 double rotmat[3][3]{};
7275 ^
7276 1 error generated.
>> 7277 Error while processing /u/danfitz/spack/var/spack/stage/trilinos-12.13.1-c4ai2lelm44crs4zncdh35bylpr766h6/Trilinos/packages/seacas/libraries/ioss/src/ge
nerated/Iogn_GeneratedMesh.C.
>> 7278 make[2]: *** [packages/seacas/libraries/ioss/src/generated/CMakeFiles/Iogn.dir/Iogn_GeneratedMesh.C.o] Error 1
7279 make[2]: *** Waiting for unfinished jobs....
7280 make[2]: Leaving directory `/tmp/danfitz/spack-stage/spack-stage-g_hy3L/Trilinos/spack-build'
>> 7281 make[1]: *** [packages/seacas/libraries/ioss/src/generated/CMakeFiles/Iogn.dir/all] Error 2