summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaciej W. Rozycki <macro@mips.com>2018-01-26 23:05:06 +0000
committerMaciej W. Rozycki <macro@mips.com>2018-01-26 23:05:06 +0000
commit2ebd05b80b22ebf0e6c8b597f165c1e6bd6867f4 (patch)
treedca506c77fef8c654e765412adefefa963101ff4
parent1e3f554897a3f52e12fffc1fecbb250f272e71e1 (diff)
downloadbinutils-gdb-2ebd05b80b22ebf0e6c8b597f165c1e6bd6867f4.tar.gz
MIPS/LD: Correct `mips-*-windiss' target emulation configuration
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'.
-rw-r--r--ld/ChangeLog5
-rw-r--r--ld/emulparams/elf32mipswindiss.sh1
2 files changed, 6 insertions, 0 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index b64163866bf..3430a86d432 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -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):
diff --git a/ld/emulparams/elf32mipswindiss.sh b/ld/emulparams/elf32mipswindiss.sh
index 3b9678bba15..b8bb87edebe 100644
--- a/ld/emulparams/elf32mipswindiss.sh
+++ b/ld/emulparams/elf32mipswindiss.sh
@@ -1,4 +1,5 @@
TEMPLATE_NAME=elf32
+EXTRA_EM_FILE=mipself
SCRIPT_NAME=elf
OUTPUT_FORMAT="elf32-bigmips"
BIG_OUTPUT_FORMAT="elf32-bigmips"