Radeon TV-in support in Xorg CVS.

Adam Jackson ajax at nwnk.net
Sun Oct 3 23:08:25 PDT 2004


On Sunday 03 October 2004 19:56, Vladimir Dergachev wrote:
> Ohh, absolutely. This statement tests for a bug in XFree86 loader system
> that prevented it from loading sub modules after a certain stage in
> initialization. This was fixed before 4.4.0, but remained just in case
> things break again.
>
> However, I don't understand why this would not resolve - the code to load
> i2c module (as well as resolve the symbols from it) is just preceding this
> line - if this line breaks so would most of other code.

It's subtle.  You're taking the address of an object that isn't defined within 
the driver itself.  The buildtime linker handles this by listing 
xf86CreateI2CBusRec as required but undefined data.  There's no way for the 
runtime linker to interpose on the act of taking the address, so it requires 
that all such data references be resolvable when the module is opened via 
dlopen() - otherwise, the & operator could fail.  This check happens before 
any code in the dlopen'd module can get called, so the radeon driver never 
even gets the chance to load the i2c module.

Functions can be resolved lazily, but data can't.

- ajax
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://lists.x.org/archives/xorg/attachments/20041004/0f0cd586/attachment.pgp>


More information about the xorg mailing list