LAM/MPI logo

LAM/MPI General User's Mailing List Archives

  |   Home   |   Download   |   Documentation   |   FAQ   |   all just in this list

From: Jeff Squyres (jsquyres_at_[hidden])
Date: 2004-10-21 07:37:50


On Oct 20, 2004, at 6:31 AM, Jason.Beech-Brandt_at_[hidden] wrote:

> I did an nm on share/lib/liblam.so and the missing symbols are not to
> be
> found there. I didn't notice any errors or warnings in the make
> output to
> give any indication why they are missing. I am using Solaris ld. I
> have
> an older version of gcc, so maybe I'll try that to see if there is some
> problem in using gcc-3.4.2.

This is quite odd -- I also see no warnings / errors in your build, and
it looks like the source files where those symbols are defined were
built properly. For example, getnodes() is in share/rreq/getnodes.c.
You can see that it compiled properly and was added to liblamrreq.la.
liblamrreq is then later sucked into liblam.la (and it should be),
which should pull getnodes.o along with it. This is the Normal Libtool
Way of Doing Things.

There's no indication that this failed, but somehow at least getnodes.o
didn't makes it up into liblam.la. A few questions:

- are you sure that you're using the right version of ld? I'm
wondering if there's some kind of failure happening behind the scenes
such that library aggregation is not happening as it should. What
happens when you run "which ld"? I have a dim recollection of mixing
Solaris and GNU ld causing problems, but I don't remember the specific
issue. FWIW, on our Solaris boxen, "which ld" returns /usr/ccs/bin/ld.

- can you check the contents of share/rreq/.libs/liblamrreq.a with nm
and see if getnodes is in there?

- are you building on NFS (or some other networked filesystem),
perchance?

-- 
{+} Jeff Squyres
{+} jsquyres_at_[hidden]
{+} http://www.lam-mpi.org/