[Pixman] pixman on iOS

Matt Turner mattst88 at gmail.com
Wed Feb 15 19:54:02 PST 2012


On Wed, Feb 15, 2012 at 9:20 PM, Jeremy Huddleston <jeremyhu at apple.com> wrote:
> Can you give me a bit more specifics?  Do you have a reduced test case that you can show me of the problems you are having?  Have you opened a bug report on llvm's bugzilla?  Have you filed a radar with Apple's bug tracker?
>
> On Feb 15, 2012, at 3:13 PM, cu <cairouser at yahoo.com> wrote:
>
>> - 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

CC'ing Bobby Salazar, who has worked on this.


More information about the Pixman mailing list