[cairo] Pixman refactoring, ARM and Altivec implementations needed

Siarhei Siamashka siarhei.siamashka at nokia.com
Fri May 29 13:16:57 PDT 2009


On Friday 29 May 2009 14:34:18 ext Jonathan Morton wrote:
> > Attached is the very nontrivial patch which contains just the
> > integration of ARM-SIMD and ARM-NEON.
>
> I did a bit more work and produced a more complete patch.  This should
> apply and work without extra effort, but still only deals with the ARM
> targets.

Nice, it works.

The only pitfall that I noticed so far is that build fails with
'./configure && make' if the compiler is not configured to
generate code for armv6+ by default.

In this case arm-simd is not detected by configure, arm-neon gets enabled and
linking fails:

/bin/sh ../libtool --tag=CC   --mode=link 
gcc  -g -O2 -Wall -fvisibility=hidden   -o region-test 
region-test.o ../pixman/libpixman-1.la 
libtool: link: gcc -g -O2 -Wall -fvisibility=hidden -o region-test 
region-test.o  ../pixman/.libs/libpixman-1.a -lm
../pixman/.libs/libpixman-1.a(libpixman_arm_neon_la-pixman-arm-neon.o): In 
function `_pixman_implementation_create_arm_neon':
/home/serge/projects/pixman/pixman/pixman-arm-neon.c:1542: undefined reference 
to `_pixman_implementation_create_arm_simd'
collect2: ld returned 1 exit status
make[2]: *** [region-test] Error 1

Would it be a good idea to compile pixman-arm-simd.c with '-march=armv6',
ignoring CFLAGS completely? It is not using floating point, so floating point
ABI should not matter.

-- 
Best regards,
Siarhei Siamashka


More information about the cairo mailing list