Re: AMBER: Amber Installation Help; link woes

From: Scott Brozell <sbrozell.scripps.edu>
Date: Tue, 8 Aug 2006 12:36:32 -0700

Hi,

On Tue, 8 Aug 2006, David A. Case wrote:

> On Mon, Aug 07, 2006, Kirk Hevener wrote:
>
> > I'm having difficulty installing Amber v9 parallel version (using
> > MPICH2 and g95 compiler on Linux i686 RHEL v4 multi-processor
> > workstation). The error text follows:
> >
> > dftb_skpar.o qm2_dftb_slkode.o qm2_dftb_slktrafo.o \
> > qm_div.o force.o \
> > ../lmod/lmod.a ../lapack/lapack.a ../blas/blas.a \
> > ../lib/nxtsec.o ../lib/sys.a -L/usr/local/bin/mpich2/lib -
> > lmpichf90 -lmpichf90 -lmpich -lpthread -lrt
> > evb_init.o(.data+0x42c): undefined reference to
> > `mpi_conversion_fn_null_'
> > evb_io.o(.data+0x42c): undefined reference to `mpi_conversion_fn_null_'
> > qmmm_module.o(.data+0x52c): undefined reference to
> > `mpi_conversion_fn_null_'
> > egb.o(.data+0x2088): undefined reference to `mpi_conversion_fn_null_'
> > egb.o(.data+0x24cc): undefined reference to `mpi_conversion_fn_null_'
> > multisander.o(.data+0x42c): more undefined references to
> > `mpi_conversion_fn_null_' follow
> > make[1]: *** [sander.MPI] Error 1
> > make[1]: Leaving directory `/usr/local/bin/amber9/src/sander'
> > make: *** [parallel] Error 2
>
> I don't have any specific suggestions, but two general ones. First, make sure
> that you can compile and run the test mpi applications that come with your
> mpich distribution. Make sure that you have compiled MPICH2 with the same
> compiler that you are using for Amber (i.e. with g95).
>
> Second, edit config.h (in $AMBERHOME/src) and substitute mpif90 (or whatever
> the executable wrapper is) for "g95". This may help find the correct
> libraries to link in.

The second suggestion should fix your problem.

But here is a general purpose procedure for debugging link problems.
The details are for MPICH2 but the procedure is general:
# go to the home of the library causing the link failures
cd $MPI_HOME/lib
# list the names of the symbols in all the archive files
# -A means add the file name to each line of output; in some nm's this is -o
nm -A * | less
# search for part of the name of the undefined reference
/bla
# add the archive to the link command (using AMBERBUILDFLAGS is is usually the
# simplest way, but editing the config.h is another).
# in some cases the position of the new library in the command may be important

cd intel-8.0-20040716-mpich2-1.0.3/lib
nm -A * | less
/conversion
...
libfmpich.a:_wregister_datarepf.o: U malloc
libfmpich.a:_wregister_datarepf.o: U mpi_conversion_fn_null_
libfmpich.a:_wregister_datarepf.o:00000000 T mpi_register_datarep_
...

cd src/sander
make parallel AMBERBUILDFLAGS='-lfmpich.a'

Scott

-----------------------------------------------------------------------
The AMBER Mail Reflector
To post, send mail to amber.scripps.edu
To unsubscribe, send "unsubscribe amber" to majordomo.scripps.edu
Received on Wed Aug 09 2006 - 06:07:14 PDT
Custom Search