From: Marc Aurele La France <tsi@gpu.srv.ualberta.ca>
To: linux-ia64@vger.kernel.org
Subject: Re: [Linux-ia64] Re: [Xpert] XFree 4.0.1 module loading
Date: Fri, 18 Aug 2000 02:24:52 +0000 [thread overview]
Message-ID: <marc-linux-ia64-105590678205352@msgid-missing> (raw)
In-Reply-To: <marc-linux-ia64-105590678205303@msgid-missing>
On Thu, 17 Aug 2000, Hiram Clawson, 831-427-7519 wrote:
> Rather than trying to work with the XFree86 X server to fix up this
> loading situation, it is a lot easier to create a couple of tiny
> example programs that dlopen() each other to watch the interaction.
> I believe you are talking about the sequence:
> main() dlopens foo0()
> foo0() and main() can freely exchange references with each other.
> Now foo0() dlopens foo1()
> The question is, which of main(), foo0() and foo1() can freely
> exchange references with each other ? Which types of
> dynamic loading schemes will allow all loaded programs to share
> all symbols.
No, there are actually two problems here. One is that, in practice, the
use of dlopen() isn't portable because some implementations do not
implement the LAZY flag properly, instead requiring all symbols to be
defined after each dlopen().
The second issue is that there are circular references between certain
XFree86 modules (although, to my knowledge, Michael has yet to run into
them).
As used in XFree86, the dlopen loader is primarily meant to ease
development on new platforms, and, in the end, a publically released
server should not ship with dlopen modules. Metrolink likely had (has)
other ideas about this, but that's basically how we've used it. Among
other things, this policy allows us to support OS'es that don't provide
dlopen(), in an OS-independent way.
The dlopen loader does have one advantage, however, that being that a
module's symbols become undefined when the module is unloaded.
Marc.
+----------------------------------+-----------------------------------+
| Marc Aurele La France | work: 1-780-492-9310 |
| Computing and Network Services | fax: 1-780-492-1729 |
| 352 General Services Building | email: tsi@ualberta.ca |
| University of Alberta +-----------------------------------+
| Edmonton, Alberta | |
| T6G 2H1 | Standard disclaimers apply |
| CANADA | |
+----------------------------------+-----------------------------------+
XFree86 Core Team member. ATI driver and X server internals.
prev parent reply other threads:[~2000-08-18 2:24 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2000-08-10 3:26 [Linux-ia64] Re: [Xpert] XFree 4.0.1 module loading Marc Aurele La France
2000-08-10 4:08 ` Bill Nottingham
2000-08-10 5:34 ` Michael Madore
2000-08-10 5:37 ` Michael Madore
2000-08-10 15:38 ` Marc Aurele La France
2000-08-10 15:42 ` Bill Nottingham
2000-08-10 16:54 ` Stuart Anderson
2000-08-10 17:00 ` Michael Madore
2000-08-10 17:59 ` Bill Nottingham
2000-08-10 18:06 ` Stuart Anderson
2000-08-11 0:16 ` Keith Owens
2000-08-11 15:10 ` David Dawes
2000-08-17 3:29 ` Marc Aurele La France
2000-08-17 6:18 ` Michael Madore
2000-08-17 16:13 ` Stuart Anderson
2000-08-17 21:20 ` Hiram Clawson, 831-427-7519
2000-08-18 2:24 ` Marc Aurele La France [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=marc-linux-ia64-105590678205352@msgid-missing \
--to=tsi@gpu.srv.ualberta.ca \
--cc=linux-ia64@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox