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