Re: [AMBER] Problems compiling pmemd.cuda - undefined reference to ...

From: Adam Jion <adamjion.yahoo.com>
Date: Fri, 23 Mar 2012 10:22:40 -0700 (PDT)

Hi!

All the bugfixes have been applied. Below is the config.h file.

AmberTools 1.5 (serial + parallel) and Amber 11 (serial + parallel) were compiled without error using gcc-4.6.1. and gfortran. However, they cannot be compiled using a gcc-4.4.6 compiler (It will lead to a cannot find 'lgfortran' error)

Because pmemd.cuda required a gcc-4.4 and below compiler, I changed the
compiler to gcc-4.4.6 but got an error message about not finding
'lgfortran' That is,

/usr/bin/ld: cannot find -lgfortran
collect2: ld returned 1 exit status
./configure: 1874: ./testp: not found
Error: Unable to compile mixed C/Fortran code.
Please check your compiler settings and configure flags.



Regards,
Adam

#MODIFIED FOR AMBERTOOLS 1.5
#  Amber configuration file, created with: ./configure -cuda gnu

###############################################################################

# (1)  Location of the installation

BINDIR=/home/adam/amber11/bin
LIBDIR=/home/adam/amber11/lib
INCDIR=/home/adam/amber11/include
DATDIR=/home/adam/amber11/dat

###############################################################################


#  (2) If you want to search additional libraries by default, add them
#      to the FLIBS variable here.  (External libraries can also be linked into
#      NAB programs simply by including them on the command line; libraries
#      included in FLIBS are always searched.)

FLIBS=  -L$(LIBDIR) -lsff -lpbsa -lrism -ldrfftw -ldfftw
$(LIBDIR)/arpack.a $(LIBDIR)/lapack.a $(LIBDIR)/blas.a 
$(LIBDIR)/libnetcdf.a  -lgfortran
FLIBS_PTRAJ= $(LIBDIR)/arpack.a $(LIBDIR)/lapack.a $(LIBDIR)/blas.a   -lgfortran
FLIBSF= $(LIBDIR)/arpack.a $(LIBDIR)/lapack.a $(LIBDIR)/blas.a  
FLIBS_FFTW2=-L$(LIBDIR) -ldrfftw -ldfftw
###############################################################################

#  (3)  Modify any of the following if you need to change, e.g. to use gcc
#        rather than cc, etc.

SHELL=/bin/sh
INSTALLTYPE=cuda

#  Set the C compiler, etc.

#          For GNU:  CC-->gcc; LEX-->flex; YACC-->bison -y -t;
#          Note: If your lexer is "really" flex, you need to set
#          LEX=flex below.  For example, on many linux distributions,
#          /usr/bin/lex is really just a pointer to /usr/bin/flex,
#          so LEX=flex is necessary.  In general, gcc seems to need flex.

#   The compiler flags CFLAGS and CXXFLAGS should always be used.
#   By contrast, *OPTFLAGS and *NOOPTFLAGS will only be used with
#   certain files, and usually at compile-time but not link-time.
#   Where *OPTFLAGS and *NOOPTFLAGS are requested (in Makefiles,
#   makedepend and depend), they should come before CFLAGS or
#   CXXFLAGS; this allows the user to override *OPTFLAGS and
#   *NOOPTFLAGS using the BUILDFLAGS variable.
CC=gcc
CFLAGS= -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DBINTRAJ  $(CUSTOMBUILDFLAGS) $(AMBERCFLAGS)
OCFLAGS= $(COPTFLAGS) $(AMBERCFLAGS)
CNOOPTFLAGS=
COPTFLAGS=-O3 -mtune=generic -DBINTRAJ -DHASGZ -DHASBZ2
AMBERCFLAGS= $(AMBERBUILDFLAGS)

CXX=g++
CPLUSPLUS=g++
CXXFLAGS=  $(CUSTOMBUILDFLAGS)
CXXNOOPTFLAGS=
CXXOPTFLAGS=-O3
AMBERCXXFLAGS= $(AMBERBUILDFLAGS)

NABFLAGS=

LDFLAGS= $(CUSTOMBUILDFLAGS) $(AMBERLDFLAGS)
AMBERLDFLAGS=$(AMBERBUILDFLAGS)

LEX=   flex
YACC=  $(BINDIR)/yacc
AR=    ar rv
M4=    m4
RANLIB=ranlib

#  Set the C-preprocessor.  Code for a small preprocessor is in
#    ucpp-1.3;  it gets installed as $(BINDIR)/ucpp;
#    this can generally be used (maybe not on 64-bit machines like altix).

CPP=    $(BINDIR)/ucpp -l

#  These variables control whether we will use compiled versions of BLAS
#  and LAPACK (which are generally slower), or whether those libraries are
#  already available (presumably in an optimized form).

LAPACK=install
BLAS=install
F2C=skip

#  These variables determine whether builtin versions of certain components
#  can be used, or whether we need to compile our own versions.

UCPP=install
C9XCOMPLEX=skip

