Page 1 of 2

Configure Error on IBM Power6

Posted: Thu Feb 25, 2010 11:43 pm
by Jia
Dear all,

It seems that I can't compile Yambo successfully on IBM power6 in serial
version or in parallel version.

The following is error message:


checking for Fortran name-mangling scheme... unknown
checking for external C routine (test) naming scheme... unknown
configure: WARNING: unknown Fortran name-mangling scheme
configure: error: unknown Fortran <-> C subroutines name conventions

The following is the serial configure option I used:

./configure CC=xlc_r CPP=cpp F77=xlf_r FC=xlf90_r FCFLAGS="-O2 -q64
-qstrict -qarch=pwr6 -qtune=pwr6 -qmaxmem=-1 -qsuffix=f=f"
--with-fftw=/usr/local/lib --with-netcdf-lib=/usr/local/lib
--with-netcdf-include=/usr/local/include --with-p2y=4.0
--with-iotk=/u/jiali/Code/espresso-4.0.5/iotk --build=powerpc-ibm

The config.log is too large. I can't attach it.

Thanks for your help.

Jia

Re: Configure Error on IBM Power6

Posted: Fri Feb 26, 2010 12:30 pm
by Conor Hogan
Dear Jia,
I tried your configure options on the SP6 in CINECA, and it worked ok for me. Which revision/version of the code are you using?
Obviously I can't understand more without the config.log file - please try to attach it in bzipped format, or send it to my personal email at [], and I'll have a look at it.
Regards,
Conor

Re: Configure Error on IBM Power6

Posted: Fri Feb 26, 2010 1:24 pm
by Jia
dear Conor,

i am now using Yambo 3.2.1 r.542.The config.log file has been sent to your mailbox.
Thanks

Jia

Re: Configure Error on IBM Power6

Posted: Fri Feb 26, 2010 2:33 pm
by Conor Hogan
Dear Jia,
The problem appears in the config.log (which was huge, only because the xlf90 -help output was copied 10 times!) as:

Code: Select all

configure:7517: checking for Fortran name-mangling scheme
configure:7536: xlf90_r -c -O2 -q64 -qstrict -qarch=pwr6 -qtune=pwr6 -qmaxmem=-1 -qsuffix=f=f   conftest.f >&5
** foobar   === End of Compilation 1 ===
** foo_bar   === End of Compilation 2 ===
1501-510  Compilation successful for file conftest.f.
configure:7543: $? = 0
configure:7598: xlc_r -o conftest -g   conftest.c cfortran_test.o   -lxlf90 -L/usr/lpp/xlf/lib -lxlopt -lxlf -lxlomp_ser -lpthreads -lm >&5
ld: 0711-736 ERROR: Input file cfortran_test.o:
        XCOFF64 object files are not allowed in 32-bit mode.
so there is some mixing of 32 and 64 bit objects for some reason. Why this causes problems on your machine, but not on mine, I don't know.

To fix the problem, I can suggest you force xlc_r to use a -q64 flag, like:

Code: Select all

./configure --build=powerpc-ibm FC=xlf90_r F77=xlf_r CC=xlc_r CPP=cpp FCFLAGS="-O2 -q64 -qstrict -qarch=pwr6 -qtune=pwr6 -qmaxmem=-1 -qsuffix=f=f" CFLAGS="-q64"
and if that doesnt work, trying forcing all the compilers to use the -q64 flag, e.g.

Code: Select all

CC='/usr/bin/xlc_r -q64'
F77='/usr/bin/xlf_r -q64'
CXX='/usr/bin/xlc_r -q64' 
If the problem persists, look carefully at the relevant lines in config.log where the error appears and post them here.

Regards,
Conor

Re: Configure Error on IBM Power6

Posted: Fri Feb 26, 2010 6:45 pm
by Jia
Dear Conor,

The configure with -q64 works well. But I encounter another mistake when i compile yambo. The compilation is interrupted when compiling the file of mod_parser_m.f. I check the Makefile in parser directory. It seems that the flag using to compile the mod_parser_m.f is f90uflags, however, the f90uflags is not defined. I don't know how to define the f90uflags.
The attachment is the compilation log file.
Thanks

Jia

Re: Configure Error on IBM Power6

Posted: Fri Feb 26, 2010 9:41 pm
by andrea marini
Dear Jia,

did you run a make clean_all before running the configure and the gmake again ? .f files are, in general, left from previous unsuccessfull compilations and, if not cleaned, can produce unwanted errors.

