Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Development mailing list

Subject: Re: [OMPI devel] libtool issue with crs/self
From: Brian W. Barrett (brbarret_at_[hidden])
Date: 2009-08-05 12:44:14


On Wed, 5 Aug 2009, Josh Hursey wrote:

> On Aug 5, 2009, at 11:35 AM, Brian W. Barrett wrote:
>
>> Josh -
>>
>> Just in case it wasn't clear -- if you're only looking for a symbol in the
>> executable (which you know is there), you do *NOT* have to dlopen() the
>> executable first (you do with libtool to support the "i don't have dynamic
>> library support" mode of operatoin). You only have to dlsym() with
>> RTLD_DEFAULT, as the symbol is already in the process space.
>
> So is it wrong to dlopen() before dlsym()? The patch I just committed in
> r21766 does this, since I was following the man page for dlopen() to make
> sure I was using it correctly.

I don't know that it's "wrong", it's just not necessary. I believe that:

   handle = dlopen(NULL, RTLD_LOCAL|RTLD_LAZY);
   sym = dlsym(handle, "foo");
   dlclose(handle)l

and

   sym = dlsym(RTLD_DEFAULT, "foo");

are functionally equivalent, but the second one means no handle to pass
around :).

Brian