error compiling abinit 7.6.2 with external dependencies  [SOLVED]

option, parallelism,...

Moderators: fgoudreault, mcote

Forum rules
Please have a look at ~abinit/doc/config/build-config.ac in the source package for detailed and up-to-date information about the configuration of Abinit 8 builds.
For a video explanation on how to build Abinit 7.x for Linux, please go to: http://www.youtube.com/watch?v=DppLQ-KQA68.
IMPORTANT: when an answer solves your problem, please check the little green V-like button on its upper-right corner to accept it.
Locked
lorenzodona
Posts: 36
Joined: Tue May 14, 2013 12:04 am

error compiling abinit 7.6.2 with external dependencies  [SOLVED]

Post by lorenzodona » Thu Apr 10, 2014 11:24 am

I successfully compiled abinit 7.6.2 without trio flavor on mac os x 10.9.2 but when i try to compile it with trio flavor=netcdf+etsf_io i found this error I think in ncgen3:
Making all in ncgen3
depbase=`echo main.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
/opt/local//bin/mpicc -m64 -DHAVE_CONFIG_H -I. -I.. -I../fortran -I.. -I../libsrc -I../libsrc -DNDEBUG -DpgiFortran -I/Users/lorenzodona/abinit-7.6.2/fallbacks/exports/include -g -O2 -MT main.o -MD -MP -MF $depbase.Tpo -c -o main.o main.c &&\
mv -f $depbase.Tpo $depbase.Po
depbase=`echo load.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
/opt/local//bin/mpicc -m64 -DHAVE_CONFIG_H -I. -I.. -I../fortran -I.. -I../libsrc -I../libsrc -DNDEBUG -DpgiFortran -I/Users/lorenzodona/abinit-7.6.2/fallbacks/exports/include -g -O2 -MT load.o -MD -MP -MF $depbase.Tpo -c -o load.o load.c &&\
mv -f $depbase.Tpo $depbase.Po
In file included from load.c:14:
./genlib.h:84:15: error: expected parameter declarator
extern size_t strlcat(char *dst, const char *src, size_t siz);
^
/usr/include/secure/_string.h:111:44: note: expanded from macro 'strlcat'
__builtin___strlcat_chk (dest, src, len, __darwin_obsz (dest))
^
/usr/include/secure/_common.h:39:62: note: expanded from macro '__darwin_obsz'
#define __darwin_obsz(object) __builtin_object_size (object, _USE_FORTIF...
^
/usr/include/secure/_common.h:30:32: note: expanded from macro
'_USE_FORTIFY_LEVEL'
# define _USE_FORTIFY_LEVEL 2
^
In file included from load.c:14:
./genlib.h:84:15: error: expected ')'
/usr/include/secure/_string.h:111:44: note: expanded from macro 'strlcat'
__builtin___strlcat_chk (dest, src, len, __darwin_obsz (dest))
^
/usr/include/secure/_common.h:39:62: note: expanded from macro '__darwin_obsz'
#define __darwin_obsz(object) __builtin_object_size (object, _USE_FORTIF...
^
/usr/include/secure/_common.h:30:32: note: expanded from macro
'_USE_FORTIFY_LEVEL'
# define _USE_FORTIFY_LEVEL 2
^
./genlib.h:84:15: note: to match this '('
/usr/include/secure/_string.h:111:44: note: expanded from macro 'strlcat'
__builtin___strlcat_chk (dest, src, len, __darwin_obsz (dest))
^
/usr/include/secure/_common.h:39:53: note: expanded from macro '__darwin_obsz'
#define __darwin_obsz(object) __builtin_object_size (object, _USE_FORTIF...
^
In file included from load.c:14:
./genlib.h:84:15: warning: type specifier missing, defaults to 'int'
[-Wimplicit-int]
extern size_t strlcat(char *dst, const char *src, size_t siz);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/secure/_string.h:111:44: note: expanded from macro 'strlcat'
__builtin___strlcat_chk (dest, src, len, __darwin_obsz (dest))
^~~~~~~~~~~~~~~~~~~~
/usr/include/secure/_common.h:39:31: note: expanded from macro '__darwin_obsz'
#define __darwin_obsz(object) __builtin_object_size (object, _USE_FORTIF...
^~~~~~~~~~~~~~~~~~~~~
In file included from load.c:14:
./genlib.h:84:15: error: conflicting types for '__builtin___strlcat_chk'
/usr/include/secure/_string.h:111:3: note: expanded from macro 'strlcat'
__builtin___strlcat_chk (dest, src, len, __darwin_obsz (dest))
^
./genlib.h:84:15: note: '__builtin___strlcat_chk' is a builtin with type
'unsigned long (char *, const char *, unsigned long, unsigned long)'
/usr/include/secure/_string.h:111:3: note: expanded from macro 'strlcat'
__builtin___strlcat_chk (dest, src, len, __darwin_obsz (dest))
^
1 warning and 3 errors generated.
make[6]: *** [load.o] Error 1
make[5]: *** [all-recursive] Error 1
make[4]: *** [all] Error 2
make[3]: *** [stamps/netcdf-build-stamp] Error 2
make[2]: [all-local] Error 2 (ignored)
Checking build of netcdf fallback
test -e stamps/netcdf-install-stamp
make[2]: *** [all-local] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

