delorie.com/archives/browse.cgi | search |
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/
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |