Subject: Re: Current kernel on SHARK panics when starting init
To: Steve Woodford <scw@wasabisystems.com>
From: Richard Earnshaw <rearnsha@arm.com>
List: port-arm
Date: 04/24/2003 15:31:03
> > > > On Thu, 24 Apr 2003, Richard Earnshaw wrote:
> > > >
> > > > > The link value in esigcode is from swi_entry, but the back-trace stops at
> > > > > esigcode.
> > > >
> > > > Is this with a new -current userland too?
> > > >
> > > > Cheers, Steve
> > > >
> > >
> > > Yes. Everything except /etc and X.
> > >
> > > R.
> > >
> >
> > Some progress. If I boot with -a and use /rescue/init then I get a bit
> > further. It would appear to be a dynamic linker problem, since I get an
> > assertion failure when trying to start /bin/sh (of course, if the same
> > assertion was occuring in init, then I'd get an abort there, which does
> > match what I'm seeing).
> >
> > Failure is:
> >
> > assertion "!_rtld_objself.pltgot && !_rtld_objself.textrel" in rtld.c line
> > 159
> >
> > R.
> >
>
> The problem is that ld.elf_so is being given the DT_TEXTREL attribute by
> the linker, whic then causes the second part of the assertion to fail.
> This seems to be a side effect of the new binutils, so it's unclear to me
> why nobody else running a recent current has seen this.
>
> R.
>
It turns out that the assert only fails if a debugging ld.so_elf is built
(-DDEBUG, -DRTLD_DEBUG, -DRTLD_DEBUG_RELOC), and for some reason I had
turned this on once and forgotten to turn it off again. However, that
does indicate a problem somewhere, since it means that you can't debug the
dynamic linker on ARM.
Oddly, however, the binary is still marked with DT_TEXTREL.
R.