[Pixman] pixman on iOS

Søren Sandmann sandmann at cs.au.dk
Thu Feb 16 12:47:17 PST 2012

Jeremy Huddleston <jeremyhu at apple.com> writes:

> I noticed this message in the release notes for 0.24.4:
> """
> This release also contains some basic support for using the NEON
> acceleration on iOS, although actually building pixman on that platform
> remains difficult.
> """
> I was curious about what was so difficult about building pixman for
> iOS and decided to lend a hand.  Attached are 2 patches for review and
> build instructions for how I got it to build.
> The script will build pixman master for iOS (after the 2 patches are
> applied).  The patches fix TLS detection and add support for
> --disable-libpng (because I didn't feel like building libpng, too, and
> pkg-config picked up my host libpng).

> Everything built just fine.  I haven't tested it, but this should make
> it easier for people to use in iOS if they want.  You'll need to
> adjust the path to the SDK and the minimum version of iOS that you
> want to support as appropriate.

I have pushed the libpng patch. Regarding the TLS patch,

> Subject: [PATCH 2/2] Expand TLS support beyond __thread to __declspec(thread)
> Also prefer initial-exec if available.  This code was pretty much
> coppied from a similar commit that I made to xorg-server in April.

I don't think initial-exec is appropriate for pixman, which is often
dynamically opened. See these bugs:


Also, this part of the patch:

> -AC_MSG_CHECKING(for __thread)
> -#if defined(__MINGW32__) && !(__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5))
> -#error This MinGW version has broken __thread support
> -#endif
> -#ifdef __OpenBSD__
> -#error OpenBSD has broken __thread support
> -#endif

looks like it is losing the workarounds for broken __thread support on
OpenBSD and certain versions of MinGW.


More information about the Pixman mailing list