can i solve this problem?
thanks for your patience I added the log file from configuration
Thanks to hel me and again for your patience.
dearly lorenzo
Attachments
config.log
(133.36 KiB) Downloaded 386 times

User avatar
pouillon
Posts: 651
Joined: Wed Aug 19, 2009 10:08 am
Location: Spain
Contact:

Re: error compiling abinit 7.6.2 with netcdf

Post by pouillon » Mon Apr 14, 2014 4:18 pm

The NetCDF version shipped with Abinit dates back from a few years ago. It is possible that GCC 4.8, which is stricter on some aspects than earlier versions of GCC, produces an error where formerly they were issuing a warning.

Directly installing NetCDF from Macports or similar and pointing Abinit to it (see --with-netcdf-* options of configure) should solve your problem.
Yann Pouillon
Simune Atomistics
Donostia-San Sebastián, Spain

lorenzodona
Posts: 36
Joined: Tue May 14, 2013 12:04 am

Re: error compiling abinit 7.6.2 with netcdf

Post by lorenzodona » Wed Apr 23, 2014 7:29 pm

Dear pouillon I did like you told me using macport but at the end of the compilation i found this error:
Undefined symbols for architecture x86_64:
"_ATL_cGetNB", referenced from:
_ATL_ilaenv in liblapack.a(ATL_ilaenv.o)
"_ATL_dGetNB", referenced from:
_ATL_ilaenv in liblapack.a(ATL_ilaenv.o)
"_ATL_dgemoveT", referenced from:
_ATL_dgelqf in liblapack.a(ATL_dgelqf.o)
_ATL_dgelqr.constprop.0 in liblapack.a(ATL_dgelqr.o)
_ATL_dgelqr in liblapack.a(ATL_dgelqr.o)
"_ATL_dsqtrans", referenced from:
_ATL_dgelqf in liblapack.a(ATL_dgelqf.o)
"_ATL_sGetNB", referenced from:
_ATL_ilaenv in liblapack.a(ATL_ilaenv.o)
"_ATL_xerbla", referenced from:
_ATL_dgelqf in liblapack.a(ATL_dgelqf.o)
_ATL_dgeqrf in liblapack.a(ATL_dgeqrf.o)
"_ATL_zGetNB", referenced from:
_ATL_ilaenv in liblapack.a(ATL_ilaenv.o)
ld: symbol(s) not found for architecture x86_64
collect2: error: ld returned 1 exit status
make[5]: *** [bsepostproc] Error 1
make[5]: *** Waiting for unfinished jobs....
Undefined symbols for architecture x86_64:
"_ATL_cGetNB", referenced from:
_ATL_ilaenv in liblapack.a(ATL_ilaenv.o)
"_ATL_dGetNB", referenced from:
_ATL_ilaenv in liblapack.a(ATL_ilaenv.o)
"_ATL_dgemoveT", referenced from:
_ATL_dgelqf in liblapack.a(ATL_dgelqf.o)
_ATL_dgelqr.constprop.0 in liblapack.a(ATL_dgelqr.o)
_ATL_dgelqr in liblapack.a(ATL_dgelqr.o)
"_ATL_dger", referenced from:
_ATL_dgetf2 in liblapack.a(ATL_dgetf2.o)
"_ATL_dscal", referenced from:
_ATL_zgelqr.constprop.0 in liblapack.a(ATL_zgelqr.o)
_ATL_zgelqr in liblapack.a(ATL_zgelqr.o)
_ATL_zlacgv in liblapack.a(ATL_zlacgv.o)
"_ATL_dsqtrans", referenced from:
_ATL_dgelqf in liblapack.a(ATL_dgelqf.o)
"_ATL_sGetNB", referenced from:
_ATL_ilaenv in liblapack.a(ATL_ilaenv.o)
"_ATL_xerbla", referenced from:
_atl_f77wrap_dgetrf_ in liblapack.a(ATL_f77wrap_dgetrf.o)
_atl_f77wrap_dgetri_ in liblapack.a(ATL_f77wrap_dgetri.o)
_ATL_dgelqf in liblapack.a(ATL_dgelqf.o)
_ATL_dgeqrf in liblapack.a(ATL_dgeqrf.o)
_ATL_zgelqf in liblapack.a(ATL_zgelqf.o)
_ATL_zgeqrf in liblapack.a(ATL_zgeqrf.o)
"_ATL_zGetNB", referenced from:
_ATL_ilaenv in liblapack.a(ATL_ilaenv.o)
"_ATL_zgemoveT", referenced from:
_ATL_zgelqf in liblapack.a(ATL_zgelqf.o)
_ATL_zgelqr.constprop.0 in liblapack.a(ATL_zgelqr.o)
_ATL_zgelqr in liblapack.a(ATL_zgelqr.o)
"_ATL_zsqtrans", referenced from:
_ATL_zgelqf in liblapack.a(ATL_zgelqf.o)
ld: symbol(s) not found for architecture x86_64
collect2: error: ld returned 1 exit status
make[5]: *** [anaddb] Error 1
Undefined symbols for architecture x86_64:
"_ATL_cGetNB", referenced from:
_ATL_ilaenv in liblapack.a(ATL_ilaenv.o)
"_ATL_ccplxdivide", referenced from:
_ATL_cgetrfC in liblapack.a(ATL_cgetrfC.o)
_ATL_cgetrfR in liblapack.a(ATL_cgetrfR.o)
_ATL_cgetf2 in liblapack.a(ATL_cgetf2.o)
"_ATL_ccplxinvert", referenced from:
_ATL_cgetrfC in liblapack.a(ATL_cgetrfC.o)
_ATL_cgetrfR in liblapack.a(ATL_cgetrfR.o)
_ATL_ctrtriCL in liblapack.a(ATL_ctrtriCL.o)
_ATL_ctrtriCU in liblapack.a(ATL_ctrtriCU.o)
_ATL_ctrtriRL in liblapack.a(ATL_ctrtriRL.o)
_ATL_ctrtriRU in liblapack.a(ATL_ctrtriRU.o)
_ATL_cgetf2 in liblapack.a(ATL_cgetf2.o)
...
"_ATL_cgeru", referenced from:
_ATL_cgetf2 in liblapack.a(ATL_cgetf2.o)
"_ATL_dGetNB", referenced from:
_ATL_ilaenv in liblapack.a(ATL_ilaenv.o)
"_ATL_dgemoveT", referenced from:
_ATL_dgelqf in liblapack.a(ATL_dgelqf.o)
_ATL_dgelqr.constprop.0 in liblapack.a(ATL_dgelqr.o)
_ATL_dgelqr in liblapack.a(ATL_dgelqr.o)
"_ATL_dger", referenced from:
_ATL_dgetf2 in liblapack.a(ATL_dgetf2.o)
"_ATL_dscal", referenced from:
_ATL_zgelqr.constprop.0 in liblapack.a(ATL_zgelqr.o)
_ATL_zgelqr in liblapack.a(ATL_zgelqr.o)
_ATL_zlacgv in liblapack.a(ATL_zlacgv.o)
"_ATL_dsqtrans", referenced from:
_ATL_dgelqf in liblapack.a(ATL_dgelqf.o)
"_ATL_sGetNB", referenced from:
_ATL_ilaenv in liblapack.a(ATL_ilaenv.o)
"_ATL_sger", referenced from:
_ATL_sgetf2 in liblapack.a(ATL_sgetf2.o)
"_ATL_sscal", referenced from:
_ATL_clacgv in liblapack.a(ATL_clacgv.o)
"_ATL_xerbla", referenced from:
_atl_f77wrap_cgesv_ in liblapack.a(ATL_f77wrap_cgesv.o)
_atl_f77wrap_dgesv_ in liblapack.a(ATL_f77wrap_dgesv.o)
_atl_f77wrap_sgesv_ in liblapack.a(ATL_f77wrap_sgesv.o)
_atl_f77wrap_zgesv_ in liblapack.a(ATL_f77wrap_zgesv.o)
_ATL_dgelqf in liblapack.a(ATL_dgelqf.o)
_ATL_dgeqrf in liblapack.a(ATL_dgeqrf.o)
_atl_f77wrap_cgetrf_ in liblapack.a(ATL_f77wrap_cgetrf.o)
...
"_ATL_zGetNB", referenced from:
_ATL_ilaenv in liblapack.a(ATL_ilaenv.o)
"_ATL_zcplxdivide", referenced from:
_ATL_zgetrfC in liblapack.a(ATL_zgetrfC.o)
_ATL_zgetrfR in liblapack.a(ATL_zgetrfR.o)
_ATL_zgetf2 in liblapack.a(ATL_zgetf2.o)
"_ATL_zcplxinvert", referenced from:
_ATL_zgetrfC in liblapack.a(ATL_zgetrfC.o)
_ATL_zgetrfR in liblapack.a(ATL_zgetrfR.o)
_ATL_ztrtriCL in liblapack.a(ATL_ztrtriCL.o)
_ATL_ztrtriCU in liblapack.a(ATL_ztrtriCU.o)
_ATL_ztrtriRL in liblapack.a(ATL_ztrtriRL.o)
_ATL_ztrtriRU in liblapack.a(ATL_ztrtriRU.o)
_ATL_zgetf2 in liblapack.a(ATL_zgetf2.o)
...
"_ATL_zgemoveT", referenced from:
_ATL_zgelqf in liblapack.a(ATL_zgelqf.o)
_ATL_zgelqr.constprop.0 in liblapack.a(ATL_zgelqr.o)
_ATL_zgelqr in liblapack.a(ATL_zgelqr.o)
"_ATL_zgeru", referenced from:
_ATL_zgetf2 in liblapack.a(ATL_zgetf2.o)
"_ATL_zsqtrans", referenced from:
_ATL_zgelqf in liblapack.a(ATL_zgelqf.o)
ld: symbol(s) not found for architecture x86_64
collect2: error: ld returned 1 exit status
make[5]: *** [abinit] Error 1
make[4]: *** [all-recursive] Error 1
make[3]: *** [all-recursive] Error 1
make[2]: *** [all] Error 2
make[1]: *** [multi] Error 2
make: *** [mj4] Error 2

