[Dock-fans] dock6 parallel on 64-bit system

Mary Ellen Fitzpatrick mfitzpat at bu.edu
Tue Dec 23 07:44:16 PST 2008


Here is how I am trying to build dock6 on a 64-bit system.  Same build 
error, not sure what I am doing wrong...

Install the serial version on my 64-bit system.
./configure gnu
then edit config.h file with -m32 flag
CC=          gcc -m32
CXX=         g++ -m32
CFLAGS=      -O2
FC=          g77 -m32
FFLAGS=      -O2 -fno-automatic -fno-second-underscore
LIBS=        -lm -lpthread
LOAD=        g++ -m32
SFX=

I did not make any changes to  AR or RANLIB.  When I did try to add the 
-m32 flag it failed, so I left it as is.
AR=          ar rv
LEX=         flex
OCFLAGS=     -O3 -D_ANSI_SOURCE
RANLIB=      ranlib

make all


For dock6 parallel:
make distclean

userA:~/dock6/install$ mpicc -show
gcc -I/usr/local/mpich2mef/include -L/usr/local/mpich2mef/lib -lmpich 
-lpthread -lrt
userA:~/dock6/install$ mpicxx -show
g++ -I/usr/local/mpich2mef/include -L/usr/local/mpich2mef/lib -lmpichcxx 
-lmpich -lpthread -lrt

./configure gnu.parallel
edit config.h
MPICH_HOME=/usr/local/mpich2mef
CC=          gcc -m32
CXX=         g++ -m32
CFLAGS=      -DBUILD_DOCK_WITH_MPI -DMPICH_IGNORE_CXX_SEEK 
-DMPICH_SKIP_MPICXX -I$(MPICH_HOME)/includ
e -O2
FC=          g77 -m32
FFLAGS=      -O2 -fno-automatic -fno-second-underscore
LOAD=        $(MPICH_HOME)/bin/mpicxx
LIBS=        -lm -L/usr/local/mpich2mef/lib -lmpich -lpthread -lrt
SFX=         .mpi

No changes to AR or RANLIB
AR=          ar rv
LEX=         flex
OCFLAGS=     -O3 -D_ANSI_SOURCE
RANLIB=      ranlib

Fails build:
utils.o: In function `std::vector<PARAMETER, std::allocator<PARAMETER> 
 >::_M_insert_aux(__gnu_cxx::__normal_iterator<PARAMETER*, 
std::vector<PARAMETER, std::allocator<PARAMETER> > >, PARAMETER const&)':
utils.cpp:(.text._ZNSt6vectorI9PARAMETERSaIS0_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS0_S2_EERKS0_[std::vector<PARAMETER, 
std::allocator<PARAMETER> 
 >::_M_insert_aux(__gnu_cxx::__normal_iterator<PARAMETER*, 
std::vector<PARAMETER, std::allocator<PARAMETER> > >, PARAMETER 
const&)]+0x164): undefined reference to `operator new(unsigned int)'
collect2: ld returned 1 exit status

Thanks for your help.
Scott Brozell wrote:
> Hi,
>
> On Mon, 22 Dec 2008, Mary Ellen Fitzpatrick wrote:
>
>   
>> Has anyone had success installing dock6 parallel on a 64-bit system?  I 
>> have successfully been able to install dock6  serial on the 64-bit 
>> system with the -m32 compiler flag, but not parallel.  My config.h and 
>> build errors for dock6 parallel on the 64-bit system are below.
>>     
>
> Yes, both serial and parallel.
> Problems arising during parallel builds when serial builds work
> are usually due to inconsistencies in the parallel library vis a vis
> different compilers, libraries, etc.
> This is still the state of our art on 64bits:
> http://dock.compbio.ucsf.edu/DOCK_6/faq.htm#64bit
>
>   
>> If I install dock6 parallel on the 64-bit system without the -m32 
>> compiler flag, it installs without a problem.  But I am unclear if the 
>> results from the test suite are accurate. 
>>     
>
> The build may well be fine as the test .save outputs were generated
> on a 32bit machine; see
> http://blur.compbio.ucsf.edu/pipermail/dock-fans/2008-October/001748.html
> and the links therein.
>
>   
>> Trying to install dock6 with gnu.parallel on my 64-bit Centos5 cluster.  
>> I have compiled dock6 with the -m32 compiler and gnu.parallel.  my 
>> config.h file:
>> ./configure gnu.parallel
>>
>> config.h
>> CC=          gcc -m32
>> CXX=         g++ -m32
>> CFLAGS=      -DBUILD_DOCK_WITH_MPI -DMPICH_IGNORE_CXX_SEEK 
>> -DMPICH_SKIP_MPICXX -I$(MPICH_HOME)/i
>> nclude -O2
>> FC=          g77 -m32
>> FFLAGS=      -O2 -fno-automatic -fno-second-underscore
>> LOAD=        $(MPICH_HOME)/bin/mpicxx
>> LIBS=        -lm
>> SFX=         .mpi
>>
>> userA:~/dock6-32/install$ echo $MPICH_HOME
>> /usr/local/mpich2mef
>>
>> when I run make all, the build fails:
>>
>> utils.o: In function `std::vector<PARAMETER, std::allocator<PARAMETER> 
>>  >::_M_insert_aux(__gnu_cxx::__normal_iterator<PARAMETER*, 
>> std::vector<PARAMETER, std::allocator<PARAMETER> > >, PARAMETER const&)':
>> utils.cpp:(.text._ZNSt6vectorI9PARAMETERSaIS0_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS0_S2_EERKS0_[std::vector<PARAMETER, 
>> std::allocator<PARAMETER> 
>>  >::_M_insert_aux(__gnu_cxx::__normal_iterator<PARAMETER*, 
>> std::vector<PARAMETER, std::allocator<PARAMETER> > >, PARAMETER 
>> const&)]+0x164): undefined reference to `operator new(unsigned int)'
>> collect2: ld returned 1 exit status
>> make[2]: *** [dock6.mpi] Error 1
>>     
>
> This error is very likely due to linking C++ object files with a C
> (ie not C++) compiler.
> Verify that your mpicxx invokes a C++ compiler via
> mpicxx -show
> or similar options.
> If you cannot resolve this then send verbose and explicit details
> especially the command to link dock6.mpi.
>
> Scott
>
>
>   

-- 
Thanks
Mary Ellen



More information about the Dock-fans mailing list