[cairo] Cairo & pixman on PPC

Andrea Canciani ranma42 at gmail.com
Wed May 16 00:02:40 PDT 2012

On Wed, May 16, 2012 at 5:31 AM, cu <cairouser at yahoo.com> wrote:
> I finally got to bulding pixman 0.24 and cairo 1.10 on PowerPC (MacOS
> 10.4 SDK) - we've been using an old version until now.
> A few issues popped up:
> 1. configure scripts for both pixman and cairo choke on linker warnings.
> they seem to treat warnings like errors and fail any tests that rely on
> those. It seems that *any* linker output is treated as an error. As a
> result, testing for pthreads fails when linker comes up with an
> unrelated warning. In particular, this makes pixman build without
> "thread local" support (which otherwise is provided by
> pthread_setspecific) and cairo not build at all if threading support is
> requested. Pthreads are fully available on PowerPC MacOS.

I had started a little project to get these things out of pixman cairo.
AFAIK it should work on most supported platforms, but I don't have
access to a ppc box anymore.
Would you be willing to test it on ppc (in the hope that it will some
day be useful to replace the mutex/atomic ifdeffery in cairo/pixman)?

> 2. Cairo seems to select "intel atomic primitives" on any platform where
> it is built with GCC. I get this defined both on PPC and on ARM. It
> definitely does not work on ARM/iOS and probably not on PowerPC Mac
> either. Configure really should limit this define to true Intel systems.

"intel atomic primitives" is just a (maybe misleading) name for gcc
atomic builtins.
Cairo tries to detect if they are available by building a program
which uses them.
If gcc makes them available on system on which they are not actually
implemented, this can obviously cause misbehaviors.

Can you provide some additional details about these intrinsics on iOS?
Are they provided by gcc or is cairo incorrectly detecting them when
they are not available?
If they are available, do they work? (This might be a compiler bug?)

On MacOSX, maybe also on iOS, if they are not detected you should get
calls to the OSAtomic functions instead.

> 3. There is a warning related to __visibility__ hidden attribute, as
> used in cairo-compiler-private.h - this attribute does not work on
> PowerPC Mac, evidently. The define depends only on version  GCC and
> __APPLE__, probably should depend on apple and !powerpc.

Should we try to detect it automatically?
Is it only missing on ppc or on arm as well?


> --
> cairo mailing list
> cairo at cairographics.org
> http://lists.cairographics.org/mailman/listinfo/cairo

PS: sorry for little activity on cairo quartz. I've been doing some
progress (and rebasing broke the build, so I fixed it again). I'm a
couple (maybe 3) commits away from posting a new patchset, so it
should happen "soon".

More information about the cairo mailing list