This is the mail archive of the binutils@sourceware.org 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]
Other format: [Raw text]

RE: [Patch] MIPS FDE deletion


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


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