Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Development mailing list

Subject: Re: [OMPI devel] Building Error
From: Larry Baker (baker_at_[hidden])
Date: 2011-08-15 16:53:14


Matthew,

I have the same type of error on a completely different software
package on Mac OS X. The error occurs because of the way that Mac OS
X searches for -lutil. If the libutil.a ORTE needs is theirs, i.e.,
not the system libutil.dylib, then you have exactly the same problem I
did.

Here are my notes for the fix using gcc. You will have to find out
the equivalent method to pass the -search_paths_first linker option
using pgcc.

> # Mac OS X searches for shared libraries before static libraries.
> Thus, -L<ours> -lutil finds the system libutil.dylib
> # before our libutil.a, which causes undefined references in the
> link step because it is using the wrong library. The
> # ld -search_paths_first option forces ld to search each directory
> first for a matching library, instead of all directories
> # first for a shared library.
> # Note: this is the form to pass -search_paths_first to ld when $
> (CC) is the linker command in makefile.ux
> export LDFLAGS=-Wl,-search_paths_first

Larry Baker
US Geological Survey
650-329-5608
baker_at_[hidden]

On 15 Aug 2011, at 1:01 PM, Matthew Russell wrote:

>
>
> I hope this problem merits being posted here.
>
> On OS X (Snow Leopard, and Lion), I cannot seem to build Open MPI.
>
> After a lot of building, I get the error:
>
> /bin/sh ../../../libtool --tag=CC --mode=link /opt/pgi/
> osx86-64/10.9/bin/pgcc -DNDEBUG -O2 -Msignextend -V -export-
> dynamic -o orte-clean orte-clean.o ../../../orte/libopen-rte.la-
> lutil
> libtool: link: /opt/pgi/osx86-64/10.9/bin/pgcc -DNDEBUG -O2 -
> Msignextend -V -o orte-clean orte-clean.o ../../../orte/.libs/
> libopen-rte.a /Users/matt/software/openmpi/openmpi-1.4.3/opal/.libs/
> libopen-pal.a -lutil
> Undefined symbols for architecture x86_64:
> "_orte_odls", referenced from:
> _orte_errmgr_base_error_abort in libopen-
> rte.a(errmgr_base_fns.o)
> ld: symbol(s) not found for architecture x86_64
>
> This is with the PGI 10.9 compiler, OpenMPI 1.4.3, platform is 86x64
>
> The README does not list PGI as a compiler that OpenMPI was tested
> with, and there are notes about it's support for XGrid being broken
> (I'm not sure if this is related.)
>
> I seem to get the error regardless of which configure flags I'm
> using, just for completeness though, here are the flags I am using:
> ./configure --prefix=/usr/local/openmpi_pg --enable-mpi-f77 --enable-
> mpi-f90 --with-memory-manager=none
>
> Has anyone else got or fixed this error?
>
> I looked at other postings in this list, such as http://www.open-mpi.org/community/lists/devel/2007/05/1590.php
> , but they didn't help much.
>
> _______________________________________________
> devel mailing list
> devel_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/devel