Message ID | yddsjnn37fo.fsf@manam.CeBiTec.Uni-Bielefeld.DE |
---|---|
State | New |
Headers | show |
> Mainline Ada bootstrap is currently broken on Solaris 8 and 9/x86 with > Sun as: > > Assembler: a-strunb.adb > "/var/tmp//cc6ZxWWa.s", line 2395 : Syntax error > "/var/tmp//cc6ZxWWa.s", line 2591 : Syntax error > make[7]: *** [a-strunb.o] Error 1 > > The problem is that s-atocou-x86.adb uses lock incl resp. lock decl, > where older Sun as requires lock; incl. This is exactly what %; was > introduced for, which is already used in i386/sync.md. > > The following patch uses it and allowed i386-pc-solaris2.[89] bootstraps > to complete. Testing is currently running, and I'll also bootstrap with > gas instead of as once that's finished. > > Ok for mainline if those tests pass? Assuming it does not break x86 linux, OK. Arno
Arnaud Charlet <charlet@adacore.com> writes: >> Mainline Ada bootstrap is currently broken on Solaris 8 and 9/x86 with >> Sun as: >> >> Assembler: a-strunb.adb >> "/var/tmp//cc6ZxWWa.s", line 2395 : Syntax error >> "/var/tmp//cc6ZxWWa.s", line 2591 : Syntax error >> make[7]: *** [a-strunb.o] Error 1 >> >> The problem is that s-atocou-x86.adb uses lock incl resp. lock decl, >> where older Sun as requires lock; incl. This is exactly what %; was >> introduced for, which is already used in i386/sync.md. >> >> The following patch uses it and allowed i386-pc-solaris2.[89] bootstraps >> to complete. Testing is currently running, and I'll also bootstrap with >> gas instead of as once that's finished. >> >> Ok for mainline if those tests pass? > > Assuming it does not break x86 linux, OK. An x86_64-unknown-linux-gnu bootstrap finished without regressions, so I've installed the patch. Rainer
# HG changeset patch # Parent 66b8372f5970a73e9957914fae8bfbeced71a512 Restore Ada bootstrap on Solaris 8, 9/x86 diff --git a/gcc/ada/s-atocou-x86.adb b/gcc/ada/s-atocou-x86.adb --- a/gcc/ada/s-atocou-x86.adb +++ b/gcc/ada/s-atocou-x86.adb @@ -50,7 +50,7 @@ package body System.Atomic_Counters is begin System.Machine_Code.Asm (Template => - "lock decl" & ASCII.HT & "%0" & ASCII.LF & ASCII.HT + "lock%; decl" & ASCII.HT & "%0" & ASCII.LF & ASCII.HT & "sete %1", Outputs => (Unsigned_32'Asm_Output ("=m", Item.Value), @@ -68,7 +68,7 @@ package body System.Atomic_Counters is procedure Increment (Item : in out Atomic_Counter) is begin System.Machine_Code.Asm - (Template => "lock incl" & ASCII.HT & "%0", + (Template => "lock%; incl" & ASCII.HT & "%0", Outputs => Unsigned_32'Asm_Output ("=m", Item.Value), Inputs => Unsigned_32'Asm_Input ("m", Item.Value), Volatile => True);