[PATCH] Prefer locally defined symbols in modules

Matthias Hopf mhopf at suse.de
Tue Sep 8 08:47:50 PDT 2009


As multiple driver modules are loaded now on startup time (even if they
aren't actually used) we get something now that has not really been a
problem so far:

  Name clashes.

We at SUSE additionally load radeonhd and radeon, and there the clashes
are most severe - I found 167 name clashes, which result in certain
death on r4xx cards with AtomBIOS, because some AtomBIOS routines from
radeonhd are called from the radeon driver, which have the same name but
subtly different semantics. Or values from tables from the one driver
are used with functions of the other. You get the picture.

The attached patch solves this issue on Linux - it uses RTLD_DEEPBIND
which is unfortunately not POSIX.1-2001 compatible.
Should this be added according to compile-time tests, or is there
another equivalent solution?

In the long term, explicitly exported symbols would probably be the
right way to go.

Matthias

-- 
Matthias Hopf <mhopf at suse.de>      __        __   __
Maxfeldstr. 5 / 90409 Nuernberg   (_   | |  (_   |__          mat at mshopf.de
Phone +49-911-74053-715           __)  |_|  __)  |__  R & D   www.mshopf.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: bug534768-prefer_local_symbols.patch
Type: text/x-patch
Size: 961 bytes
Desc: not available
Url : http://lists.x.org/archives/xorg-devel/attachments/20090908/dd0a832d/attachment.bin 


More information about the xorg-devel mailing list