and an error like this in 98main I found using fftw3 downloaded with macport
Please can you help me?
this is my configuration:
MacBook-Pro-di-Lorenzo-Dona:abinit-7.6.2 lorenzodona$ ./configure --enable-mpi=yes --with-mpi-prefix=/opt/local FCFLAGS_OPTIM="-g -O3 -Wl,-search_paths_first" CXXFLAGS="-g -O3 -Wl,-search_paths_first" --enable-zdot-bugfix=yes --enable-optim=safe -with-mpi-level=1 --enable-mpi-io=yes -with-dft-flavor="atompaw+bigdft+libxc+wannier90" -with-trio-flavor="netcdf+etsf_io" with_netcdf_incs="-I/opt/local/include/" with_netcdf_libs="-L/opt/local/lib/ -lnetcdff -lnetcdf"
Thanks so much.
dearly lorenzo
thank for your patience

User avatar
pouillon
Posts: 651
Joined: Wed Aug 19, 2009 10:08 am
Location: Spain
Contact:

Re: error compiling abinit 7.6.2 with netcdf

Post by pouillon » Fri Apr 25, 2014 11:23 am

Your compiler is looking for the Atlas library for linear algebra. You should also install it from Macports and/or make sure you have installed all its development-related components.
Yann Pouillon
Simune Atomistics
Donostia-San Sebastián, Spain

