Changing private symbols to public (was: Re: CVS Update: xc (branch: trunk))
Keith Packard
keithp at keithp.com
Tue Feb 1 12:28:56 PST 2005
Around 13 o'clock on Feb 1, "Mike A. Harris" wrote:
> Shouldn't it make sense to investigate all issues of this nature
> right now, and decide wether other libraries should:
I did a lot of this when I modularized some of libraries the first time. I
decided then to just publish whatever APIs were in use as 'public' and
leave it at that. That's why the modular xlibs/X11 publishes region.h.
I still think that's probably the most expedient plan, even if it seems
cheesy. There are so many nasty problems with the X libraries, it doesn't
seem worth the effort to clean them up at this point.
> - have certain symbols officially exported and documented that
> are used similarly
I published header files as needed to make things build in a modular tree;
this caught many unofficial public symbols, but not those where the source
actually defined the symbol themselves (as in libSM). I build with a
litany of -W flags to catch things like this.
> - have usage of internal symbols removed if it can be done
> reasonably
That doesn't really eliminate the need to continue publishing the old
symbol as we can't make sure the broken versions of the library are
excised from systems.
> It'd also be a good idea to explore the hide-private-symbols
> stuff Jakub was working on before, which also has the benefit of
> lowering the number of startup relocations that need to be done,
> thus cutting down runtime startup costs.
This would have to be done in a modular build so we could install a single
library and test the results. Cairo uses this stuff now, so we have a
good idea about how to do it portably. Even then, ensuring that we break
no applications is not going to be easy.
-keith
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 228 bytes
Desc: not available
URL: <http://lists.x.org/archives/xorg/attachments/20050201/3b145169/attachment.pgp>
More information about the xorg
mailing list