Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |  

This web mail archive is frozen.

This page is part of a frozen web archive of this mailing list.

You can still navigate around this archive, but know that no new mails have been added to it since July of 2016.

Click here to be taken to the new web archives of this list; it includes all the mails that are in this frozen archive plus all new mails that have been sent to the list since it was migrated to the new archives.

Subject: [OMPI devel] v1.7 and trunk: hello_oshmemfh link failure with xlc/ppc32/linux
From: Paul Hargrove (phhargrove_at_[hidden])
Date: 2014-02-08 20:22:29


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