This is the mail archive of the
mailing list for the binutils project.
Re: Revert pr16467 change
- From: "H.J. Lu" <hjl dot tools at gmail dot com>
- To: Alan Modra <amodra at gmail dot com>
- Cc: Binutils <binutils at sourceware dot org>
- Date: Wed, 1 Jun 2016 06:51:16 -0700
- Subject: Re: Revert pr16467 change
- Authentication-results: sourceware.org; auth=none
- References: <20160601132839 dot GE18662 at bubble dot grove dot modra dot org>
On Wed, Jun 1, 2016 at 6:28 AM, Alan Modra <firstname.lastname@example.org> wrote:
> This reverts the pr16467 change, which was incorrect due to faulty
> analysis of the pr16467 testcase. The failure was not due to a
> mismatch in symbol type (ifunc/non-ifunc) but due to a symbol loop
> being set up. I've added a pr16467d.c that shows the same symbol
> loop without ifunc being involved.
I agree. PR 16467 is an odd case which moves a versoned symbol
from one DSO to another.
> I'm not 100% happy with this fix, due to not always having symbol
> versions around early enough. See the comment. However, comparing
> versions directly addresses the problem exposed by the testcase, and I
> don't see any other approach that will work in all cases.
> The strtab save/restore change is necessary due to
> _bfd_elf_add_default_symbol now calling elf_backend_hide_symbol, which
> decrements dynstr strtab refcounts. Previously we only added new
> dynamic symbols.
> I'll commit this in a few days if no more problems like the strtab
> refcounting one appear.
Can you check your change into a branch? I'd like to add a few
more testcases on top of your change.