[Xorg] Xinerama backward compatibility issues

Kaleb S. KEITHLEY kaleb at shiman.com
Wed Feb 18 10:34:49 PST 2004

Egbert Eich wrote:
> I've reviewed the new Xinerama code on Xorg for backward
> compatibility issues with existing (and shipped) versions
> of Xinerama.
> Here are my findings:
> 1. The old PanoramiX C Bindings form libXinerama are gone. 
> 2. The Xinerama 1.1 functions that were replaced by new ones
>    are now deprecated (#ifndef XNOXINERAMABC) but still available
>    and declared in the header.
> 3. XineramaSetCenterHint(), XineramaGetCenterHint(): new functions
>    declared in the header but I couldn't find an implementation.

These are not in the SourceForge spec. They should be removed from the 

> 4. No backward compatibility on the wire protocol level. It least 
>    I didn't find any.
> To me 1. looks like a minor issue. libXinerama has not been built
>  dynamically so no client should require these symbols as they 
> haven't been advertised in any header (except for XPanoramiXAllocInfo() 
> which is declared in panoramiXext.h). 
> On the API/ABI level all required functions from Xinerama 1.1 seem 
> to exist except for the ones mentioned in 1.
> Unfortunately this will not help us as libXinerama has always been 
> as static library so far.

It helps in that, in the worst case scenario, all that's required is to 
merely relink, rather than modify source and recompile.

> More dramatically backward compatibility on the wire protocol level
> exists neither on the client nor on the server side. This means an 
> older client won't work on the Xorg server and a client built with 
> the new version of libXinerama will fail on older servers.
> This may create a compatibility problem.

That's correct, no attempt has been made -- so far -- to preserve BC at 
the wire protocol level. (Nobody has made the case that it needs to be, 
either. Not yet anyway.)

And, FWIW, in XFree86 4.4RCx, libXinerama is now a shared library.



More information about the xorg mailing list