This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
RE: [Patch] MIPS FDE deletion
- From: "Maciej W. Rozycki" <macro at imgtec dot com>
- To: "Moore, Catherine" <Catherine_Moore at mentor dot com>
- Cc: "binutils at sourceware dot org" <binutils at sourceware dot org>, "gcc at gcc dot gnu dot org" <gcc at gcc dot gnu dot org>, Richard Sandiford <rdsandiford at googlemail dot com>
- Date: Mon, 15 Feb 2016 15:04:11 +0000
- Subject: RE: [Patch] MIPS FDE deletion
- Authentication-results: sourceware.org; auth=none
- References: <FD3DCEAC5B03E9408544A1E416F112420192CBD1CF at NA-MBX-04 dot mgc dot mentorg dot com> <alpine dot DEB dot 2 dot 00 dot 1601100241420 dot 5958 at tp dot orcam dot me dot uk> <FD3DCEAC5B03E9408544A1E416F112420192D0444C at NA-MBX-04 dot mgc dot mentorg dot com> <alpine dot DEB dot 2 dot 00 dot 1601190128580 dot 5958 at tp dot orcam dot me dot uk> <FD3DCEAC5B03E9408544A1E416F112420192D0FFAD at NA-MBX-04 dot mgc dot mentorg dot com>
On Wed, 10 Feb 2016, Moore, Catherine wrote:
> > I saw your patch handles the `fn_stub' case among others and your test case
> > included an `__fn_stub_foo' stub too, which is what PR target/53276 is all
> > about, which is why I thought it may have been resolved and the existence
> > of the PR accidentally missed.
> >
> > BTW, your test case has a stub of the `fn_stub' kind (`__fn_stub_foo') and
> > one of the `call_fp_stub' kind (`__call_stub_fp_foo'), but none of the
> > `call_stub' kind (for `foo' it would be called `__call_stub_foo'). The latter has
> > AFAICT been addressed by r184379. Was the omission of the test case then
> > deliberate for some reason (why?) or just accidental?
> >
>
> This is a follow-on patch to fix failures in the GDB MIPS16 thunk tests. I've now augmented the test case to handle the "__call_stub_foo" case.
> Does this look to commit?
I think there is no point in renaming the test cases, all of these *are*
floating-point stubs after all. If you disagree (why?), then can you
handle the renamed with `git mv' so that history is preserved for them
though (now that we have an RCS that can do renames)?
> diff --git a/bfd/elfxx-mips.c b/bfd/elfxx-mips.c
> index fa14e8d..fd1deaa 100644
> --- a/bfd/elfxx-mips.c
> +++ b/bfd/elfxx-mips.c
> @@ -1708,6 +1708,7 @@ mips_elf_check_mips16_stubs (struct bfd_link_info *info,
> h->fn_stub->reloc_count = 0;
> h->fn_stub->flags |= SEC_EXCLUDE;
> h->fn_stub->output_section = bfd_abs_section_ptr;
> + h->fn_stub = bfd_abs_section_ptr;
> }
>
> if (h->call_stub != NULL
> @@ -1721,6 +1722,7 @@ mips_elf_check_mips16_stubs (struct bfd_link_info *info,
> h->call_stub->reloc_count = 0;
> h->call_stub->flags |= SEC_EXCLUDE;
> h->call_stub->output_section = bfd_abs_section_ptr;
> + h->call_stub = bfd_abs_section_ptr;
> }
>
> if (h->call_fp_stub != NULL
> @@ -1734,6 +1736,7 @@ mips_elf_check_mips16_stubs (struct bfd_link_info *info,
> h->call_fp_stub->reloc_count = 0;
> h->call_fp_stub->flags |= SEC_EXCLUDE;
> h->call_fp_stub->output_section = bfd_abs_section_ptr;
> + h->call_fp_stub = bfd_abs_section_ptr;
> }
> }
>
These changes look suspicious to me, what is their intended effect from
BFD's point of view? -- "to fix failures in the GDB MIPS16 thunk tests"
sounds too vague to me, I'm afraid. The changes do not appear to affect
test results in any way and stubs are removed from output in your test
case regardless.
Did you mean to set these pointers to NULL by any chance? Either way can
I have a test case where the changes actually matter?
Maciej