Re: Configure Error on IBM Power6

Posted: Fri Feb 26, 2010 10:22 pm
by Jia
Dear Andrea,

Yes. I run a make clean_all before running the configure and gmake.
I look through the Makefile in the /src/parser directory. And i found the flowing information:

FC_NOOPT_SRC= mod_parser_m.o
#
$(FC_NOOPT_SRC):
@rm -f $*$(f90suffix)
@(eval $(cpp) $(cppflags) $(dopts) $*.F > $*$(f90suffix)) > /dev/null
@(eval $(fc) -c $(fcuflags) $(linclude) $*$(f90suffix)) > /dev/null
@echo $* " "
@rm -f $*$(f90suffix)

However, the head of the Makefile is as follow:


prefix = /u/jiali/Code/yambo-3.2.1
exec_prefix = ${prefix}/bin
pccflags =
cpp = cpp
cppflags = -P
f90 = xlf90_r
f90flags = -O2 -q64 -qstrict -qarch=pwr6 -qtune=pwr6 -qmaxmem=-1 -qsuffix=f=f
f90uflags =
f90suffix = .f
pf90 =
pf90flags =
f77 = xlf_r -q64
f77flags = -O2 -q64 -qstrict -qarch=pwr6 -qtune=pwr6 -qmaxmem=-1 -qsuffix=f=f
f77uflags =
package_bugreport = yambo@yambo-code.org
#
# Paths
#
prefix = /u/jiali/Code/yambo-3.2.1
exec_prefix = ${prefix}/bin
srcdir = /u/jiali/Code/yambo-3.2.1
libdir = /u/jiali/Code/yambo-3.2.1/lib
libpath = -L/u/jiali/Code/yambo-3.2.1/lib
includedir = /u/jiali/Code/yambo-3.2.1/include
lblas = -lblas
llapack = -llapack
llocal =
lblacs =
lscalapack =
lmpi =
lnetcdf =
iotk_dir = /u/jiali/Code/espresso-4.0.5/iotk/src
etsf_dir =
lfftw =
fc=$(f90)
fcflags=$(f90flags)
fcuflags=$(f90uflags)

It is obvious that the f90uflags (as red color marked) is not defined.


Jia

Re: Configure Error on IBM Power6

Posted: Sat Feb 27, 2010 12:13 am
by Conor Hogan
Dear Jia,
I think the problem is that since you are explicitly using FCFLAGS, the default flags (also for the unoptimized routines) become not recognized.
You should be able to set them manually adding

Code: Select all

UFFLAGS="-q64 -O0"
to the configure line (the -O0 switches off the optimization).

Incidentally, what does configure report if you do not specify FCFLAGS?
Note that you can always tweak the suggested flags from a successful configure, (before doing make), by editing the config/setup file.

Hope it helps!
Conor

Re: Configure Error on IBM Power6

Posted: Sat Feb 27, 2010 1:28 am
by Jia
Dear Conor,

Thanks. the problem is solved.

But i encounter another problem. I can't use netcdf library in power6. The following is the configure opintion:

./configure CC="xlc_r -q64" CPP=cpp F77="xlf_r" FC=xlf90_r UFFLAGS="-q64" FCFLAGS="-O2 -q64 -qstrict -qarch=pwr6 -qtune=pwr6 -qmaxmem=-1 -qsuffix=f=f" --without-mpi --with-netcdf-lib=/usr/local/lib --with-netcdf-include=/usr/local/include --with-p2y=4.0 --with-iotk=/u/jiali/Code/espresso-4.0.5/iotk --build=powerpc-ibm

After configuration, I get the corresponding to NETCDF like that

# [ ] NETCDF/Large Files

But I have checked the /usr/local/lib directory . The following files are included:

libnetcdf.a
libnetcdf64.a
libnetcdf64_c++.a
libnetcdf_c++.a

And the /usr/local/lib directory include the following files:
netcdf.h netcdf.hh netcdf.inc netcdf.mod netcdfcpp.h

I don't know why they are be recogized.

Thanks.

Jia

Re: Configure Error on IBM Power6

Posted: Sat Feb 27, 2010 9:21 am
by andrea marini
Jia wrote:
And the /usr/local/lib directory include the following files:
netcdf.h netcdf.hh netcdf.inc netcdf.mod netcdfcpp.h
If the module is in /usr/local/lib maybe you should try to use --with-netcdf-include=/usr/local/lib. Did you try ?