This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

binutils is broken on ELF/mips (Re: binutils is broken on Linux/alpha)


On Sat, Sep 29, 2001 at 05:50:26PM -0700, H . J . Lu wrote:
> On Sat, Sep 29, 2001 at 11:34:38AM -0700, H . J . Lu wrote:
> > On Sat, Sep 29, 2001 at 10:35:15AM -0700, H . J . Lu wrote:
> > 
> > Hi Alan,
> > 
> > I have verified that your patch
> > 
> > http://sources.redhat.com/ml/binutils/2001-09/msg00487.html
> > 
> > causes the Linux/alpha failures. There may be more broken ELF targets
> > because of your change.
> > 
> > 
> 
> Alan,
> 
> This change is wrong or incomplete. You cannot do
> 
> -  if (dir->got.offset == (bfd_vma) -1)
> +  if (dir->got.refcount <= 0)
> 
> nor
> 
> -      dir->plt.offset = ind->plt.offset;
> -      ind->plt.offset = (bfd_vma) -1;
> +      dir->plt.refcount = ind->plt.refcount;
> +      ind->plt.refcount = 0;
> 

Alan, your latest patch is still not correct for all ELF targets.
ELF/mips doesn't use refcount. However, -1 offset and 0 offset have
special meanings. Now, with your change, ELF/mips is broken. I believe
you need to do

# grep "t\.offset" elf*.?

and exam every single useage of it. Could you please fix it?

Thanks.


H.J.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]