Page 1 of 1

Problem compiling Atompaw

Posted: Tue Oct 16, 2012 11:52 am
by acastanedam
Good day

I am trying to compile last version of abinit (6.12.3) with last version of openmpi (1.6.2) compiled with intel compilers (version 13.0.0). Everything works fine until
the compilation of the Atompaw package, just in the final step of its compilation I get:

Code: Select all

libtool: link: mpif90 -free -g -extend-source -vec-report0 -noaltparam -nofpscomp -O3 -xHOST -g -I/opt/abinit-6.12.3/fallbacks/exports/include -o atompaw atompaw_prog.o --start-group --end-group  ./.libs/libatompaw.a -L/opt/intel/mkl/lib/intel64/ -L/opt/abinit-6.12.3/fallbacks/exports/lib -L/home/arcesio/Downloads/openmpi-1.6.2/opal/mca/hwloc/hwloc132/hwloc/src /usr/local/lib/libxc.a -lmkl_scalapack_lp64 -lmkl_blacs_openmpi_lp64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread /opt/abinit-6.12.3/fallbacks/exports/lib/libnetcdf.a /usr/local/lib/libmpi_f90.so /usr/local/lib/libmpi_f77.so /usr/local/lib/libmpi.so -lm -ldl -lrt -lnsl -lutil -pthread -rpath /usr/local/lib -rpath /usr/local/lib
ifort: command line warning #10006: ignoring unknown option '-fstart-group'
ifort: command line warning #10006: ignoring unknown option '-fend-group'
ifort: command line remark #10010: option '-pthread' is deprecated and will be removed in a future release. See '-help deprecated'
ifort: command line warning #10006: ignoring unknown option '-rpath'
ifort: command line warning #10006: ignoring unknown option '-rpath'
ipo: warning #11010: file format not recognized for /usr/local/lib
ipo: warning #11010: file format not recognized for /usr/local/lib
/usr/local/lib: file not recognized: Is a directory
make[6]: *** [atompaw] Error 1


Apart from the warnings, it looks like a problem in trying to pass the option -rpath to linker without -Wl, isn't it?

Thanks in advance for your help,

Arcesio CastaƱeda Medina
MPI
Halle, Saale

Re: Problem compiling Atompaw

Posted: Tue Oct 16, 2012 3:05 pm
by Alain_Jacques
Hi Arcesio,

You're right, the problem here is that the linker rpath directive is badly formed, ignored and the remaining /usr/local/lib directory is read as a library filename which the interprocess optimizer doesn't appreciate at all. Sorry but abinit 6 hasn't been tested with intel 13 compiler (?) - and I would probably not recommend to use anything from Intel that carries ".0.0" in its name :-) There are different treatments for the numerous versions of Intel compilers in the build system, I'll have a look on how to adapt it for Intel 13 for the future version of Abinit (and it has to be tested); atompaw configuration also has to be modified - there is something fishy with libtool here. I love the
We (the Libtool maintainers) assert that always using `-rpath' is a good thing
paragraph in libtool documentation.

The easiest solution for you here is probably to disable atompaw by configuring Abinit option with_dft_flavor="bigdft+libxc+wannier90". If you need this pseudo generator, you'll find the source tar.gz in your ~/.abinit/tarballs/ directory (or on its website) and ample info on how to compile it standalone - there is no benefit from using mpi compilers, atompaw is a sequential program - compile it with a decent version of gfortran, lapack, blas (or MKL for the extra performance but atompaw only runs for a few seconds) and libxc (there is a libxc.a conveniently available in you fallbacks/exports/lib/ directory)

Another "dirty" hack here would be to move to the fallbacks/sources/atompaw-3.0.1.3/src and perform the final link step that failed by pasting the line you mentioned i.e. mpif90 -free up to -pthread, removing the offending -rpath and the rest of the line. But it's only a partial reliever; if you restart the make process after that, it will try to rebuild atompaw again and fall on the same problem.

Kind regards,

Alain

Re: Problem compiling Atompaw

Posted: Tue Oct 16, 2012 5:31 pm
by acastanedam
Hi Alain

Thank you very much for your comments, really useful. I will try to compile Atompaw before compile the whole Abinit bundle.

Kind regards,

Arcesio