[Pixman] pixman on iOS

cu cairouser at yahoo.com
Wed Feb 15 15:13:57 PST 2012


- The assembler code is not mine. It's a standard assembler set of
optimized instructions for NEON (arm v7 etc) that is included with pixman

- It will not build on iOS because configure script is unable to test
NEON intrinsics (as they are not supported by iOS asm compiler)

- So far, the only (somewhat) workable approach was to compile the
assembler code on Linux, then disassemble into basic instruction set
(i.e. not using any macros etc), and then use that "raw assembler" to
compile for iOS.  Doing so still requires somehow working around
configure script (i.e. editing it to forcibly enable ARM NEON
optimizations). It's a manual process and clearly not particularly
convenient, or maintainable.



Jeremy Huddleston wrote:
> I haven't tested anything or even looked at your assembly.  I just fixed it such that it would build out of the box. That's not to say that it builds *correct* out of the box, but now it at least builds trivially, and you can look into any other issues.
>
> What errors are you getting trying to compile the pixman arm assembly code for iOS?
>
> On Feb 15, 2012, at 6:34 AM, cu <cairouser at yahoo.com> wrote:
>
>   
>> I think the difficulty refers to the fact that pixman arm assembly code
>> can't be directly compiled for iOS.
>>
>> Does this patch still require the precompiled-disassembled version of
>> pixman_arm_neon.S?
>>
>>
>> Jeremy Huddleston wrote:
>>     
>>> 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.
>>>
>>>
>>>
>>> ------------------------------------------------------------------------
>>>
>>>
>>>
>>> SDK="/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk"
>>> export CC=$(xcrun -sdk iphoneos -find clang) 
>>> export AS=$(xcrun -sdk iphoneos -find as)
>>> export CPPFLAGS="-isysroot ${SDK}"
>>> export CFLAGS="-g3 -gdwarf-2 -Os -pipe -miphoneos-version-min=5.0 -arch armv6 -arch armv7"
>>> export LDFLAGS="-isysroot ${SDK} -miphoneos-version-min=5.0 -arch armv6 -arch armv7"
>>> ./configure --host=arm-apple-darwin
>>> make
>>>
>>> --Jeremy
>>>
>>>
>>> ------------------------------------------------------------------------
>>>
>>> _______________________________________________
>>> Pixman mailing list
>>> Pixman at lists.freedesktop.org
>>> http://lists.freedesktop.org/mailman/listinfo/pixman
>>>
>>>       
>
> _______________________________________________
> Pixman mailing list
> Pixman at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/pixman
>   



More information about the Pixman mailing list