AMBER Archive (2006)

Subject: Re: AMBER: Amber Installation Help; link woes

From: Scott Brozell (
Date: Tue Aug 08 2006 - 14:36:32 CDT


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
# 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
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'


The AMBER Mail Reflector
To post, send mail to
To unsubscribe, send "unsubscribe amber" to