Breaking the X module ABI in 7.0 ?

Adam Jackson ajax at nwnk.net
Wed Apr 13 14:45:26 PDT 2005


On Wednesday 13 April 2005 16:32, Jonas Gall wrote:
> On 4/11/05, Adam Jackson <ajax at nwnk.net> wrote:
> > On Friday 08 April 2005 20:08, Roland Mainz wrote:
> > > 2. Would it be possible to break the existing ABI and start from
> > > scratch with a new one ?
> >
> > Many things are possible.  I doubt reinventing this particular wheel
> > would be a good use of our time.
>
> But sacrificing innovation in favor of a dying loader format is a good
> use of time? Many of you now favor the new 'dll loader' loader over
> the ELF loader - why is it required to pull over all the mistakes in
> the ABI design done in the ELF loader times over to the dll loader?

Please don't call it "dll loader".  It's dlloader, because it's based on the 
system's libdl library.

I really don't understand why people are conflating module format with ABI, as 
they're basically orthogonal.  Let's define some terms here.  The ABI is the 
set of function signatures and global data that the modules can expect to be 
exported from the server.  It is effectively defined to be the list of 
SYMFUNC and SYMVAR statements in the loader code together with the module 
info structures.  If you see something in those lists that needs to be 
changed, _that_ is an ABI change.  Module format really isn't at play here 
[1].

You can think of it as having four implementations of the same ABI, if it 
helps.  This multiplicity goes away in the future, as everything except 
dlloader is deprecated as of 7.0.

> X11 R7 should make a clean, clear cut here, right together with the
> introduction of the new loader.

This loader has existed since XFree86 4.0.  It was only recently made usable 
in 6.8, but this was only due to driver bugs, not bugs in the loader itself.  
It is not a new loader.

If you have suggestions for major ABI changes I'd love to hear them, but right 
now I'm not hearing any.  I'm just hearing people clamoring for change 
without a clear description of what changes they want together with why they 
are needed.

> PS: Do not forget this item:
> xc/config/cf/X11.tmpl
>   * This enables binary compatibility with the older (XFree86 <= 4.1)
> fontenc * entry points in the Xfont library (and X server).  If this is
> turned off, * then SharedFontRev should have it's major revision bumped,
> and the * XFree86 font module ABI (in xfree86/common/xf86Module.h) should
> have it's * major revision bumped.

Feel free to open a bug for this - or any other ABI issue - and keyword it 
with 'ABI' so I know to look for it when 7.0 time rolls around.

[1] - This is a slight lie, due to some sloppiness in the way dlloader works 
which allows you to reference things outside the SYMFUNC/SYMVAR list.  Pay no 
attention to the man behind that curtain.

- 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-arch/attachments/20050413/cd7e73df/attachment.pgp


More information about the xorg-arch mailing list