On Tue, May 12, 2009 at 1:01 AM, Alan Coopersmith
<Alan.Coopersmith at sun.com> wrote:
> Martin Bochnig wrote:
>> On Mon, May 11, 2009 at 11:59 PM, Alan Coopersmith
>> <Alan.Coopersmith at sun.com> wrote:
>>> ?- Xorg on SPARC will not work with any driver except the included wsfb 
>>> (which
>>> ? only works on m64 graphics in 8-bit mode) and astfb (AST2100 service
>>> ? processors for servers) until matching SPARC graphics driver packages are
>>> ? built and installed, since this release breaks API/ABI. ? OpenGL on SPARC
>>> ? will also not work unless you get updated matching Xorg OpenGL modules 
>>> from
>>> ? the SPARC graphics team due to the ABI break. ?You should still be able to
>>> ? test on SPARC the other Xservers (Xephyr, Xvnc, Xvfb), and associated
>>> ? programs (like scanpci).
>>
>> Shouldn't Xorg's "-ignoreABI" option work around this?
>> The interested user could make this option permanent via adding it by
>> means of "svccfg -s x11-server".
>
> -ignoreABI would allow the modules to load, but potentially crash if/when they
> used one of the incompatibly changed function calls. ?Since I've not seen the
> sources to the drivers in question, and haven't checked their symbol lists 
> with
> nm, I don't know if any of the drivers make such calls.



IMO it is at least worth to mention this potential un-blocker, rather
than saying from ground up "no driver support on SPARC, period: No
way".
In the worst case what can happen is, that the user's runtime linker
refuses to load Xorg due to missing symbols. In many cases you only
hit one or two new symbols (anyway not too many), and then even some
that are not necessarily required for normal operation. In those (in
practice not uncommon) cases, you can satisfy the runtime linker with
the well-known faking-missings-symbols trick.

/* shim.c */
int nameOfMissingFunctionHere(void *p) { return (0); }
/* compile with /usr/sfw/bin/gcc -m64 -fPIC -shared -o /tmp/shim -c
/tmp/shim.c  */
/* end of shim.c */


Then for running Xorg (or whatever other binary, to be tricked by that
mechanism) :
LD_PRELOAD_64=/path/to/shim /usr/X11/bin/sparcv9/Xorg


--
%martin

Reply via email to