[cairo] [cairo-gl] RFC: Dispatching mechanism for non-standard GL functions

Benjamin Otte otte at redhat.com
Thu Dec 2 06:27:14 PST 2010

On Thu, 2010-12-02 at 08:52 -0500, Behdad Esfahbod wrote:
> We *are* doing it wrong by generating one .so for all backends.  runtime
> linking is one way to fix it.  Having separate .so's for separate backends is
> another.  That's for example what pango does.  But for that to work you have
> to expose the internal backend API and either support it or make sure you make
> it hard for people to use it.
Yeah, I agree on that part. It would be a lot nicer if we would split
our one big so into multiple small ones. I don't think that's API
compatible though, or is it?

Also, I don't see why we'd need to expose any more API than we do
currently, linking doesn't care about header files. We'd however
possibly need to export a bunch of symbols. But I don't think anyone
considers private symbols (i.e. ones not available in headers) seriously
for API stability.

So, keeping the headers as-is and just creating a bunch of libraries
that we install, sounds like a plan at least. It'd also allow me to ship
xcb and gl backends for Cairo in Fedora without causing too many
stability concerns for the "important" backends. SO I'm all for it.


More information about the cairo mailing list