Re: aranym bug, manifests as "ida_remove called for id=13" on recent kernels

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Video for Linux]     [Yosemite News]     [Linux S/390]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux