[gmx-users] problem building Gromacs 4.5.3 using the Intel compiler
Carsten Kutzner
ckutzne at gwdg.de
Mon Dec 13 14:31:10 CET 2010
Hi,
you might also need to use the mpiicc compiler wrapper instead
of the mpicc to enforce using icc instead of gcc.
Carsten
On Dec 13, 2010, at 2:20 PM, Mark Abraham wrote:
>
>
> On 12/13/10, "Miah Wadud Dr (ITCS)" <W.Miah at uea.ac.uk> wrote:
>> Hello,
>>
>> I am trying to build Gromacs 4.5.3 using the Intel compiler, but I am encountering the following problems when I type "make":
>
> It seems like there's some mismatch between how FFTW was compiled and how you're linking to it. Try a fresh FFTW compilation with this compiler, etc.
>
> Mark
>>
>> /bin/sh ../../libtool --tag=CC --mode=link mpicc -O3 -tpp7 -axW -ip -w -msse2 -funroll-all-loops -std=gnu99 -L/gpfs/grace/fftw-3.2.2/lib -o grompp grompp.o libgmxpreprocess_mpi_d.la ../mdlib/libmd_mpi_d.la ../gmxlib/libgmx_mpi_d.la -lnsl -lm
>> mpicc -O3 -tpp7 -axW -ip -w -msse2 -funroll-all-loops -std=gnu99 -o grompp grompp.o -L/gpfs/grace/fftw-3.2.2/lib ./.libs/libgmxpreprocess_mpi_d.a /gpfs/ueasystem/grace/gromacs-4.5.3/src/mdlib/.libs/libmd_mpi_d.a ../mdlib/.libs/libmd_mpi_d.a /gpfs/grace/fftw-3.2.2/lib/libfftw3.a /gpfs/ueasystem/grace/gromacs-4.5.3/src/gmxlib/.libs/libgmx_mpi_d.a ../gmxlib/.libs/libgmx_mpi_d.a -lnsl -lm
>> /gpfs/grace/fftw-3.2.2/lib/libfftw3.a(mapflags.o): In function `timelimit_to_flags':
>> /gpfs/ueasystem/grace/fftw-3.2.2/api/./mapflags.c:70: undefined reference to `__fmth_i_dlog'
>> /gpfs/ueasystem/grace/fftw-3.2.2/api/./mapflags.c:70: undefined reference to `__fmth_i_dlog'
>> /gpfs/grace/fftw-3.2.2/lib/libfftw3.a(timer.o): In function `elapsed':
>> /gpfs/ueasystem/grace/fftw-3.2.2/kernel/./cycle.h:244: undefined reference to `__mth_i_dfloatuk'
>> /gpfs/ueasystem/grace/fftw-3.2.2/kernel/./cycle.h:244: undefined reference to `__mth_i_dfloatuk'
>> /gpfs/grace/fftw-3.2.2/lib/libfftw3.a(generic.o): In function `apply':
>> /gpfs/ueasystem/grace/fftw-3.2.2/dft/./generic.c:73: undefined reference to `__builtin_alloca'
>> /gpfs/grace/fftw-3.2.2/lib/libfftw3.a(lt8-generic.o): In function `apply_r2hc':
>> /gpfs/ueasystem/grace/fftw-3.2.2/rdft/./generic.c:74: undefined reference to `__builtin_alloca'
>> /gpfs/grace/fftw-3.2.2/lib/libfftw3.a(lt8-generic.o): In function `apply_hc2r':
>> /gpfs/ueasystem/grace/fftw-3.2.2/rdft/./generic.c:128: undefined reference to `__builtin_alloca'
>> /gpfs/grace/fftw-3.2.2/lib/libfftw3.a(vrank3-transpose.o): In function `transpose_toms513':
>> /gpfs/ueasystem/grace/fftw-3.2.2/rdft/./vrank3-transpose.c:536: undefined reference to `__c_mzero1'
>> /gpfs/grace/fftw-3.2.2/lib/libfftw3.a(trig.o): In function `real_cexp':
>> /gpfs/ueasystem/grace/fftw-3.2.2/kernel/./trig.c:65: undefined reference to `__fmth_i_dsincos'
>> /gpfs/grace/fftw-3.2.2/lib/libfftw3.a(dht-rader.o): In function `apply':
>> /gpfs/ueasystem/grace/fftw-3.2.2/rdft/./dht-rader.c:79: undefined reference to `__c_mzero8'
>> /gpfs/grace/fftw-3.2.2/lib/libfftw3.a(dht-rader.o): In function `mkomega':
>> /gpfs/ueasystem/grace/fftw-3.2.2/rdft/./dht-rader.c:184: undefined reference to `__c_mzero8'
>> /gpfs/ueasystem/grace/fftw-3.2.2/rdft/./dht-rader.c:187: undefined reference to `__c_mcopy8_bwd'
>> /gpfs/grace/fftw-3.2.2/lib/libfftw3.a(ct-hc2c-direct.o): In function `apply_buf':
>> /gpfs/ueasystem/grace/fftw-3.2.2/rdft/./ct-hc2c-direct.c:130: undefined reference to `__builtin_alloca'
>> /gpfs/grace/fftw-3.2.2/lib/libfftw3.a(dftw-direct.o): In function `apply_buf':
>> /gpfs/ueasystem/grace/fftw-3.2.2/dft/./dftw-direct.c:103: undefined reference to `__builtin_alloca'
>> /gpfs/grace/fftw-3.2.2/lib/libfftw3.a(direct.o): In function `apply_buf':
>> /gpfs/ueasystem/grace/fftw-3.2.2/dft/./direct.c:74: undefined reference to `__builtin_alloca'
>> /gpfs/grace/fftw-3.2.2/lib/libfftw3.a(direct-r2c.o): In function `iterate':
>> /gpfs/ueasystem/grace/fftw-3.2.2/rdft/./direct-r2c.c:129: undefined reference to `__builtin_alloca'
>> /gpfs/grace/fftw-3.2.2/lib/libfftw3.a(hc2hc-direct.o): In function `apply_buf':
>> /gpfs/ueasystem/grace/fftw-3.2.2/rdft/./hc2hc-direct.c:96: undefined reference to `__builtin_alloca'
>> make[3]: *** [grompp] Error 1
>> make[3]: Leaving directory `/gpfs/ueasystem/grace/gromacs-4.5.3/src/kernel'
>> make[2]: *** [all-recursive] Error 1
>> make[2]: Leaving directory `/gpfs/ueasystem/grace/gromacs-4.5.3/src'
>> make[1]: *** [all] Error 2
>> make[1]: Leaving directory `/gpfs/ueasystem/grace/gromacs-4.5.3/src'
>> make: *** [all-recursive] Error 1
>> [root at head00 gromacs-4.5.3]#
>>
>> Any help will be greatly appreciated. The configure command prints the following:
>>
>> [root at head00 gromacs-4.5.3]# ./configure --enable-double --enable-mpi --program-suffix=_mpi_d --prefix=/gpfs/grace/gromacs-4.5.3
>> checking build system type... x86_64-unknown-linux-gnu
>> checking host system type... x86_64-unknown-linux-gnu
>> checking for a BSD-compatible install... /usr/bin/install -c
>> checking whether build environment is sane... yes
>> checking for a thread-safe mkdir -p... /bin/mkdir -p
>> checking for gawk... gawk
>> checking whether make sets $(MAKE)... yes
>> checking how to create a ustar tar archive... gnutar
>> checking for C compiler default output file name... a.out
>> checking whether the C compiler works... yes
>> checking whether we are cross compiling... no
>> checking for suffix of executables...
>> checking for suffix of object files... o
>> checking whether we are using the GNU C compiler... yes
>> checking whether /gpfs/grace/intel/Compiler/11.1/073/bin/intel64/icc accepts -g... yes
>> checking for /gpfs/grace/intel/Compiler/11.1/073/bin/intel64/icc option to accept ISO C89... none needed
>> checking for style of include used by make... GNU
>> checking dependency style of /gpfs/grace/intel/Compiler/11.1/073/bin/intel64/icc... gcc3
>> checking dependency style of /gpfs/grace/intel/Compiler/11.1/073/bin/intel64/icc... gcc3
>> checking for mpxlc... no
>> checking for mpicc... mpicc
>> checking whether the MPI cc command works... yes
>> checking for MPI_IN_PLACE in collective operations... yes
>> checking for catamount... no
>> checking how to run the C preprocessor... mpicc -E
>> checking for grep that handles long lines and -e... /bin/grep
>> checking for egrep... /bin/grep -E
>> checking whether ln -s works... yes
>> checking whether mpicc accepts -msse2... yes
>> checking whether mpicc accepts -funroll-all-loops... yes
>> checking whether mpicc accepts -std=gnu99... yes
>> checking whether mpicc accepts -fexcess-precision=fast... no
>> checking whether mpicc accepts -O3 -tpp7 -axW -ip -w -msse2 -funroll-all-loops -std=gnu99... yes
>> checking whether byte ordering is bigendian... no
>> checking that size_t can hold pointers... yes
>> checking for SIGUSR1... yes
>> checking for pipes... yes
>> checking floating-point format... IEEE754 (little-endian byte and word order)
>> checking whether ln -s works... yes
>> checking whether make sets $(MAKE)... (cached) yes
>> checking for a sed that does not truncate output... /bin/sed
>> checking for ld used by mpicc... /usr/bin/ld
>> checking if the linker (/usr/bin/ld) is GNU ld... yes
>> checking for /usr/bin/ld option to reload object files... -r
>> checking for BSD-compatible nm... /usr/bin/nm -B
>> checking how to recognise dependent libraries... pass_all
>> checking dlfcn.h usability... yes
>> checking dlfcn.h presence... yes
>> checking for dlfcn.h... yes
>> checking whether we are using the GNU C++ compiler... yes
>> checking whether mpicc accepts -g... yes
>> checking dependency style of mpicc... gcc3
>> checking how to run the C++ preprocessor... mpicc -E
>> checking the maximum length of command line arguments... 32768
>> checking command to parse /usr/bin/nm -B output from mpicc object... ok
>> checking for objdir... .libs
>> checking for ar... ar
>> checking for ranlib... ranlib
>> checking for strip... strip
>> checking if mpicc supports -fno-rtti -fno-exceptions... yes
>> checking for mpicc option to produce PIC... -fPIC
>> checking if mpicc PIC flag -fPIC works... yes
>> checking if mpicc static flag -static works... no
>> checking if mpicc supports -c -o file.o... yes
>> checking whether the mpicc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
>> checking dynamic linker characteristics... GNU/Linux ld.so
>> checking how to hardcode library paths into programs... immediate
>> checking whether stripping libraries is possible... yes
>> checking for shl_load... no
>> checking for shl_load in -ldld... no
>> checking for dlopen... yes
>> checking whether a program can dlopen itself... yes
>> checking whether a statically linked program can dlopen itself... yes
>> checking if libtool supports shared libraries... yes
>> checking whether to build shared libraries... no
>> checking whether to build static libraries... yes
>> configure: creating libtool
>> appending configuration tag "CXX" to libtool
>> checking for ld used by mpicc... /usr/bin/ld -m elf_x86_64
>> checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes
>> checking whether the mpicc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
>> checking for mpicc option to produce PIC... -fPIC
>> checking if mpicc PIC flag -fPIC works... yes
>> checking if mpicc static flag -static works... no
>> checking if mpicc supports -c -o file.o... yes
>> checking whether the mpicc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
>> checking dynamic linker characteristics... GNU/Linux ld.so
>> checking how to hardcode library paths into programs... immediate
>> appending configuration tag "F77" to libtool
>> checking for special C compiler options needed for large files... no
>> checking for _FILE_OFFSET_BITS value needed for large files... no
>> checking for _LARGEFILE_SOURCE value needed for large files... no
>> configure: Using built-in math library with intel compiler
>> checking for fftw3.h... yes
>> checking for main in -lfftw3... yes
>> checking rpc/rpc.h usability... yes
>> checking rpc/rpc.h presence... yes
>> checking for rpc/rpc.h... yes
>> checking for rpc/xdr.h... yes
>> checking for xdr_float in -lnsl... yes
>> checking limits.h usability... yes
>> checking limits.h presence... yes
>> checking for limits.h... yes
>> checking unistd.h usability... yes
>> checking unistd.h presence... yes
>> checking for unistd.h... yes
>> checking for unistd.h... (cached) yes
>> checking sys/types.h usability... yes
>> checking sys/types.h presence... yes
>> checking for sys/types.h... yes
>> checking sys/time.h usability... yes
>> checking sys/time.h presence... yes
>> checking for sys/time.h... yes
>> checking dirent.h usability... yes
>> checking dirent.h presence... yes
>> checking for dirent.h... yes
>> checking regex.h usability... yes
>> checking regex.h presence... yes
>> checking for regex.h... yes
>> checking for working memcmp... yes
>> checking return type of signal handlers... void
>> checking for off_t... yes
>> checking for vprintf... yes
>> checking for _doprnt... no
>> checking if malloc debugging is wanted... no
>> checking for strcasecmp... yes
>> checking for strdup... yes
>> checking for gettimeofday... yes
>> checking for cbrt... yes
>> checking for isnan... yes
>> checking for _isnan... no
>> checking for isfinite... yes
>> checking for _isfinite... no
>> checking for fsync... yes
>> checking for fileno... yes
>> checking for bool... no
>> checking for library containing posix_memalign... none required
>> checking for library containing memalign... none required
>> checking for _aligned_malloc... no
>> checking size of int... 4
>> checking size of long int... 8
>> checking size of long long int... 8
>> checking size of off_t... 8
>> checking size of void*... 8
>> checking for X... libraries , headers
>> checking for gethostbyname... yes
>> checking for connect... yes
>> checking for remove... yes
>> checking for shmat... yes
>> checking for IceConnectionNumber in -lICE... yes
>> checking libxml/parser.h usability... no
>> checking libxml/parser.h presence... no
>> checking for libxml/parser.h... no
>> checking for an ANSI C-conforming const... yes
>> checking for size_t... yes
>> checking whether struct tm is in sys/time.h or time.h... time.h
>> checking for inline... inline
>> checking for C/C++ restrict keyword... __restrict
>> checking for uid_t... yes
>> checking for gid_t... yes
>> checking for sig_atomic_t... yes
>> checking whether your compiler can handle assembly files (*.s)... yes
>> checking whether as fully supports X86_64 SSE2... yes
>> checking whether byte ordering is bigendian... (cached) no
>> checking if dlopen supported... yes
>> configure: creating ./config.status
>> config.status: creating Makefile
>> config.status: creating src/Makefile
>> config.status: creating src/gmxlib/Makefile
>> config.status: creating src/gmxlib/libgmx_mpi_d.pc
>> config.status: creating src/gmxlib/gmx_blas/Makefile
>> config.status: creating src/gmxlib/gmx_lapack/Makefile
>> config.status: creating src/gmxlib/selection/Makefile
>> config.status: creating src/gmxlib/statistics/Makefile
>> config.status: creating src/gmxlib/trajana/Makefile
>> config.status: creating src/gmxlib/thread_mpi/Makefile
>> config.status: creating src/gmxlib/nonbonded/Makefile
>> config.status: creating src/gmxlib/nonbonded/nb_kernel_c/Makefile
>> config.status: creating src/gmxlib/nonbonded/nb_kernel_ia32_sse/Makefile
>> config.status: creating src/gmxlib/nonbonded/nb_kernel_ia32_sse2/Makefile
>> config.status: creating src/gmxlib/nonbonded/nb_kernel_x86_64_sse/Makefile
>> config.status: creating src/gmxlib/nonbonded/nb_kernel_x86_64_sse2/Makefile
>> config.status: creating src/gmxlib/nonbonded/nb_kernel_ppc_altivec/Makefile
>> config.status: creating src/gmxlib/nonbonded/nb_kernel_ia64_single/Makefile
>> config.status: creating src/gmxlib/nonbonded/nb_kernel_ia64_double/Makefile
>> config.status: creating src/gmxlib/nonbonded/nb_kernel_bluegene/Makefile
>> config.status: creating src/gmxlib/nonbonded/nb_kernel_power6/Makefile
>> config.status: creating src/gmxlib/nonbonded/nb_kernel_f77_single/Makefile
>> config.status: creating src/gmxlib/nonbonded/nb_kernel_f77_double/Makefile
>> config.status: creating include/Makefile
>> config.status: creating include/types/Makefile
>> config.status: creating include/thread_mpi/Makefile
>> config.status: creating include/thread_mpi/atomic/Makefile
>> config.status: creating src/mdlib/Makefile
>> config.status: creating src/mdlib/libmd_mpi_d.pc
>> config.status: creating src/kernel/Makefile
>> config.status: creating src/kernel/libgmxpreprocess_mpi_d.pc
>> config.status: creating src/tools/Makefile
>> config.status: creating src/tools/libgmxana_mpi_d.pc
>> config.status: creating src/ngmx/Makefile
>> config.status: creating src/contrib/Makefile
>> config.status: creating scripts/Makefile
>> config.status: creating admin/Makefile
>> config.status: creating share/Makefile
>> config.status: creating share/tutor/Makefile
>> config.status: creating share/tutor/gmxdemo/Makefile
>> config.status: creating share/tutor/nmr1/Makefile
>> config.status: creating share/tutor/nmr2/Makefile
>> config.status: creating share/tutor/water/Makefile
>> config.status: creating share/tutor/mixed/Makefile
>> config.status: creating share/tutor/methanol/Makefile
>> config.status: creating share/tutor/speptide/Makefile
>> config.status: creating share/template/Makefile
>> config.status: creating share/top/Makefile
>> config.status: creating share/top/gmx.ff/Makefile
>> config.status: creating share/top/gmx2.ff/Makefile
>> config.status: creating share/top/encadv.ff/Makefile
>> config.status: creating share/top/encads.ff/Makefile
>> config.status: creating share/top/oplsaa.ff/Makefile
>> config.status: creating share/top/gromos43a1.ff/Makefile
>> config.status: creating share/top/gromos43a2.ff/Makefile
>> config.status: creating share/top/gromos45a3.ff/Makefile
>> config.status: creating share/top/gromos53a5.ff/Makefile
>> config.status: creating share/top/gromos53a6.ff/Makefile
>> config.status: creating share/top/charmm27.ff/Makefile
>> config.status: creating share/top/amber94.ff/Makefile
>> config.status: creating share/top/amber96.ff/Makefile
>> config.status: creating share/top/amberGS.ff/Makefile
>> config.status: creating share/top/amber99.ff/Makefile
>> config.status: creating share/top/amber99sb.ff/Makefile
>> config.status: creating share/top/amber99sb-ildn.ff/Makefile
>> config.status: creating share/top/amber03.ff/Makefile
>> config.status: creating share/html/Makefile
>> config.status: creating share/html/images/Makefile
>> config.status: creating share/html/online/Makefile
>> config.status: creating man/Makefile
>> config.status: creating man/man1/Makefile
>> config.status: creating man/man7/Makefile
>> config.status: creating Doxyfile
>> config.status: creating src/config.h
>> config.status: executing depfiles commands
>>
>> * On most platforms you can save 10X space with dynamic libraries, although
>> the binaries might be less portable. Why not try --enable-shared ?
>> [root at head00 gromacs-4.5
>>
>> ----------
>> Wadud Miah
>> High Performance Computing Systems Developer
>> Research Computing Services, University of East Anglia
>> Telephone: 01603 593856
>>
>> Information Services
>> ----------
>>
>>
>> --
>> gmx-users mailing list gmx-users at gromacs.org
>> http://lists.gromacs.org/mailman/listinfo/gmx-users
>> Please search the archive at http://www.gromacs.org/Support/Mailing_Lists/Search before posting!
>> Please don't post (un)subscribe requests to the list. Use the
>> www interface or send it to gmx-users-request at gromacs.org.
>> Can't post? Read http://www.gromacs.org/Support/Mailing_Lists
> --
> gmx-users mailing list gmx-users at gromacs.org
> http://lists.gromacs.org/mailman/listinfo/gmx-users
> Please search the archive at http://www.gromacs.org/Support/Mailing_Lists/Search before posting!
> Please don't post (un)subscribe requests to the list. Use the
> www interface or send it to gmx-users-request at gromacs.org.
> Can't post? Read http://www.gromacs.org/Support/Mailing_Lists
More information about the gromacs.org_gmx-users
mailing list