pixman: properly enable/disable ARM optimizations
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Fri, 26 Aug 2016 20:44:58 +0000 (22:44 +0200)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Sat, 27 Aug 2016 12:44:05 +0000 (14:44 +0200)
commit2ba72e02b0883e61a11160f0212b51ae1e4d0c70
tree620d4c102a7e3a4c83b5eab316840c3d6021aef5
parent2567f6f2f34a1ecfc25604bf8bf93b8bc065fc63
pixman: properly enable/disable ARM optimizations

The pixman ARM optimized code assumes that ARM instructions are
available. Unfortunately, the configure.ac checks do not detect that the
platform is Thumb-only for Cortex-M builds, so it enables the ARM
optimizations, leading to failures like:

error: /home/test/autobuild/run/instance-3/output/host/usr/arm-buildroot-uclinux-uclibcgnueabi/sysroot/usr/lib/libpixman-1.a(pixman-arm-simd-asm-scaled.o): Conflicting CPU architectures 13/1

When building programs linked with pixman on Thumb-only
architectures. This is due to the fact that some object files in
libpixman-1.a are built for the ARM instruction set.

To resolve this, we give better hints to the pixman configure script
about which ARM optimizations to use: the ARM SIMD optimizations need at
least a CPU that supports ARM instructions, and obviously the ARM NEON
optimizations need NEON support.

Fixes:

  http://autobuild.buildroot.net/results/54bee2ce382fcd067965d30f758f9d15514478d9/

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
[Thomas: add a comment above the --enable-arm-simd option, as suggested
by Arnout.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
package/pixman/pixman.mk