On numbers as part of library names
sandmann at daimi.au.dk
Wed Aug 8 09:14:33 PDT 2007
Responding to various people, here is a couple of points:
* Linking two incompatible versions of pixman into the same process
can *never* work. It's retarded and irrelevant to the issue. I am
not listening about obscure ELF and ld.so features.
* Two incompatible versions of a library can be *installed* at the
same time and linked to two different executables if the libraries
have different names. This is useful and required so that separate
projects can upgrade at separate times.
And yes, you need to be able to install development headers for both
libraries at the same time, because otherwise you can't compile the
dependent projects on the same system. And yes, the library names
must be different because otherwise you end up with
and nobody will know what is actually installed, or which of the
libpixman.so's are compatible, or what "-lpixman" means.
The only *interesting* issue is what ABI guarantees pixman
provides. There are two possibilities:
1. One big round of fixing up pixman's API before the next versions of
X and cairo, then freeze forever.
2. Ship essentially the current version of the pixman API with X and
cairo, then later break the ABI to get 32 bit regions and resolve
the various other things I listed. 
It is important to keep in mind that the pixman API is not exposed
through cairo, but the regions *are* part of the X server video driver
API. This means that choosing between (1) and (2) requires answering
Do we break video driver ABI for the next X server release?
If no, then (2) is the only possibility.
If yes, then option (1) is a possibility. However
* It will require changes to X that Eric may not want to take at this
point in the X release cycle.
* Any API review needs to take place pretty much now.
 This option will require that the two incompatible versions of
pixman have different names. I don't care what those names are as
long as they are different.
More information about the xorg