I am experiencing some issues compiling the ETK on BW.
The command I use is the standard command for simfactory, where I specify the machine as follows:
./simfactory/bin/sim build ETK_standard --mdbkey make 'make -j16' --machine=bluewaters --thornlist=../
einsteintoolkit.th | cat >& compilation_trial.out
The error on which I am actually stuck is the following:
COMPILING arrangements/Carpet/CarpetLib/src/interpolate_3d_2tl.cc
/mnt/a/u/sciteam/cipollet/Cactus/arrangements/Carpet/CarpetLib/src/interpolate_3d_2tl.cc:112:48: error: macro "CCTK_LOOP3STROFF_NORMAL" requires 24 arguments, but only 23 given
dstipadext, dstjpadext, dstkpadext) {
^
In file included from /mnt/a/u/sciteam/cipollet/Cactus/src/include/cctk_core.h:157:0,
from /mnt/a/u/sciteam/cipollet/Cactus/configs/ETK_standard/bindings/include/CarpetLib/cctk.h:7,
from /mnt/a/u/sciteam/cipollet/Cactus/arrangements/Carpet/CarpetLib/src/interpolate_3d_2tl.cc:1:
/mnt/a/u/sciteam/cipollet/Cactus/arrangements/Carpet/CarpetLib/src/interpolate_3d_2tl.cc: In function 'void CarpetLib::interpolate_3d_2tl(const T*, CCTK_REAL8, const T*, CCTK_REAL8, const ivect3&, const ivect3&, T*, CCTK_REAL8, const ivect3&, const ivect3&, const ibbox3&, const ibbox3&, const ibbox3&, const ibbox3&, void*)':
/mnt/a/u/sciteam/cipollet/Cactus/src/include/cctk_Loop.h:2460:3: error: 'CCTK_LOOP3STROFF_NORMAL' was not declared in this scope
CCTK_LOOP3STROFF_NORMAL(name, \
^
/mnt/a/u/sciteam/cipollet/Cactus/src/include/cctk_Loop.h:2444:3: note: in expansion of macro 'CCTK_LOOP3STROFF'
CCTK_LOOP3STROFF(name, \
^
/mnt/a/u/sciteam/cipollet/Cactus/src/include/cctk_Loop.h:2428:3: note: in expansion of macro 'CCTK_LOOP3STR'
CCTK_LOOP3STR(name, \
^
/mnt/a/u/sciteam/cipollet/Cactus/arrangements/Carpet/CarpetLib/src/interpolate_3d_2tl.cc:111:3: note: in expansion of macro 'CCTK_LOOP3'
CCTK_LOOP3(interpolate_3d_2tl, i, j, k, 0, 0, 0, regiext, regjext, regkext,
^
In file included from /mnt/a/u/sciteam/cipollet/Cactus/configs/ETK_standard/bindings/include/loopcontrol.h:4:0,
from /mnt/a/u/sciteam/cipollet/Cactus/arrangements/Carpet/CarpetLib/src/interpolate_3d_2tl.cc:4:
/mnt/a/u/sciteam/cipollet/Cactus/arrangements/Carpet/CarpetLib/src/interpolate_3d_2tl.cc: At global scope:
/mnt/a/u/sciteam/cipollet/Cactus/arrangements/Carpet/LoopControl/src/loopcontrol.h:263:3: error: expected declaration before '}' token
} \
^
/mnt/a/u/sciteam/cipollet/Cactus/arrangements/Carpet/LoopControl/src/loopcontrol.h:304:42: note: in expansion of macro 'LC_ENDLOOP3STROFF_NORMAL'
#define CCTK_ENDLOOP3STROFF_NORMAL(name) LC_ENDLOOP3STROFF_NORMAL(name)
^
/mnt/a/u/sciteam/cipollet/Cactus/src/include/cctk_Loop.h:2470:3: note: in expansion of macro 'CCTK_ENDLOOP3STROFF_NORMAL'
CCTK_ENDLOOP3STROFF_NORMAL(name) \
^
/mnt/a/u/sciteam/cipollet/Cactus/src/include/cctk_Loop.h:2452:3: note: in expansion of macro 'CCTK_ENDLOOP3STROFF'
CCTK_ENDLOOP3STROFF(name) \
^
/mnt/a/u/sciteam/cipollet/Cactus/src/include/cctk_Loop.h:2436:3: note: in expansion of macro 'CCTK_ENDLOOP3STR'
CCTK_ENDLOOP3STR(name) \
^
/mnt/a/u/sciteam/cipollet/Cactus/arrangements/Carpet/CarpetLib/src/interpolate_3d_2tl.cc:116:3: note: in expansion of macro 'CCTK_ENDLOOP3'
CCTK_ENDLOOP3(interpolate_3d_2tl);
^
make[3]: *** [interpolate_3d_2tl.cc.o] Error 1
make[2]: *** [make.checked] Error 2
make[1]: *** [/mnt/a/u/sciteam/cipollet/Cactus/configs/ETK_standard/lib/libthorn_CarpetLib.a] Error 2
make: *** [ETK_standard] Error 2
As you can see, the CarpetLib is not compiled, due to an error on a call to a macro of Cactus. As the CarpetLib is a pretty standard one, I assume that there should be some bugs in the machine configuration file in simfactory, probably when specifying the flags for the compilers. I also tried the other configuration for BW machine (i.e. the "-cray" and "-pgi" versions) when trying to compile another config of the ETK on BW, but neither those where succesful.
Can anyone give me some hint?
Thank you very much,
Federico Cipolletta.