On numbers as part of library names

Soeren Sandmann 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

        libpixman.so.<gobbledigook>

  and 

        libpixman.so.<different gobbledigook>

  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. [1]

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
this question:

        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.


Soren



[1] 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 mailing list