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 majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html