[Users] Compilation failure with xlc compiler

Wolfgang Kastaun kastaun at sissa.it
Fri Feb 18 16:27:04 CST 2011


On Fri, 2011-02-18 at 14:03 -0500, Erik Schnetter wrote:
> Wolfgang
> 
> While I don't know CINECA, I have configuration files for several
> other systems, available at
> <https://svn.cct.lsu.edu/repos/numrel/simfactory/branches/PYSIM_2010/mdb/optionlists/>.
> You may find the following interesting:
> 
> vip.cfg (AIX, xlc)
> bp.cfg (AIX, xlc)
> 
> and maybe also
> 
> bd.cfg (Linux, xlc)

Thanks. I tried a few of those compiler switches without luck, so tried
to find the root of the problem. Looking at the code in the build
directory, i.e. the source file that actually gets compiled, I notice
that the function lc_statmap_ini IS indeed redeclared. In the source
(not build) directry, we have the lines in loopcontrol.c:

944 CCTK_FCALL
945 void
946 CCTK_FNAME (lc_statmap_init) (int * restrict const initialised,
947                               lc_statmap_t * restrict const lm,
948                               ONE_FORTSTRING_ARG)

in the build directory, we have instead

944 CCTK_FCALL
945 void
946 lc_statmap_init (int * restrict const initialised,
947                               lc_statmap_t * restrict const lm,
948                               ONE_FORTSTRING_ARG)


According to the manual, somewhere in the build process CCTK_FNAME was
supposed to alter the function name in order to declare another version
callable from FORTRAN. But instead the name was left intact. My next
question is thus where and when is FNAME defined, where in the build
process is it applied, and how.

Wolfgang.

> 
> I don't know why the compiler would think that lc_statmap_init is
> redeclared (it is not), but maybe passing certain magic compiler flags
> will help. You can use the above configuration options for ideas.
> 
> -erik
> 
> On Fri, Feb 18, 2011 at 1:33 PM, Wolfgang Kastaun <kastaun at sissa.it> wrote:
> > Hi,
> > I am trying to compile the Chandrasekhar release of the Einstein Toolkit
> > on an AIX cluster (CINECA) using the native xlc compiler. It fails with
> > the following message:
> >
> > "/sp6/usersissa/sists082/sim_build/pizza_dev/configs/pizza_dev/build/LoopControl/loopcontrol.c", line 46.8: 1506-1108 (I) The use of keyword '__inline__' is non-portable.
> > "/sp6/usersissa/sists082/sim_build/pizza_dev/configs/pizza_dev/build/LoopControl/loopcontrol.c", line 946.1: 1506-343 (S) Redeclaration of lc_statmap_init differs from previous declaration on line 513 of "/sp6/usersissa/sists082/sim_build/pizza_dev/configs/pizza_dev/build/LoopControl/loopcontrol.c".
> > "/sp6/usersissa/sists082/sim_build/pizza_dev/configs/pizza_dev/build/LoopControl/loopcontrol.c", line 946.1: 1506-376 (I) Redeclaration of lc_statmap_init has a different number of fixed parameters than the previous declaration.
> > "/sp6/usersissa/sists082/sim_build/pizza_dev/configs/pizza_dev/build/LoopControl/loopcontrol.c", line 946.1: 1506-377 (I) The type "char*" of parameter 3 differs from the previous type "const char* restrict const".
> > "/sp6/usersissa/sists082/sim_build/pizza_dev/configs/pizza_dev/build/LoopControl/loopcontrol.c", line 957.1: 1506-343 (S) Redeclaration of lc_control_init differs from previous declaration on line 546 of "/sp6/usersissa/sists082/sim_build/pizza_dev/configs/pizza_dev/build/LoopControl/loopcontrol.c".
> > "/sp6/usersissa/sists082/sim_build/pizza_dev/configs/pizza_dev/build/LoopControl/loopcontrol.c", line 957.1: 1506-377 (I) The type "const int* restrict const" of parameter 3 differs from the previous type "const int".
> > "/sp6/usersissa/sists082/sim_build/pizza_dev/configs/pizza_dev/build/LoopControl/loopcontrol.c", line 977.1: 1506-334 (S) Identifier lc_control_finish has already been defined on line 801 of "/sp6/usersissa/sists082/sim_build/pizza_dev/configs/pizza_dev/build/LoopControl/loopcontrol.c".
> > gmake[3]: *** [loopcontrol.c.o] Error 1
> > gmake[2]: *** [make.checked] Error 2
> > gmake[1]: ***
> > [/sp6/usersissa/sists082/sim_build/pizza_dev/configs/pizza_dev/lib/libthorn_LoopControl.a] Error 2
> > gmake: *** [pizza_dev] Error 2
> >
> > --------------------------
> >
> > my option file looks like this:
> >
> > CC  = xlc_r
> > CXX = xlC_r
> > F90 = xlf90_r
> > F77 = xlf_r
> > CPP = cpp
> > FPP = /opt/freeware/bin/cpp
> >
> > CPPFLAGS =
> > CFLAGS   = -qspill=100000 -qsuppress=1501-245 -qlanglvl=stdc99
> > CXXFLAGS = -qspill=100000 -qsuppress=1501-245 -qrtti=all
> > F77FLAGS = -qspill=100000 -qsuppress=1501-245
> > F90FLAGS = -qspill=100000 -qsuppress=1501-245
> >
> >
> > DEBUG = no
> > OPTIMISE = yes
> >
> > OPTIMISE           = yes
> > CPP_OPTIMISE_FLAGS = -DNDEBUG
> > FPP_OPTIMISE_FLAGS = -DNDEBUG
> > C_OPTIMISE_FLAGS   = -O2 -qmaxmem=-1 -qarch=pwr6 -qtune=pwr6
> > CXX_OPTIMISE_FLAGS = -O2 -qmaxmem=-1 -qarch=pwr6 -qtune=pwr6
> > F77_OPTIMISE_FLAGS = -O2 -qmaxmem=-1 -qarch=pwr6 -qtune=pwr6
> > F90_OPTIMISE_FLAGS = -O2 -qmaxmem=-1 -qarch=pwr6 -qtune=pwr6
> >
> >
> > WARN = yes
> >
> > HDF5 = yes
> > HDF5_DIR = /cineca/prod/libraries/hdf5/1.8.4_ser/xl--10.1/
> > LIBSZ_DIR = /cineca/prod/libraries/szlib/2.1/xl--10.1/
> > GSL  = yes
> > GSL_DIR = /cineca/prod/libraries/gsl/1.9/xl--10.1/
> > MPI  = NATIVE
> > PTHREADS = no
> >
> >
> > --------------------------
> >
> > The compiler versions are:
> >
> > IBM XL C/C++ for AIX, V10.1
> > Version: 10.01.0000.0008
> >
> > IBM XL Fortran for AIX, V12.1
> > Version: 12.01.0000.0009
> >
> > --------------------------
> >
> >
> >
> > The same code compiled just fine on Ubuntu 10.10 using the gnu compiler.
> > Any ideas ?
> >
> >
> > Cheers,
> > Wolfgang.
> >
> >
> >
> >
> >
> > _______________________________________________
> > Users mailing list
> > Users at einsteintoolkit.org
> > http://lists.einsteintoolkit.org/mailman/listinfo/users
> >
> 
> 
> 




More information about the Users mailing list