This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [Patch]: Fix ld pr11138 FAILures on mips*.
- From: Alan Modra <amodra at gmail dot com>
- To: David Daney <david dot daney at cavium dot com>
- Cc: binutils <binutils at sourceware dot org>, linux-mips <linux-mips at linux-mips dot org>, Manuel Lauss <manuel dot lauss at googlemail dot com>, Debian MIPS <debian-mips at lists dot debian dot org>
- Date: Tue, 6 Dec 2011 16:10:19 +1030
- Subject: Re: [Patch]: Fix ld pr11138 FAILures on mips*.
- References: <4EDD669F.30207@cavium.com>
On Mon, Dec 05, 2011 at 04:49:35PM -0800, David Daney wrote:
> The root cause of this is that the mips linker synthesizes a special
> symbol "__RLD_MAP", and then sets MIPS_RLD_MAP to point to it. When
> a version script is present, this symbol gets versioned along with
> all the rest, and when it is time to take its address, the symbol
> can no longer be found as it has had version information appended to
> its name.
Why not just change
&& (strcmp (name, "__rld_map") == 0
|| strcmp (name, "__RLD_MAP") == 0))
to
&& (strncmp (name, "__rld_map", 9) == 0
|| strncmp (name, "__RLD_MAP", 9) == 0))
in _bfd_mips_elf_finish_dynamic_symbol? Perhaps the same for other
syms there too?
--
Alan Modra
Australia Development Lab, IBM