[oe] [PATCH] cairo: disable native atomic operations, conflicts with libatomics-ops

Denys Dmytriyenko denis at denix.org
Thu Mar 17 19:17:48 UTC 2011


On Thu, Mar 17, 2011 at 03:12:21PM +0100, Henning Heinold wrote:
> Hi,
> 
> I looked deeper into the problem.
> Cairo looks first for:
> 
> return __sync_fetch_and_add
> __sync_val_compare_and_swap
> 
> and defines it as cairo_cv_atomic_primitives="Intel".
> 
> According to http://gcc.gnu.org/wiki/Atomic
> arm and sh3/4 should work too.
> 
> If the configure compile fails
> cairo is looking for libatomic-ops
> support.

Similar to what I observed (if not reversed):

* If libatomic-ops is not available (no atomic_ops.h), it chooses/falls back 
to "Intel" provider (i.e. kernel/gcc), which also works on ARM. It's similar 
to --disable-atomic

* If it finds atomic_ops.h previously staged, it chooses that as a provider, 
but since libatomic-ops was not built with emulated CAS for ARM, it later 
fails with the build error.

> The libatomic-ops in oe is very old and misses diffrent bug fixes and is only
> needed for ppc and mips.
> 
> I will try to clean the stuff up this evening, which proably applies to
> pulse-audio too.

If you are going to update libatomic-ops anyway, I won't bother adding 
AO_REQUIRE_CAS define myself. Thanks for looking into it.

-- 
Denys




More information about the Openembedded-devel mailing list