Mikael Pettersson writes:
 > Al Viro writes:
 >  > On Mon, Oct 11, 2010 at 12:52:56AM +0100, Al Viro wrote:
 >  > > On Sun, Oct 10, 2010 at 10:18:03PM +0200, Geert Uytterhoeven wrote:
 >  > > > >> This is on aranym-0.9.9-1 from Ubuntu/amd64.
 >  > > > >
 >  > > > > stat -L /proc/2/exec, otherwise you'll hit lstat() instead of 
 > stat().
 >  > > > > And FWIW 0.9.10-1 squeeze/amd64 also triggers here...
 >  > > > 
 >  > > > Still, just "stat: cannot stat `proc/2/exe': No such file or 
 > directory" here...
 >  > > 
 >  > > Interesting...  Which gcc version is used?
 >  > 
 >  > Argh...  OK, going through aranym with debugger has exhonorated it.  My
 >  > apologies ;-/  It *is* gcc in sid.  Testcase:
 >  > 
 >  > extern int foo(int);
 >  > void *bar(int n)
 >  > {
 >  >         return (void *)foo(n);
 >  > }
 >  > 
 >  > and gcc -S -O2 turns that into
 >  > bar:
 >  >         link.w %fp,#0
 >  >         unlk %fp
 >  >         jra foo
 >  > 
 >  > Spot the obvious bug...  BTW, why on the Earth does debian-ports m68k tree
 >  > use gcc-4.3 with Cthulhu-scaring 700Kb gzipped patch and does *not* have
 >  > gcc-4.4?
 > 
 > I can confirm that the bug exists in gcc-4.3.4 and gcc-4.4.5,
 > but it has been fixed in gcc-4.5.1 which generates:
 > 
 > bar:
 >         link.w %fp,#0
 >         move.l 8(%fp),-(%sp)
 >         jsr foo
 >         move.l %d0,%a0
 >         unlk %fp
 >         rts
 > 
 > I don't yet know the gcc PR number or svn commit # for the fix
 > (in case people want a backport).

It's gcc PR41302 which was fixed for gcc trunk on November 4 2009
in r153890.  The patch backports easily to gcc-4.4 and solves the
test case there (manual inspection using a cross).  It also backports
easily to gcc-4.3 but I haven't tested it there.
--
To unsubscribe from this list: send the line "unsubscribe linux-m68k" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to