linux-mips
[Top] [All Lists]

Re: [Patch v2]: Fix ld pr11138 FAILures on mips*.

To: binutils <binutils@sourceware.org>, Richard Sandiford <rdsandiford@googlemail.com>, Alan Modra <amodra@gmail.com>
Subject: Re: [Patch v2]: Fix ld pr11138 FAILures on mips*.
From: David Daney <david.daney@cavium.com>
Date: Fri, 09 Dec 2011 16:50:01 -0800
Cc: Manuel Lauss <manuel.lauss@googlemail.com>, Debian MIPS <debian-mips@lists.debian.org>, linux-mips <linux-mips@linux-mips.org>
In-reply-to: <20111210003928.GC2461@bubble.grove.modra.org>
References: <4EE27012.5030508@cavium.com> <20111210003928.GC2461@bubble.grove.modra.org>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.15) Gecko/20101027 Fedora/3.0.10-1.fc12 Thunderbird/3.0.10
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.




<Prev in Thread] Current Thread [Next in Thread>