[ET Trac] [Einstein Toolkit] #974: Compilation problem in LoopControl with xlc compiler
Einstein Toolkit
trac-noreply at einsteintoolkit.org
Wed Jul 11 10:16:58 CDT 2012
#974: Compilation problem in LoopControl with xlc compiler
-----------------------------------------+----------------------------------
Reporter: wolfgang.kastaun@… | Owner: eschnett
Type: defect | Status: new
Priority: major | Milestone:
Component: Carpet | Version: development version
Keywords: |
-----------------------------------------+----------------------------------
I was trying to compile ET on MareNostrum (BSC) using the xlc/xlC/xlf
compiler suite version 10.01 and failed. The first relevant error reads:
"/gpfs/home/uv08/uv08986/source/Cactus/configs/z4pisky_std/build/LoopControl/loopcontrol.c",
line 1371.1: 1506-343 (S) Redeclaration of lc_statmap_init differs from
previous declaration on line 631 of
"/gpfs/home/uv08/uv08986/source/Cactus/configs/z4pisky_std/build/LoopControl/loopcontrol.c".
"/gpfs/home/uv08/uv08986/source/Cactus/configs/z4pisky_std/build/LoopControl/loopcontrol.c",
line 1371.1: 1506-376 (I) Redeclaration of lc_statmap_init has a different
number of fixed parameters than the previous declaration.
"/gpfs/home/uv08/uv08986/source/Cactus/configs/z4pisky_std/build/LoopControl/loopcontrol.c",
line 1371.1: 1506-377 (I) The type "char*" of parameter 3 differs from the
previous type "const char* restrict const".
The fist declaration reads:
630 void
631 lc_statmap_init (int * restrict const initialised,
632 lc_statmap_t * restrict const lm,
633 char const * restrict const name)
634 {
while the second is
1374 CCTK_FCALL
1375 void
1376 lc_statmap_init (int * restrict const initialised,
1377 lc_statmap_t * restrict const lm,
1378 ONE_FORTSTRING_ARG)
1379 {
From the compiler message, I guess ONE_FORTSTRING_ARG expanded to
something of type char*
It seems the idea here is to provide a version of a C function callable
from Fortran. However, it ends up having the same name and argument types
(apart from const-ness), which is forbidden. From the Cactus manual I
would guess one needs to wrap the second declaration inside a CCTK_FNAME
macro, like
void CCTK_FCALL CCTK_FNAME(lc_statmap_init)(int * restrict const
initialised, lc_statmap_t * restrict const lm, ONE_FORTSTRING_ARG) {
--
Ticket URL: <https://trac.einsteintoolkit.org/ticket/974>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit
More information about the Trac
mailing list