On 22 Dec 2008, at 10:49, Andreas Höschler wrote:

> ETThreadedObject.m:44:2: #warning Potentially unsafe memory operations
> being used
> make[1]: *** [obj/ETThreadedObject.m.o] Error 1
> make: *** [EtoileThread.all.framework.variables] Error 2
>
>> I still don't understand why we don't get this warning on other
>> platforms… What's your GCC version?
>
> -bash-3.00# gcc --version
> gcc (GCC) 3.4.4

I can explain this one.  ETThreadedObject uses lockless ring buffers  
which require either a strongly-ordered architecture, or atomic  
operations.  If your GCC support atomic builtins, then they will be  
used.  If not, then it will fall back to doing unsafe arithmetic.  You  
need to check whether your architecture (SPARC?) allows reordering of  
memory accesses and if it does (I think it does) then you will need to  
upgrade GCC or add some inline assembly providing an atomic increment.

David
_______________________________________________
Etoile-discuss mailing list
[email protected]
https://mail.gna.org/listinfo/etoile-discuss

Répondre à