[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