loadble module

Sean Middleditch elanthis@awesomeplay.com
Tue, 13 Jan 2004 23:33:10 -0500


On Tue, 2004-01-13 at 23:15, Keith Packard wrote:

> Using dlopen will require more work; I believe the only way to get it 
> working will be to place the rest of the X server into a giant .so file so 
> that the drivers can locate their symbols.  Perhaps a job for some other 
> day.

I'm probably a complete moron and missing something here, but please
humour me: why does the server need to be a shared object for dlopen'd
files to see the symbols?  You need only compile your binary properly (I
forget the exact flags; -shared for gcc?) and any loaded libraries will
see all symbols in the binary.  Additionally, if that isn't possible due
to limitations on particular platforms, you can simply pass a custom
symbol table (struct with function points) to a driver.  I know at least
on Linux x86 the former works (done it many times myself), and the
latest is guaranteed to work, albeit perhaps with a performance penalty
(given the convenience granted to real-life users, it would seem worth
it - the current one-binary-per-driver makes things like multi-display
servers using different cards impossible, no?)

> 
> -keith
> 
> 
> 
> _______________________________________________
> Xserver mailing list
> Xserver@pdx.freedesktop.org
> http://pdx.freedesktop.org/cgi-bin/mailman/listinfo/xserver
-- 
Sean Middleditch <elanthis@awesomeplay.com>
AwesomePlay Productions, Inc.