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.