Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Development mailing list

Subject: Re: [OMPI devel] 1.7.4rc2r30148 - static link failure on NetBSD
From: Jeff Squyres (jsquyres) (jsquyres_at_[hidden])
Date: 2014-01-13 13:49:43


Works for me -- thanks!

On Jan 11, 2014, at 7:59 PM, Paul Hargrove <phhargrove_at_[hidden]> wrote:

> Digging through my emails I found an issue (in the email quoted below) that I had forgotten about.
> The basic issue is that NetBSD puts aio support in librt rather than libc, but this is only visible when linking statically.
>
> Fortunately, NetBSD is one of the very few platforms on which I have sufficiently new autotools to run autogen.pl.
> The patch below resolves the problem for me.
> However, I am not certain if/how this fits with OMPI's standard practices with regards to configure tests.
>
> -Paul
>
> --- openmpi-1.9a1r30255/ompi/mca/fbtl/posix/configure.m4~ 2014-01-11 15:53:19.000000000 -0800
> +++ openmpi-1.9a1r30255/ompi/mca/fbtl/posix/configure.m4 2014-01-11 16:25:53.000000000 -0800
> @@ -25,9 +25,11 @@
> AC_DEFUN([MCA_ompi_fbtl_posix_CONFIG],[
> AC_CONFIG_FILES([ompi/mca/fbtl/posix/Makefile])
>
> + fbtl_posix_happy="no"
> AC_CHECK_HEADER([aio.h],
> - [fbtl_posix_happy="yes"],
> - [fbtl_posix_happy="no"])
> + [dnl NetBSD has aio_* in -lrt, usually in libc
> + OMPI_CHECK_FUNC_LIB([aio_write], [rt],
> + [fbtl_posix_happy="yes"])])
>
> AS_IF([test "$fbtl_posix_happy" = "yes"],
> [$1],
>
>
>
> On Wed, Jan 8, 2014 at 11:22 AM, Paul Hargrove <phhargrove_at_[hidden]> wrote:
> When I compile the current 1.7.4rc on NetBSD with no configure arguments, I still get the "make install" failure that I have detailed in previous emails.
>
> HOWEVER, if I configure with "--enable-static --disable-shared" then I get an earlier failure at build time (partial "make V=1" output shown below).
>
> When linking otfmerge-mpi, the aio_* symbols from libmpi.a(ompi/mca/fbtl/posix/fbtl_posix_ipwritev.o) are not resolved. According to the man pages on this system, those symbols reside in librt, but there is no occurrence of "-lrt" in either the libtool command line or the gcc command line generated by libtool.
>
> NOTE, however, that this problem does NOT occur when building a default shared library version despite ALSO lacking any explicit "-lrt" in the link command.
>
> -Paul
>
>
> /bin/ksh ../../../libtool --tag=CC --mode=link gcc -DOTFMERGE_MPI -g -finline-functions -fno-strict-aliasing -pthread -L/home/phargrov/OMPI/openmpi-1.7-latest-netbsd6-amd64/BLD/ompi/contrib/vt/vt/../../../.libs -o otfmerge-mpi otfmerge_mpi-handler.o otfmerge_mpi-otfmerge.o ../../../otflib/libopen-trace-format.la ../../../otfauxlib/libotfaux.la -lmpi
> libtool: link: gcc -DOTFMERGE_MPI -g -finline-functions -fno-strict-aliasing -pthread -o otfmerge-mpi otfmerge_mpi-handler.o otfmerge_mpi-otfmerge.o -L/home/phargrov/OMPI/openmpi-1.7-latest-netbsd6-amd64/BLD/ompi/contrib/vt/vt/../../../.libs ../../../otflib/.libs/libopen-trace-format.a -lz ../../../otfauxlib/.libs/libotfaux.a /home/phargrov/OMPI/openmpi-1.7-latest-netbsd6-amd64/BLD/ompi/contrib/vt/vt/../../../.libs/libmpi.a /home/phargrov/OMPI/openmpi-1.7-latest-netbsd6-amd64/BLD/orte/.libs/libopen-rte.a /home/phargrov/OMPI/openmpi-1.7-latest-netbsd6-amd64/BLD/opal/.libs/libopen-pal.a -lutil -lm -lpthread -pthread
> /home/phargrov/OMPI/openmpi-1.7-latest-netbsd6-amd64/BLD/ompi/contrib/vt/vt/../../../.libs/libmpi.a(fbtl_posix_ipwritev.o): In function `mca_fbtl_posix_ipwritev':
> /home/phargrov/OMPI/openmpi-1.7-latest-netbsd6-amd64/openmpi-1.7-latest/ompi/mca/fbtl/posix/fbtl_posix_ipwritev.c:90: undefined reference to `aio_write'
> /home/phargrov/OMPI/openmpi-1.7-latest-netbsd6-amd64/openmpi-1.7-latest/ompi/mca/fbtl/posix/fbtl_posix_ipwritev.c:112: undefined reference to `aio_write'
> /home/phargrov/OMPI/openmpi-1.7-latest-netbsd6-amd64/openmpi-1.7-latest/ompi/mca/fbtl/posix/fbtl_posix_ipwritev.c:159: undefined reference to `aio_write'
> /home/phargrov/OMPI/openmpi-1.7-latest-netbsd6-amd64/openmpi-1.7-latest/ompi/mca/fbtl/posix/fbtl_posix_ipwritev.c:180: undefined reference to `aio_write'
> *** Error code 1
>
> Stop.
> make: stopped in /home/phargrov/OMPI/openmpi-1.7-latest-netbsd6-amd64/BLD/ompi/contrib/vt/vt/extlib/otf/tools/otfmerge/mpi
>
> --
> 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
>
>
>
> --
> 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/