[Cmake] CMake and MPI on Sun

William A. Hoffman billlist at nycap.rr.com
Wed Jul 21 08:40:26 EDT 2004


The MPI on the sun may require more than one library.

First you may need to find the symbols:

nm /usr/pack/mpich-1.2.5-mo/sun4u-sun-solaris2.8/lib/*.a | grep xdr_array  

Then in the advanced option for cmake, set MPI_EXTRA_LIBRARY to the
library or libraries you need.   The problem with MPI is there are lots
of different versions that have different libraries.

-Bill

At 05:50 AM 7/21/2004, michael_cm at gmx.ch wrote:
>Hi,
>
>I have a problem when trying to compile the following mpi program with the
>CMake generated makefile under Sun Solaris:
>
...


>inary/MPITest/MPITest...
>Undefined                       first referenced
> symbol                             in file
>xdr_short                          
>/usr/pack/mpich-1.2.5-mo/sun4u-sun-solaris2.8/lib/libmpich.a(bswap2.o)
>getsockname                        
>/usr/pack/mpich-1.2.5-mo/sun4u-sun-solaris2.8/lib/libmpich.a(p4_sock_util.o)
>xdr_u_char                         
>/usr/pack/mpich-1.2.5-mo/sun4u-sun-solaris2.8/lib/libmpich.a(bswap2.o)
>listen                             
>/usr/pack/mpich-1.2.5-mo/sun4u-sun-solaris2.8/lib/libmpich.a(p4_sock_util.o)
>xdr_opaque                         
>/usr/pack/mpich-1.2.5-mo/sun4u-sun-solaris2.8/lib/libmpich.a(bswap2.o)
>xdr_float                          
>/usr/pack/mpich-1.2.5-mo/sun4u-sun-solaris2.8/lib/libmpich.a(p4_sock_sr.o)
>xdr_u_long                         
>/usr/pack/mpich-1.2.5-mo/sun4u-sun-solaris2.8/lib/libmpich.a(bswap2.o)
>xdr_u_int                          
>/usr/pack/mpich-1.2.5-mo/sun4u-sun-solaris2.8/lib/libmpich.a(bswap2.o)
>sched_yield                        
>/usr/pack/mpich-1.2.5-mo/sun4u-sun-solaris2.8/lib/libmpich.a(p4_tsr.o)
>connect                            
>/usr/pack/mpich-1.2.5-mo/sun4u-sun-solaris2.8/lib/libmpich.a(p4_sock_util.o)
>shutdown                           
>/usr/pack/mpich-1.2.5-mo/sun4u-sun-solaris2.8/lib/libmpich.a(p4_sock_sr.o)
>xdr_long                           
>/usr/pack/mpich-1.2.5-mo/sun4u-sun-solaris2.8/lib/libmpich.a(p4_sock_sr.o)
>gethostbyname                      
>/usr/pack/mpich-1.2.5-mo/sun4u-sun-solaris2.8/lib/libmpich.a(p4_sock_util.o)
>accept                             
>/usr/pack/mpich-1.2.5-mo/sun4u-sun-solaris2.8/lib/libmpich.a(p4_sock_util.o)
>sendto                             
>/usr/pack/mpich-1.2.5-mo/sun4u-sun-solaris2.8/lib/libmpich.a(p4_utils.o)
>getsockopt                         
>/usr/pack/mpich-1.2.5-mo/sun4u-sun-solaris2.8/lib/libmpich.a(p4_sock_util.o)
>xdr_double                         
>/usr/pack/mpich-1.2.5-mo/sun4u-sun-solaris2.8/lib/libmpich.a(p4_sock_sr.o)
>xdr_u_short                        
>/usr/pack/mpich-1.2.5-mo/sun4u-sun-solaris2.8/lib/libmpich.a(bswap2.o)
>getpeername                        
>/usr/pack/mpich-1.2.5-mo/sun4u-sun-solaris2.8/lib/libmpich.a(p4_sock_util.o)
>xdr_int                            
>/usr/pack/mpich-1.2.5-mo/sun4u-sun-solaris2.8/lib/libmpich.a(p4_sock_sr.o)
>socketpair                         
>/usr/pack/mpich-1.2.5-mo/sun4u-sun-solaris2.8/lib/libmpich.a(p4_utils.o)
>xdr_char                           
>/usr/pack/mpich-1.2.5-mo/sun4u-sun-solaris2.8/lib/libmpich.a(bswap2.o)
>socket                             
>/usr/pack/mpich-1.2.5-mo/sun4u-sun-solaris2.8/lib/libmpich.a(p4_utils.o)
>xdrmem_create                      
>/usr/pack/mpich-1.2.5-mo/sun4u-sun-solaris2.8/lib/libmpich.a(bswap2.o)
>setsockopt                         
>/usr/pack/mpich-1.2.5-mo/sun4u-sun-solaris2.8/lib/libmpich.a(p4_sock_util.o)
>inet_ntoa                          
>/usr/pack/mpich-1.2.5-mo/sun4u-sun-solaris2.8/lib/libmpich.a(p4_sock_util.o)
>bind                               
>/usr/pack/mpich-1.2.5-mo/sun4u-sun-solaris2.8/lib/libmpich.a(p4_sock_util.o)
>recv                               
>/usr/pack/mpich-1.2.5-mo/sun4u-sun-solaris2.8/lib/libmpich.a(p4_sock_util.o)
>xdr_array                          
>/usr/pack/mpich-1.2.5-mo/sun4u-sun-solaris2.8/lib/libmpich.a(p4_sock_sr.o)
>ld: fatal: Symbol referencing errors. No output written to
>/home/kuhnmi/DA/Binary/MPITest/MPITest
>collect2: ld returned 1 exit status
>make[1]: *** [/home/kuhnmi/DA/Binary/MPITest/MPITest] Error 1
>make: *** [default_target] Error 2
>
>-----
>
>I can compile the same program under Windows with the CMake-generated Visual
>Studio workspace and I can compile it under Sun Solaris with mpiCC. Can
>somebody explain me what I'm doing wrong or what I could do to find out what
>is going wrong? The CMakeLists.txt-File I'm using looks as follows:
>
>-----
>
>PROJECT(MPITest)
>
>FIND_PACKAGE(MPI)
>
>INCLUDE_DIRECTORIES(${MPI_INCLUDE_PATH})
>
>ADD_EXECUTABLE(MPITest MPITest.cxx)
>
>TARGET_LINK_LIBRARIES(
>  MPITest
>  ${MPI_LIBRARY}
>)
>
>-----
>
>Thanks,
>
>Michael
>
>_______________________________________________
>Cmake mailing list
>Cmake at www.cmake.org
>http://www.cmake.org/mailman/listinfo/cmake 



More information about the Cmake mailing list