#  For Windows/cygwin, set SFX to ".exe"; for Unix/Linux leave it empty:
#  Set OBJSFX to ".obj" instead of ".o" on Windows:

SFX=
OSFX=.o
MV=mv
RM=rm
CP=cp

#  Information about Fortran compilation:

FC=gfortran
FFLAGS=  $(LOCALFLAGS) $(CUSTOMBUILDFLAGS) $(FNOOPTFLAGS)
FNOOPTFLAGS= -O0
FOPTFLAGS= -O3 -mtune=generic $(LOCALFLAGS) $(CUSTOMBUILDFLAGS)
AMBERFFLAGS=$(AMBERBUILDFLAGS)
FREEFORMAT_FLAG= -ffree-form
LM=-lm
FPP=cpp -traditional $(FPPFLAGS) $(AMBERFPPFLAGS)
FPPFLAGS=-P  -DBINTRAJ  $(CUSTOMBUILDFLAGS)
AMBERFPPFLAGS=$(AMBERBUILDFLAGS)


BUILD_SLEAP=install_sleap
XHOME=
XLIBS= -L/lib64 -L/lib
MAKE_XLEAP=skip_xleap

NETCDF=netcdf.mod
NETCDFLIB=$(LIBDIR)/libnetcdf.a
PNETCDF=no
PNETCDFLIB=

ZLIB=-lz
BZLIB=-lbz2

HASFC=yes
MDGX=yes
CPPTRAJ=yes
MTKPP=

COMPILER=gnu
MKL=
MKL_PROCESSOR=

#CUDA Specific build flags
NVCC=$(CUDA_HOME)/bin/nvcc -use_fast_math -O3 -gencode arch=compute_13,code=sm_13 -gencode arch=compute_20,code=sm_20
PMEMD_CU_INCLUDES=-I$(CUDA_HOME)/include -IB40C -IB40C/KernelCommon
PMEMD_CU_LIBS=-L$(CUDA_HOME)/lib64 -L$(CUDA_HOME)/lib -lcurand -lcufft -lcudart ./cuda/cuda.a
PMEMD_CU_DEFINES=-DCUDA

#PMEMD Specific build flags
PMEMD_FPP=cpp -traditional  -P  -DBINTRAJ -DDIRFRC_EFS -DDIRFRC_COMTRANS -DDIRFRC_NOVEC -DFFTLOADBAL_2PROC -DPUBFFT
PMEMD_NETCDFLIB= $(NETCDFLIB)
PMEMD_F90=gfortran
PMEMD_FOPTFLAGS=-O3 -mtune=generic
PMEMD_CC=gcc
PMEMD_COPTFLAGS=-O3 -mtune=generic -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DBINTRAJ
PMEMD_FLIBSF=
PMEMD_LD= gfortran
LDOUT= -o

#3D-RISM MPI
RISMSFF=-DRISMSFF
SANDER_RISM_MPI=
TESTRISM=rism

#PUPIL
PUPILLIBS=-lrt -lm -lc -L${PUPIL_PATH}/lib -lPUPIL -lPUPILBlind

#Python
PYINSTALL=





________________________________
 From: Ross Walker <ross.rosswalker.co.uk>
To: 'Adam Jion' <adamjion.yahoo.com>; 'AMBER Mailing List' <amber.ambermd.org>
Sent: Saturday, March 24, 2012 12:17 AM
Subject: Re: [AMBER] Problems compiling pmemd.cuda - undefined reference to ...
 
Hi Adam,
--------------------------------------------------------
> I have problems compiling pmemd.cuda.
> Everything works find till the 'make cuda' command.
> The error messages that I get are mostly about 'undefined references
> to...'
> Below are the last few lines of the error message.

Can you post your compiler versions (gcc, gfortran and NVCC) please. Can you
also include the config.h file generated by AMBER. Also make sure you have
applied all the bugfixes from the AMBER site. These are needed for NVCC 4.0
support. Avoid using NVCC 4.1 for the moment since there is a bug in the
compiler that gives a 10% performance hit.

All the best
Ross


/\
\/
|\oss Walker

---------------------------------------------------------
|            Assistant Research Professor              |
|            San Diego Supercomputer Center            |
|            Adjunct Assistant Professor              |
|        Dept. of Chemistry and Biochemistry          |
|          University of California San Diego          |
|                    NVIDIA Fellow                    |
| http://www.rosswalker.co.uk | http://www.wmd-lab.org/ |
| Tel: +1 858 822 0854 | EMail:- ross.rosswalker.co.uk  |
---------------------------------------------------------

Note: Electronic Mail is not secure, has no guarantee of delivery, may not
be read every day, and should not be used for urgent or sensitive issues. 





_______________________________________________
AMBER mailing list
AMBER.ambermd.org
http://lists.ambermd.org/mailman/listinfo/amber
_______________________________________________
AMBER mailing list
AMBER.ambermd.org
http://lists.ambermd.org/mailman/listinfo/amber
Received on Fri Mar 23 2012 - 10:30:02 PDT
Custom Search