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