[PATCH, MIPS] Support shared library debug with MIPS PIE

Richard Sandiford rdsandiford@googlemail.com
Thu Jul 23 21:27:00 GMT 2015


Joseph Myers <joseph@codesourcery.com> writes:
> On Fri, 26 Jun 2015, Matthew Fortune wrote:
>> +		dt_addr = (sdyn->output_section->vma + sdyn->output_offset
>> +			   + b - sdyn->contents);
>
> For the case of n64 target and 32-bit host, this results in
> sdyn->output_section->vma + sdyn->output_offset (64-bit) being added
> to b (32-bit host pointer), so losing the high part and resulting in
> an incorrect DT_MIPS_RLD_MAP_REL tag, and all dynamically linked glibc
> tests failing for n64.

Ouch.

> This patch fixes this (spot-tested with glibc
> tests; however, I don't have a self-contained testcase for this bug).
>
> 2015-07-23  Joseph Myers  <joseph@codesourcery.com>
>
> 	* elfxx-mips.c (_bfd_mips_elf_finish_dynamic_sections)
> 	<DT_MIPS_RLD_MAP_REL>: Add target address to host address
> 	difference, not to host pointer.

OK, thanks.

Richard



More information about the Binutils mailing list