[Patch v2]: Fix ld pr11138 FAILures on mips*.
David Daney
david.daney@cavium.com
Sat Dec 10 00:50:00 GMT 2011
Thanks Alan,
I will wait a couple of days to give Richard a chance to object. I
think I got the address calculation correct, but having another pair of
eyes look at it would be nice. I am especially concerned about what
happens on IRIX where the symbol comes in from an external object rather
than being generated by the linker itself. I had no way to test that.
David Daney
On 12/09/2011 04:39 PM, Alan Modra wrote:
> On Fri, Dec 09, 2011 at 12:31:14PM -0800, David Daney wrote:
>> * /elfxx-mips.c (mips_elf_link_hash_table.rld_value): Remove.
>> (mips_elf_link_hash_table.rld_symbol): New field;
>> (MIPS_ELF_RLD_MAP_SIZE): New macro.
>> (_bfd_mips_elf_add_symbol_hook): Remember __rld_obj_head symbol
>> in rld_symbol.
>> (_bfd_mips_elf_create_dynamic_sections): Remember __rld_map symbol
>> in rld_symbol.
>> (_bfd_mips_elf_size_dynamic_sections): Set correct size for .rld_map.
>> (_bfd_mips_elf_finish_dynamic_symbol): Remove .rld_map handling.
>> (_bfd_mips_elf_finish_dynamic_sections): Use rld_symbol to
>> calculate DT_MIPS_RLD_MAP value.
>> (_bfd_mips_elf_link_hash_table_create): Initialize rld_symbol,
>> quit initializing rld_value.
>
> OK. Remove stray / in ChangeLog entry
Yes, I noticed that only after hitting Send.
>
>> + s->size += MIPS_ELF_RLD_MAP_SIZE(output_bfd);
>
> Fix formatting here.
>
>> + dyn.d_un.d_ptr = s->output_section->vma + s->output_offset
>> + + h->root.u.def.value;
>
> And it's nice to write code that emacs auto-indent won't change, so
> add parentheses
>
> dyn.d_un.d_ptr = (s->output_section->vma + s->output_offset
> + h->root.u.def.value);
>
I will fix those too.
More information about the Binutils
mailing list