[Gc] Powerpc/m68k issue running test_stack

Michael Cree mcree at orcon.net.nz
Wed Sep 26 02:52:09 PDT 2012


On Tue 25 September 2012 06:35:18 Ivan Maidanski wrote:
> Hi Michael,
> 
> Mon, 24 Sep 2012 20:43:43 +1200 Michael Cree <mcree at orcon.net.nz>:
> > On Sun 23 September 2012 21:44:34 Ivan Maidanski wrote:
> > > Hi Michael, Thorsten and Wouter,
> > > 
> > > A couple of months, You reported libatomic_ops-7.3alpaha test_stack
> > > failure on Alpha, PowerPC and m68k: *
> > > http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=680100
> > > * http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=680066
> > > 
> > > 1. Could you please verify that the problem exists in the recent
> > 
> > > libatomic_ops-7.2:
> > On Alpha the test_stack failure is not present in the release-7_2 branch
> > but is present in master.  It therefore looks like a regression.
> > 
> 
> > I bisected between the head of the release-7_2 branch and master which
> > results in:
> > 
> > cc51941b02fddc75952831eb8e28b06d340d2bef is the first bad commit
> > commit cc51941b02fddc75952831eb8e28b06d340d2bef
> > Author: Ivan Maidanski <ivmai at mail.ru>
> > Date:   Mon Mar 26 08:06:19 2012 +0400
> > 
> >     Use __builtin_expect in CAS failure loop condition checks (GCC only)

> 
> Looks like.
> Will something like this (for master) fix the problem on alpha?:
> src/atomic_ops.h:
> 
> #if __GNUC__ >= 3 && !defined(LINT2)
> # define AO_EXPECT_FALSE(expr) __builtin_expect(expr, 0)
> 
> ->
> 
> #if __GNUC__ >= 3 && !defined(LINT2) && !defined(__alpha__)
> # define AO_EXPECT_FALSE(expr) __builtin_expect(expr, 0)

Yep, that fixes it, but as you state below that is not a real fix.

> If yes then, right, this is gcc/alpha bug. A more precise workaround
> (targeting particular AO_EXPECT_FALSE use) could done then.

When I get a chance I'll take a look at the code generated by gcc about one of 
the AO_EXPECT_FALSEs and see if I can spot any problems.

Cheers
Michael.


More information about the Gc mailing list