MIPS/LD: Correct `mips-*-windiss' target emulation configuration
authorMaciej W. Rozycki <macro@mips.com>
Fri, 26 Jan 2018 23:05:06 +0000 (23:05 +0000)
committerMaciej W. Rozycki <macro@mips.com>
Fri, 26 Jan 2018 23:05:06 +0000 (23:05 +0000)
Fix an issue with commit 73934d319dae ("Disable .gnu.hash on MIPS
targets"), <https://sourceware.org/ml/binutils/2006-07/msg00341.html>,
which in turn caused a regression with commit 861fb55ab50a ("Defer
allocation of R_MIPS_REL32 GOT slots"),
<https://sourceware.org/ml/binutils/2008-08/msg00096.html>, and use
`mipself.em' as the extra emulation file for `mips-*-windiss' targets,
removing a segmentation fault triggered as `_bfd_mips_elf_final_link'
calls `htab_traverse' to process LA25 stubs with `htab->la25_stubs'
being NULL.  This is in turn due to `_bfd_mips_elf_init_stubs' not
having been called, which is only done by `mipself.em'.  No LA25 stubs
are supposed to be produced for `mips-*-windiss' targets, however the
internal data structures have to be initialized.

ld/
* emulparams/elf32mipswindiss.sh (EXTRA_EM_FILE): Set to
`mipself'.

ld/ChangeLog
ld/emulparams/elf32mipswindiss.sh

index b64163866bf06a635ffb8a439ac244887c0511bb..3430a86d432dc626746d14a33b3f19f406321ae8 100644 (file)
@@ -1,3 +1,8 @@
+2018-01-26  Maciej W. Rozycki  <macro@mips.com>
+
+       * emulparams/elf32mipswindiss.sh (EXTRA_EM_FILE): Set to
+       `mipself'.
+
 2018-01-25  Eric Botcazou  <ebotcazou@adacore.com>
 
        * testsuite/ld-sparc/sparc.exp (32-bit: Helper shared library):
index 3b9678bba15dd03a0658dd400eaa355fc220c41e..b8bb87edebead4033d34d05013600a71605f9a51 100644 (file)
@@ -1,4 +1,5 @@
 TEMPLATE_NAME=elf32
+EXTRA_EM_FILE=mipself
 SCRIPT_NAME=elf
 OUTPUT_FORMAT="elf32-bigmips"
 BIG_OUTPUT_FORMAT="elf32-bigmips"