Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Development mailing list

Subject: Re: [OMPI devel] v1.7 and trunk: hello_oshmemfh link failure with xlc/ppc32/linux
From: Jeff Squyres (jsquyres) (jsquyres_at_[hidden])
Date: 2014-02-12 08:56:23


Filed as https://svn.open-mpi.org/trac/ompi/ticket/4262

On Feb 8, 2014, at 8:22 PM, Paul Hargrove <phhargrove_at_[hidden]> wrote:

> Testing the current v1.7 tarball (1.7.5a1r30634), I get a failure when building the oshmem examples.
> I've confirmed that the same problem exists on trunk (so not a problem with the CMR).
>
> [...]
> mpifort -g ring_usempi.f90 -o ring_usempi
> ** ring === End of Compilation 1 ===
> 1501-510 Compilation successful for file ring_usempi.f90.
> make[2]: Leaving directory `/gpfs-biou/phh1/OMPI/openmpi-1.7-latest-linux-ppc32-xlc-11.1/BLD/examples'
> make[1]: Leaving directory `/gpfs-biou/phh1/OMPI/openmpi-1.7-latest-linux-ppc32-xlc-11.1/BLD/examples'
> make[1]: Entering directory `/gpfs-biou/phh1/OMPI/openmpi-1.7-latest-linux-ppc32-xlc-11.1/BLD/examples'
> make[2]: Entering directory `/gpfs-biou/phh1/OMPI/openmpi-1.7-latest-linux-ppc32-xlc-11.1/BLD/examples'
> shmemcc -g hello_oshmem_c.c -o hello_oshmem
> make[2]: Leaving directory `/gpfs-biou/phh1/OMPI/openmpi-1.7-latest-linux-ppc32-xlc-11.1/BLD/examples'
> make[2]: Entering directory `/gpfs-biou/phh1/OMPI/openmpi-1.7-latest-linux-ppc32-xlc-11.1/BLD/examples'
> shmemcc -g ring_oshmem_c.c -o ring_oshmem
> make[2]: Leaving directory `/gpfs-biou/phh1/OMPI/openmpi-1.7-latest-linux-ppc32-xlc-11.1/BLD/examples'
> make[2]: Entering directory `/gpfs-biou/phh1/OMPI/openmpi-1.7-latest-linux-ppc32-xlc-11.1/BLD/examples'
> shmemfort -g hello_oshmemfh.f90 -o hello_oshmemfh
> ** hello_oshmem === End of Compilation 1 ===
> 1501-510 Compilation successful for file hello_oshmemfh.f90.
> make[2]: Leaving directory `/gpfs-biou/phh1/OMPI/openmpi-1.7-latest-linux-ppc32-xlc-11.1/BLD/examples'
> make[2]: Entering directory `/gpfs-biou/phh1/OMPI/openmpi-1.7-latest-linux-ppc32-xlc-11.1/BLD/examples'
> shmemfort -g ring_oshmemfh.f90 -o ring_oshmemfh
> ** ring_oshmem === End of Compilation 1 ===
> 1501-510 Compilation successful for file ring_oshmemfh.f90.
> ring_oshmemfh.o: In function `ring_oshmem':
> /gpfs-biou/phh1/OMPI/openmpi-1.7-latest-linux-ppc32-xlc-11.1/BLD/examples/ring_oshmemfh.f90:33: undefined reference to `shmem_put8'
> /gpfs-biou/phh1/OMPI/openmpi-1.7-latest-linux-ppc32-xlc-11.1/BLD/examples/ring_oshmemfh.f90:46: undefined reference to `shmem_int8_wait_until'
> /gpfs-biou/phh1/OMPI/openmpi-1.7-latest-linux-ppc32-xlc-11.1/BLD/examples/ring_oshmemfh.f90:55: undefined reference to `shmem_put8'
> make[2]: *** [ring_oshmemfh] Error 1
> make[2]: Leaving directory `/gpfs-biou/phh1/OMPI/openmpi-1.7-latest-linux-ppc32-xlc-11.1/BLD/examples'
> make[1]: *** [oshmem] Error 2
> make[1]: Leaving directory `/gpfs-biou/phh1/OMPI/openmpi-1.7-latest-linux-ppc32-xlc-11.1/BLD/examples'
> make: *** [all] Error 2
>
> The link of ring_oshmemfh is failing with undefined references to shmem_put8 and shmem_int8_wait_until.
> The relevant portion of "make" output in the example dir is shown above.
> Note that ring_usempi linked fine, indicating that F90 MPI bindings are fine.
> Additionally, ring_oshmem linked file, indicating that C language OSHMEM bindings are fine, too.
>
> In case it is relevant: this build is configured with
> --enable-static --enable-shared --enable-mpi-fortran=usempi --disable-vt
>
> The "--enable-static --enable-shared" flags are just to make for a more thorough test.
> However, retesting without --enable-static did not resolve the problem.
>
> The --enable-mpi-fortran flag is necessary because the F08 bindings don't build with this compiler (http://www.open-mpi.org/community/lists/devel/2014/01/13802.php).
>
> The --disable-vt flag is necessary because the compiler crashes building VT.
>
> Some misc bits of info:
>
> $ shmemfort -g ring_oshmemfh.f90 -o ring_oshmemfh --show
> xlf -g ring_oshmemfh.f90 -o ring_oshmemfh -I/home/phh1/SCRATCH/OMPI/openmpi-trunk-linux-ppc32-xlc-11.1/INST/include -I/home/phh1/SCRATCH/OMPI/openmpi-trunk-linux-ppc32-xlc-11.1/INST/lib -Wl,-rpath -Wl,/home/phh1/SCRATCH/OMPI/openmpi-trunk-linux-ppc32-xlc-11.1/INST/lib -Wl,--enable-new-dtags -L/home/phh1/SCRATCH/OMPI/openmpi-trunk-linux-ppc32-xlc-11.1/INST/lib -loshmem -lmpi_mpifh -lmpi -lm -lnuma -ldl -lrt -lnsl -lutil -lpthread
>
> $ nm INST/lib/liboshmem.so | grep shmem_put8
> 0009eab0 t 00000000.plt_pic32.shmem_put8_f
> 00063f20 T shmem_put8_
> 00063fa0 T shmem_put8__
> 00063e00 T shmem_put8_f
> $ nm INST/lib/liboshmem.a | grep shmem_put8
> shmem_put8_f.o:
> 00000120 T shmem_put8_
> 000001a0 T shmem_put8__
> 00000000 T shmem_put8_f
>
> -Paul
>
> --
> Paul H. Hargrove PHHargrove_at_[hidden]
> Future Technologies Group
> Computer and Data Sciences Department Tel: +1-510-495-2352
> Lawrence Berkeley National Laboratory Fax: +1-510-486-6900
> _______________________________________________
> devel mailing list
> devel_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/devel

-- 
Jeff Squyres
jsquyres_at_[hidden]
For corporate legal information go to: http://www.cisco.com/web/about/doing_business/legal/cri/