This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Is it possible to directly call a function in a dlopen library


andy wang wrote:

> So maybe it is possible on Linux? I asked this question because I find
> this kind of logic in asterisk! the main program will load the .so
> using dlopen. i.e. module1.so and module2.so, and I notice that
> module2.so will call directly (without dlsym, just func1( ... ) which
> is defined in module1.so). I am very confused :-(. Is it because it
> used RTLD_GLOBAL?

Yes, ELF is a completely different world than PE/COFF.  ELF has many
capabilities that don't exist in PE/COFF, like lazy binding.  This is
essentially what the autoload.cc technique is reimplementing, a sort of
ersatz PLT.  Except on ELF this is provided by the operating system (or
more precisely the libc's dynamic linker ld.so) so there is no need for
the application to worry about it.  And programs that rely on this are
non-portable, as Win32 is not the only platform with this restriction,
although it's certainly the most common.

Brian

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]