binutils is broken on ELF/mips (Re: binutils is broken on Linux/alpha)
H . J . Lu
hjl@lucon.org
Wed Oct 3 15:02:00 GMT 2001
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.
More information about the Binutils
mailing list