forked from Lainports/opnsense-ports
28 lines
1,011 B
C
28 lines
1,011 B
C
--- bfd/elfnn-aarch64.c.orig 2016-11-20 12:04:44.613621000 +0000
|
|
+++ bfd/elfnn-aarch64.c 2016-11-20 12:05:01.143334000 +0000
|
|
@@ -4369,7 +4369,9 @@
|
|
off = h->got.offset;
|
|
BFD_ASSERT (off != (bfd_vma) - 1);
|
|
if (!WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, bfd_link_pic (info), h)
|
|
- || (bfd_link_pic (info)
|
|
+ || ((bfd_link_pic (info)
|
|
+ || (!bfd_link_relocatable (info)
|
|
+ && (info->export_dynamic || info->dynamic)))
|
|
&& SYMBOL_REFERENCES_LOCAL (info, h))
|
|
|| (ELF_ST_VISIBILITY (h->other)
|
|
&& h->root.type == bfd_link_hash_undefweak))
|
|
@@ -8891,6 +8893,14 @@
|
|
+ h->root.u.def.section->output_section->vma
|
|
+ h->root.u.def.section->output_offset);
|
|
}
|
|
+ else if (!bfd_link_relocatable (info)
|
|
+ && (info->export_dynamic || info->dynamic)
|
|
+ && SYMBOL_REFERENCES_LOCAL (info, h))
|
|
+ {
|
|
+ BFD_ASSERT ((h->got.offset & 1) != 0);
|
|
+ rela.r_info = ELFNN_R_INFO (h->dynindx, AARCH64_R (GLOB_DAT));
|
|
+ rela.r_addend = 0;
|
|
+ }
|
|
else
|
|
{
|
|
do_glob_dat:
|