For the compiling gurus:
I've been working towards finalizing the FUKA importer build system for inclusion into the ETK and I've recently added additional thorns to the build list to run the test par. For completeness, I'm compiling in the following way:
yes | make test-config THORNLIST=thornlist/test.th options=test.cfg; make test:
Currently, all thorns compile successfully except for SummationByParts which gives the following error:
/home/user/lib/ETKREL/Cactus/arrangements/CactusNumerical/SummationByParts/src/get_offset.c:49:17: error: redefinition of ‘get_shiftout’ 49 | void CCTK_FCALL CCTK_FNAME(get_shiftout)( const CCTK_POINTER_TO_CONST cctkGH_, | ^~~~~~~~~~~~ /home/user/lib/ETKREL/Cactus/arrangements/CactusNumerical/SummationByParts/src/get_offset.c:11:6: note: previous definition of ‘get_shiftout’ with type ‘void(const void * const, CCTK_INT4 *)’ {aka ‘void(const void * const, int *)’} 11 | void get_shiftout ( const CCTK_POINTER_TO_CONST cctkGH_,
What appears to be happening is that the c_file_processor.pl is not handling the generation of creating a fortran function in place of CCTK_FNAME so far as I understand it. For instance, if I check the `Cactus/configs/test/build/SummationByParts/get_offset.c` file, the CCTK_FNAME statement is still there. Conversely, if I check `Cactus/configs/test/build/Boundary/FlatBoundary.c` which also uses CCTK_FNAME, these statements have been correctly removed by the pre-processor.
Oddly enough, if I run `make test --just-print` I obtain the following which suggests that it is at least executing the processor correctly.
Checking status of thorn SummationByParts if [ ! -d ./ ] ; then mkdir -p ./ ; fi cd ./ ; make CCTK_TARGET=make.checked TOP=/home/user/lib/ETKREL/Cactus/configs/test CONFIG=/home/user/lib/ETKREL/Cactus/configs/test/config-data SRCDIR=/home/user/lib/ETKREL/Cactus/arrangements/CactusNumerical/SummationByParts/src THORN=SummationByParts USESTHORNS="" -f /home/user/lib/ETKREL/Cactus/lib/make/make.subdir{if test yes = 'yes'; then echo '#line 1 "'/home/user/lib/ETKREL/Cactus/arrangements/CactusNumerical/SummationByParts/src/get_offset.c'"'; fi; cat /home/user/lib/ETKREL/Cactus/arrangements/CactusNumerical/SummationByParts/src/get_offset.c; } | perl -s /home/user/lib/ETKREL/Cactus/lib/sbin/c_file_processor.pl -line_directives=yes -source_file_name=/home/user/lib/ETKREL/Cactus/arrangements/CactusNumerical/SummationByParts/src/get_offset.c /home/user/lib/ETKREL/Cactus/configs/test/config-data > get_offset.c echo COMPILING CactusNumerical/SummationByParts/src/get_offset.c
I have compared the above to the compilation of Boundary/src/FlatBoundary.c which compiles successfully and also includes the generation of a number of Fortran functions using CCTK_FNAME. So far, no discrepancies have been found that would highlight why summationbyparts is failing.
I will continue to try and resolve this, but I hope someone with more experience with the pre-processors will be able to shed some light on the issue.
Cheers,
Samuel