Page 1 of 1

Issues compiling abinit 6.12.1 on Power6

Posted: Fri Mar 30, 2012 11:19 pm
by bccomstock
I'm attempting to compile abinit on an IBM Power6 running AIX 5.3. Everything seems to go fine until it gets to 2 files (irrzg.F90 and symfind.F90). When compiled, both of these files complain with the following error:

Code: Select all

mpxlf90_r -F /scr/abinit-6.12.1/xlf.cfg.53 -q64 -DHAVE_CONFIG_H -I. -I../.. -I../../src/incs -I../../src/incs -I/scr/abinit-6.12.1/fallbacks/exports/include    -WF,-DHAVE_CONFIG_H  -qsuffix=cpp=F90:f=f90 -qfree=f90 -qmoddir=/scr/abinit-6.12.1/src/mods -I/scr/abinit-6.12.1/src/mods -O3 -qmaxmem=65536 -qspill=2000 -qarch=auto -qtune=auto -qcache=auto -qstrict -qsuppress=1520-022:1520-031 -q64  -qzerosize  -c -o symfind.o symfind.F90
"/scr/tmp/F8409656x-qd7b", 1516-036 (S) Entity class  has undefined type.
** symfind   === End of Compilation 1 ===
1501-511  Compilation failed for file symfind.F90.


What I've found that they both have in common is a variable called 'class' declared as such:

Code: Select all

integer,allocatable :: class(:)   <-- irrzg.F90

integer,allocatable :: class(:,:)   <-- symfind.F90


It seems as though the mpxlf90_r compiler doesn't like the 'class' word due to the polymorphic entities available in Fortran 2003. The xlf.cfg.53 file we're pointing to has the following in the options, though:

Code: Select all

mpxlf90_r:  use = DEFLT
            libraries = -L/usr/lpp/ppe.poe/lib/threads,-L/usr/lpp/ppe.poe/lib,-L/lib/threads,-lmpi_r,-lxlf90,-L/usr/lpp/xlf/lib,-lxlopt,-lxlf,-lxlomp_
ser,-lpthreads,-lm,-lc
            proflibs = -L/usr/lpp/ppe.poe/lib/profiled/threads,-L/usr/lpp/ppe.poe/lib/profiled,-L/lib/profiled,-L/usr/lib/profiled
            smplibraries = -L/usr/lpp/ppe.poe/lib/threads,-L/usr/lpp/ppe.poe/lib,-L/lib/threads,-lmpi_r,-lxlf90,-L/usr/lpp/xlf/lib,-lxlopt,-lxlf,-lxlsm
p,-lpthreads,-lm,-lc
            options = -qxlf90=noautodealloc:nosignedzero:oldpad,-qthreaded,-qfree=f90,-binitfini:poe_remote_main,-qxlf2003=nopolymorphic:nobozlitargs:nostopexcept:novolatile:noautorealloc:oldnaninf
            include = -I/usr/lpp/ppe.poe/include


I would think that the -qxlf2003=nopolymorphic option would tell the compiler to ignore the 'class' word as being a polymorphic declaration, but apparently it doesn't.

Subsequently, changing 'class' to another variable name has allowed for proper compilation.. However, I was curious if this has been encountered before, and if so, what the resolution was, if any.

Thanks!

Re: Issues compiling abinit 6.12.1 on Power6

Posted: Sat Mar 31, 2012 9:14 pm
by jbeuken
Hi,

the configuration of our bot ( Power6 / AIX 6.1 / xlf 12.1 ) seems very similar
the section mpxlf90_r in our /etc/xlf.cfg.61 file ( or /etc/xlf.cfg.53 ) is exactly the same as your...

and we have no problem :o

( you can see the make output here for the abinit version 6.12.3 : http://www.abinit.org:8010/builders/ibm ... /logs/make )

perhaps , the version of compiler is slightly different... :roll:

Code: Select all

mpxlf90_r -qversion
IBM XL Fortran for AIX, V12.1
Version: 12.01.0000.0014


regards

jmb

Re: Issues compiling abinit 6.12.1 on Power6

Posted: Mon Apr 02, 2012 8:03 pm
by bccomstock
Hi jmb, thanks for responding..

Our default XLF compiler is v11.1.. I do have XLF v12 and v13 available to use, however.

Let me try XLF v12 (then v13) to see if the problem goes away. I did see an IBM document that one of the versions of the compiler had a bug report against the word 'TYPE' that had been fixed, so maybe this is a similar issue.

Re: Issues compiling abinit 6.12.1 on Power6

Posted: Tue Apr 03, 2012 5:38 pm
by bccomstock
Well, using the other compilers has resulted in some other errors. It seems that the first .F90 file it attempts to compile, 'm_iso_c_bindings.F90', tries to pull in the 'config.h' file. When it does so, though, every line in 'config.h' gets called out with a syntax error.

We have XLF 12 and 13 in non-standard locations, with the mpxlf90_r wrapper still in /usr/bin/. I load an XLF module to set the path for the 'xlf*' commands, which are in the non-default locations, but when using 'mpxlf*', all commands must pass through the /usr/bin/mpxlf* wrappers. I don't think this is an issue, but I was wondering if using the --with-fc-wrapper configure option would help. That way I could point FC to the non-default updated compilers and then point the fc-wrapper to the /usr/bin/mpxlf*.

It certainly is strange that our initial configurations are very similar but the issue doesn't appear for your builds..

Re: Issues compiling abinit 6.12.1 on Power6

Posted: Sun Apr 08, 2012 8:35 pm
by jbeuken
Hi,

a little question :

in the /etc/xlf.cfg.[53|61|71]

have you the -P for cppotions ?

Code: Select all

* Common definitions
DEFLT:    xlf     = /usr/lpp/xlf/bin/xlfentry
...
          cppoptions = -P
...


jmb

Re: Issues compiling abinit 6.12.1 on Power6

Posted: Mon Apr 09, 2012 10:44 pm
by bccomstock
For our XLF 11 xlf.cfg.53 file, we have the 'cppoptions = -P', but in the XLF 12 and 13 file, it says 'cppoptions = -C'.

Re: Issues compiling abinit 6.12.1 on Power6

Posted: Mon Apr 09, 2012 11:44 pm
by jbeuken
use -P with version 12

jmb