Hi Arnaud,

On 23 Jul 2012, at 09:02, Arnaud Charlet wrote:

> This patch implements a check in the runtime library that determines whether
> the current target supports the atomic primitives up to 64 bits.

If I understand the name of the flag, it looks like an "all or nothing" for 
atomic primitives?
is that a consequence of the language definition, or simply that it isn't worth 
spending a lot of effort on 32 bit machines?

> This should fix build failures on e.g. powerpc-darwin.

almost :-)

On a 64-bit processor, the [32 bit] powerpc-darwin kernel is capable of 
launching 64bit processes.
Thus, there is an m64 multi-lib for powerpc-darwin, which is built by default 
for GCC (and, for that multi-lib, the 64 bit locks are available).  At present, 
bootstrap is failing while building this multi-lib.

With the following, bootstrap completed on powerpc-apple-darwin9, and make 
check-ada shows no new fails.
Should I apply it?
Iain

gcc/ada: 

        * system-darwin-ppc64.ads: Add Support_Atomic_Primitives,
        set to True.


Index: gcc/ada/system-darwin-ppc64.ads
===================================================================
--- gcc/ada/system-darwin-ppc64.ads     (revision 189777)
+++ gcc/ada/system-darwin-ppc64.ads     (working copy)
@@ -137,6 +137,7 @@ private
    Stack_Check_Limits        : constant Boolean := False;
    Support_64_Bit_Divides    : constant Boolean := True;
    Support_Aggregates        : constant Boolean := True;
+   Support_Atomic_Primitives : constant Boolean := True;
    Support_Composite_Assign  : constant Boolean := True;
    Support_Composite_Compare : constant Boolean := True;
    Support_Long_Shifts       : constant Boolean := True;


Reply via email to