lorenzodona
Posts: 36
Joined: Tue May 14, 2013 12:04 am

Re: error compiling abinit 7.6.2 with netcdf

Post by lorenzodona » Sat Apr 26, 2014 1:11 pm

Dear pouillon thanks to help me in this post and in the other one.
I solved the problem on netcdf using this configuration
./configure --enable-mpi=yes --enable-64bit-flags=yes --with-mpi-prefix=/Users/lorenzodona/Desktop/openmpi-1.7.1 FCFLAGS_OPTIM="-g -O3 -Wl",-search_paths_first CXXFLAGS="-g -O3 -Wl",-search_paths_first --enable-zdot-bugfix=yes --enable-optim=safe -with-mpi-level=1 CPP=/usr/local/gfortran/bin/cpp FCCPP=/usr/local/gfortran/bin/cpp --enable-mpi-io=yes -with-dft-flavor="libxc-fallback+atompaw-fallback+bigdft-fallback+wannier90-fallback" -with-trio-flavor="netcdf-fallback+etsf_io-fallback"
and it works but not wannier90 I compiled abinit with gcc version 4.8.2
but i have only a problem here mpirun doesn't work the error is:
--- !ERROR
message: |
Error in netcdf call while: get the id for ekinNetCDF: Variable not found
src_file: handle_ncerr.F90
src_line: 91
...


