ABI questions

Thomas Hellstrom thellstrom at vmware.com
Tue Oct 19 12:42:37 PDT 2010


On 10/19/2010 05:18 PM, Trevor Woerner wrote:
> Thanks so much, Peter, for taking the time to reply. The following is
> what I've tried to understand from poking around. I'd appreciate any
> clarifications if I'm off-track:
>
>  From what I can tell, there are 5 ABI's which are important to the
> code, which are found in xserver/hw/xfree86/common/xf86Module.h:
> - ABI_CLASS_ANSIC
> - ..._VIDEODRV
> - ..._XINPUT
> - ..._EXTENSION
> - ..._FONT
>
>  From the poking around I've done, the ABI_CLASS_XINPUT ABI appears to
> be defined in the file xserver/hw/xfree86/common/xf86Xinput.h, but is
> that the only place it's defined? Is there a list somewhere saying:
> "here are the files/functions/identifiers which define ABI X"? If not,
> would that be useful?
>
> Has anyone attempted to track which releases contain which ABI
> versions? If not, would that be useful?
>
> Grepping through the code there are many instances throughout driver/*
> where the version of the XINPUT ABI is checked. But there aren't any
> instances of any code checking the version of the EXTENSION ABI.
> Shouldn't there be lots of such checks throughout the extension
> libraries? Especially the older ones?
>
> If it is correct to assume the date of tagging is the same as the date
> of release, I have determined the following list of events:
>
> - (ABI_XINPUT_VERSION at 10,0)
>
> - (InputDriversRec contains a refCount member)
>
> - Apr 2
> 1.8.0 released
>
> - May 11
> 1.8.1 released
>
> - May 27
> ABI_XINPUT_VERSION bumped to 11,0
>
> - Jul 1
> 1.8.2 released
>
> - Aug 20
> 1.9.0 released
>
> - Sep 18
> InputDriverRec loses refCount
>
> If I only perform a check of the ABI version, the code won't compile
> if building against code between May 27 and Sep 18. Is that
> acceptable? Or am I misunderstanding something?
>    

Trevor,
ABI major bumps (backwards incompatibility) should only happen on 
development branches before the first RC of a new release. This means 
that the dates above are correct, but you're missing the branch info:

1.8.2 and the 1.8.X release series should have the 9,0 XINPUT ABI.
1.9.0 and the 1.9.X release series should have the 11,0 ABI

The Sep 18 InputDriverRec loses refcount hopefully occured on the master 
branch, and *should* have been accompanied by an XINPUT ABI bump to 
12,0, but apparently somebody missed that.

This means that to be able to decide whether a driver should initialize 
the refcount or not, it should check for ABI version 12, alternatively 
for Xserver 1.9.99.1 or higher. IMHO the best that could be done is to 
bump the ABI version ASAP and check for it, and ignore that the driver 
doesn't compile between Sep 18 and now. However, I guess Peter would be 
better suited to answer whether the ABI should be bumped or not.

/Thomas










> _______________________________________________
> xorg-devel at lists.x.org: X.Org development
> Archives: http://lists.x.org/archives/xorg-devel
> Info: http://lists.x.org/mailman/listinfo/xorg-devel
>    



More information about the xorg-devel mailing list