delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2006/12/22/23:01:49

X-Spam-Check-By: sourceware.org
Message-ID: <458CAA19.44517B89@dessent.net>
Date: Fri, 22 Dec 2006 20:01:29 -0800
From: Brian Dessent <brian AT dessent DOT net>
X-Mailer: Mozilla 4.79 [en] (Windows NT 5.0; U)
MIME-Version: 1.0
To: cygwin AT cygwin DOT com
Subject: Re: Is it possible to directly call a function in a dlopen library
References: <89c3ea2b0612212204g4cf5ee2bg4b90780aaab85c0f AT mail DOT gmail DOT com> <458C0887 DOT 6080201 AT cygwin DOT com> <89c3ea2b0612221906l7e99c12m2776e0c2b13f5568 AT mail DOT gmail DOT com> <458CA19A DOT DD0291F3 AT dessent DOT net> <89c3ea2b0612221948w4528d90bk5a934f3a5bd727b0 AT mail DOT gmail DOT com>
X-IsSubscribed: yes
Reply-To: cygwin AT cygwin DOT com
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com

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/

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019