mirror of
https://github.com/pmmp/musl-cross-make.git
synced 2025-02-11 21:20:48 +00:00
the linker was wrongly leaving dynamic relocations for GD-model TLS defined in the main program when linking the main program as PIE. this was only suboptimal for dynamic pie, but for static pie it resulted in runtime failure since there is no dynamic linker to resolve the DTPMOD reference. this has been reported as binutils bug #22570.
22 lines
809 B
Diff
22 lines
809 B
Diff
diff -ur binutils-2.25.1.orig/bfd/elfxx-mips.c binutils-2.25.1/bfd/elfxx-mips.c
|
|
--- binutils-2.25.1.orig/bfd/elfxx-mips.c 2018-01-31 11:26:12.000000000 -0500
|
|
+++ binutils-2.25.1/bfd/elfxx-mips.c 2018-01-31 12:16:00.179841734 -0500
|
|
@@ -3228,7 +3228,7 @@
|
|
&& (!info->shared || !SYMBOL_REFERENCES_LOCAL (info, h)))
|
|
indx = h->dynindx;
|
|
|
|
- if ((info->shared || indx != 0)
|
|
+ if ((!info->executable || indx != 0)
|
|
&& (h == NULL
|
|
|| ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
|
|
|| h->root.type != bfd_link_hash_undefweak))
|
|
@@ -3338,7 +3338,7 @@
|
|
if (entry->tls_initialized)
|
|
return;
|
|
|
|
- if ((info->shared || indx != 0)
|
|
+ if ((!info->executable || indx != 0)
|
|
&& (h == NULL
|
|
|| ELF_ST_VISIBILITY (h->root.other) == STV_DEFAULT
|
|
|| h->root.type != bfd_link_hash_undefweak))
|