+2016-03-07 Jiong Wang <jiong.wang@arm.com>
+
+ * elfnn-aarch64.c (elfNN_aarch64_check_relocs): Always create .got
+ section if the symbol "_GLOBAL_OFFSET_TABLE_" is referenced.
+
2016-03-04 H.J. Lu <hongjiu.lu@intel.com>
PR ld/19579
if (h != NULL)
{
+ /* If a relocation refers to _GLOBAL_OFFSET_TABLE_, create the .got.
+ This shows up in particular in an R_AARCH64_PREL64 in large model
+ when calculating the pc-relative address to .got section which is
+ used to initialize the gp register. */
+ if (h->root.root.string
+ && strcmp (h->root.root.string, "_GLOBAL_OFFSET_TABLE_") == 0)
+ {
+ if (htab->root.dynobj == NULL)
+ htab->root.dynobj = abfd;
+
+ if (! aarch64_elf_create_got_section (htab->root.dynobj, info))
+ return FALSE;
+
+ BFD_ASSERT (h == htab->root.hgot);
+ }
+
/* Create the ifunc sections for static executables. If we
never see an indirect function symbol nor we are building
a static executable, those sections will be empty and
+2016-03-07 Jiong Wang <jiong.wang@arm.com>
+
+ * testsuite/ld-aarch64/implicit_got_section_1.s: New test source file.
+ * testsuite/ld-aarch64/implicit_got_section_1.d: New test expected
+ result.
+ * testsuite/ld-aarch64/aarch64-elf.exp: Run new test.
+
2016-03-06 H.J. Lu <hongjiu.lu@intel.com>
* testsuite/ld-i386/i386.exp: Link tmpdir/copyreloc-main.o
run_dump_test "gc-plt-relocs"
run_dump_test "gc-relocs-257-dyn"
run_dump_test "gc-relocs-257"
+run_dump_test "implicit_got_section_1"
run_dump_test "pr17415"
run_dump_test "tprel_g2_overflow"
run_dump_test "tprel_add_lo12_overflow"
--- /dev/null
+#source: implicit_got_section_1.s
+#ld: -e0
+#readelf: -r
+
+There are no relocations in this file.
--- /dev/null
+ .text
+test:
+ .word _GLOBAL_OFFSET_TABLE_ - .