Bug#406754: Bug #406754: portaudio19: FTBFS: #error Memory barriers
are not defined on this system.
Mikael Magnusson
mikma at users.sourceforge.net
Thu Feb 15 14:39:32 UTC 2007
Falk Hueffner wrote:
> Mikael Magnusson <mikma at users.sourceforge.net> writes:
>
>> Falk Hueffner wrote:
>>> Hi,
>>> the correct solution is to use __sync_synchronize as fallback, which
>>> is a full memory barrier defined by gcc (starting from 4.1) for all
>>> platforms. It is also desirable to use this on all platforms that
>>> don't differentiate read/write/full barriers, since it gives the
>>> compiler better opportunities to optimize.
>>>
>> Do you have a patch? I tried to use __sync_synchronize on i386, but it
>> doesn't generate any synchronization code in the assembler output.
>
> Sorry, you need __sync_synchronize(). (Does __sync_synchronize on its
> own not generate a warning?)
>
According to [1]
"gcc does not implement __sync_synchronize() as a full memory barrier on
X86, in spite of the documentation."
Do you know what architecture __sync_synchronize() is implemented as a
full memory barrier?
PortAudio implements native memory barriers for i386 and powerpc. We can
use __sync_synchronize() for other architectures if it's implemented as
a full memory barrier on those. Otherwise we need to disable JACK on
those architectures (already committed to SVN).
Mikael
[1]http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2047.html
More information about the Pkg-voip-maintainers
mailing list