[ewg] Problems with mvapich2-1.5.1 - shared library is missing hwloc_* functions.

Mike Heinz michael.heinz at qlogic.com
Fri Sep 10 11:42:40 PDT 2010


Hello all,

I'm trying to build mvapich2-1.5.1 on an RHEL 5 update 3 system. It builds from the SRPM just fine, but when I try to compile test programs, they don't link. It appears that a set of routines, hwloc_* are missing from the shared library.

[root at homer bandwidth]# /usr/mpi/gcc/mvapich2-1.5.1/bin/mpicc bw.c
/usr/mpi/gcc/mvapich2-1.5.1/lib/libmpich.so: undefined reference to `hwloc_get_obj_by_depth'
/usr/mpi/gcc/mvapich2-1.5.1/lib/libmpich.so: undefined reference to `hwloc_topology_get_depth'
/usr/mpi/gcc/mvapich2-1.5.1/lib/libmpich.so: undefined reference to `hwloc_set_cpubind'
/usr/mpi/gcc/mvapich2-1.5.1/lib/libmpich.so: undefined reference to `hwloc_topology_init'
/usr/mpi/gcc/mvapich2-1.5.1/lib/libmpich.so: undefined reference to `hwloc_cpuset_cpu'
/usr/mpi/gcc/mvapich2-1.5.1/lib/libmpich.so: undefined reference to `hwloc_get_depth_type'
/usr/mpi/gcc/mvapich2-1.5.1/lib/libmpich.so: undefined reference to `hwloc_get_type_depth'
/usr/mpi/gcc/mvapich2-1.5.1/lib/libmpich.so: undefined reference to `hwloc_get_nbobjs_by_depth'
/usr/mpi/gcc/mvapich2-1.5.1/lib/libmpich.so: undefined reference to `hwloc_compare_types'
/usr/mpi/gcc/mvapich2-1.5.1/lib/libmpich.so: undefined reference to `hwloc_topology_destroy'
/usr/mpi/gcc/mvapich2-1.5.1/lib/libmpich.so: undefined reference to `hwloc_topology_load'
/usr/mpi/gcc/mvapich2-1.5.1/lib/libmpich.so: undefined reference to `hwloc_cpuset_alloc'
collect2: ld returned 1 exit status

compared with:

[root at homer bandwidth]# /usr/mpi/gcc/mvapich2-1.5.1/bin/mpicc  bw.c /usr/mpi/gcc/mvapich2-1.5.1/lib/libmpich.a
[root at homer bandwidth]#

[root at homer lib]# nm libmpich.so | grep hwloc_compare_types
                 U hwloc_compare_types

[root at homer lib]# nm libmpich.a | grep hwloc_compare_types
0000000000000020 T hwloc_compare_types

I'm building the binary RPM as follows:

[root at homer SRPMS]# rpmbuild --rebuild
              --define '_topdir /home/mhein^Mnz/work/OFED_SOURCE/buildtemp/OFEDRPMS'
              --buildroot '/home/mheinz^Mz/work/OFED_SOURCE/buildtemp/build'
              --define 'build_root /home/mh^Mheinz/work/OFED_SOURCE/buildtemp/build'
              --target x86_64 --define ^M '_name mvapich2_gcc'
              --define 'compiler gcc'    --define 'impl of^Mfa'
              --define 'open_ib_home /usr'     --define '_usr /usr'
              --define 'comp_env CC=gcc CXX=g++ F77=gfortran F90=gfortran'
              --define 'auto_req 0'
              --define 'mpi_selector /usr/bin/mpi-sele^Mector'
              --define '_prefix /usr/mpi/gcc/mvapich2-1.5.1' 
              --define 'shaared_libs 1' 
              --define 'romio 1' 
              --define 'rdma --with-rdma=gen2'
              --define 'ib_include --with-ib-include=/usr/include'
              --define 'ib_libpath --with-ib-libpath=/usr/lib64'
              --define 'configure_options  --with-psm==no'
              mvapich2-*.src.rpm

Can someone tell me what I'm doing wrong?




More information about the ewg mailing list