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

Mikael Pettersson
2010-10-11T11:50:46Z

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.