leave_new : decision taken to exit ...
calling XMPI_ABORT...
MPI_ERROR_STRING: MPI_ERR_UNKNOWN: unknown error
--------------------------------------------------------------------------
MPI_ABORT was invoked on rank 0 in communicator MPI_COMM_WORLD
with errorcode 14.

NOTE: invoking MPI_ABORT causes Open MPI to kill all MPI processes.
You may or may not see output from other processes, depending on
exactly when Open MPI kills them.


I found another problem I am not able to compile abinit with fftw3.

I compiled fftw3.3.4 and compiled abinit with this configuration:
./configure --enable-mpi=yes --enable-64bit-flags=yes --with-mpi-prefix=/Users/lorenzodona/openmpi-1.8.1/ FCFLAGS_OPTIM="-g -O3 -Wl",-search_paths_first CXXFLAGS="-g -O3 -Wl",-search_paths_first --enable-zdot-bugfix=yes --enable-optim=safe -with-mpi-level=1 CPP=/usr/local/gfortran/bin/cpp FCCPP=/usr/local/gfortran/bin/cpp --enable-mpi-io=yes -with-dft-flavor="libxc+atompaw+bigdft+wannier90" -with-trio-flavor="netcdf+etsf_io" --enable-openmp=yes --with-fft-flavor="fftw3" --with-fft-libs="-L/Users/lorenzodona/fftw-3.3.4/lib -lfftw3" --with-fft-incs="-I/Users/lorenzodona/fft/Users/lorenzodona/fftw-3.3.4/include"

but i found this error
/Users/lorenzodona/fftw-3.3.4/lib -lfftw3 -llapack -lblas
Undefined symbols for architecture x86_64:
"_sfftw_execute_dft_", referenced from:
___m_fftw3_MOD_fftw3_fftpad_spc._omp_fn.15 in lib52_fft_mpi_noabirule.a(m_fftw3.o)
___m_fftw3_MOD_fftw3_fftpad_spc._omp_fn.14 in lib52_fft_mpi_noabirule.a(m_fftw3.o)
___m_fftw3_MOD_fftw3_fftpad_spc._omp_fn.13 in lib52_fft_mpi_noabirule.a(m_fftw3.o)
___m_fftw3_MOD_fftw3_fftpad_spc._omp_fn.16 in lib52_fft_mpi_noabirule.a(m_fftw3.o)
___m_fftw3_MOD_fftw3_fftpad_spc._omp_fn.18 in lib52_fft_mpi_noabirule.a(m_fftw3.o)
___m_fftw3_MOD_fftw3_fftpad_spc._omp_fn.17 in lib52_fft_mpi_noabirule.a(m_fftw3.o)
___m_fftw3_MOD_fftw3_fftrisc_sp._omp_fn.51 in lib52_fft_mpi_noabirule.a(m_fftw3.o)
...
"_sfftw_plan_many_dft_", referenced from:
___m_fftw3_MOD_cplan_many_dft in lib52_fft_mpi_noabirule.a(m_fftw3.o)
ld: symbol(s) not found for architecture x86_64
collect2: error: ld returned 1 exit status
make[3]: *** [abinit] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

Please can you help me to compile abinit with fftw3 in a simple way..
thanks really a lot for your help.
dearly lorenzo

gabriel.antonius
Posts: 58
Joined: Mon May 03, 2010 10:34 pm

Re: error compiling abinit 7.6.2 with netcdf

Post by gabriel.antonius » Tue Jun 17, 2014 9:03 pm

I have a quick workaround. You don't actually need ncgen3 to run abinit with netCDF.
In the build directory, simply edit
fallbacks/sources/netcdf-4.1.1/Makefile : l 336

Code: Select all

# Does the user want to build ncgen/ncdump?
#NCGEN3 = ncgen3
NCGEN = ncgen
NCDUMP = ncdump

And the rest should go smoothly.
Gabriel Antonius
Université du Québec à Trois-Rivières

User avatar
gmatteo
Posts: 291
Joined: Sun Aug 16, 2009 5:40 pm

Re: error compiling abinit 7.6.2 with netcdf

Post by gmatteo » Tue Jun 17, 2014 10:28 pm

"_sfftw_execute_dft_", referenced from:
___m_fftw3_MOD_fftw3_fftpad_spc._omp_fn.15 in lib52_fft_mpi_noabirule.a(m_fftw3.o)
___m_fftw3_MOD_fftw3_fftpad_spc._omp_fn.14 in lib52_fft_mpi_noabirule.a(m_fftw3.o)
___m_fftw3_MOD_fftw3_fftpad_spc._omp_fn.13 in lib52_fft_mpi_noabirule.a(m_fftw3.o)
___m_fftw3_MOD_fftw3_fftpad_spc._omp_fn.16 in lib52_fft_mpi_noabirule.a(m_fftw3.o)
___m_fftw3_MOD_fftw3_fftpad_spc._omp_fn.18 in lib52_fft_mpi_noabirule.a(m_fftw3.o)
___m_fftw3_MOD_fftw3_fftpad_spc._omp_fn.17 in lib52_fft_mpi_noabirule.a(m_fftw3.o)
___m_fftw3_MOD_fftw3_fftrisc_sp._omp_fn.51 in lib52_fft_mpi_noabirule.a(m_fftw3.o)
...


You need the single-precision version of FFTW3 (libfftw3f) in addition to the double-precision version

If libfftw3f is not present in Users/lorenzodona/fftw-3.3.4/lib, you have to
reconfigure FFTW3, pass --enable-single to configure to enable the compilation of the single-precision library and then recompile

Then pass
--with-fft-libs="-L/Users/lorenzodona/fftw-3.3.4/lib -lfftw3 -lfftw3f"

to the configure script of Abinit

Locked