[PATCH] D18739: Don't omit dynamic relocations for the GOT.
Ed Schouten via llvm-commits
llvm-commits at lists.llvm.org
Tue Apr 5 13:23:56 PDT 2016
This revision was automatically updated to reflect the committed changes.
Closed by commit rL265453: Don't omit dynamic relocations for the GOT. (authored by ed).
Changed prior to commit:
http://reviews.llvm.org/D18739?vs=52719&id=52733#toc
Repository:
rL LLVM
http://reviews.llvm.org/D18739
Files:
lld/trunk/ELF/Writer.cpp
lld/trunk/test/ELF/aarch64-got-relocations.s
Index: lld/trunk/test/ELF/aarch64-got-relocations.s
===================================================================
--- lld/trunk/test/ELF/aarch64-got-relocations.s
+++ lld/trunk/test/ELF/aarch64-got-relocations.s
@@ -0,0 +1,21 @@
+# REQUIRES: aarch64
+# RUN: llvm-mc -filetype=obj -triple=aarch64-unknown-cloudabi %s -o %t.o
+# RUN: ld.lld -pie %t.o -o %t
+# RUN: llvm-readobj -r %t | FileCheck %s
+
+# If we're addressing a global relatively through the GOT, we still need to
+# emit a relocation for the entry in the GOT itself.
+# CHECK: Relocations [
+# CHECK: Section (4) .rela.dyn {
+# CHECK: 0x{{[0-9A-F]+}} R_AARCH64_RELATIVE - 0x{{[0-9A-F]+}}
+# CHECK: }
+# CHECK: ]
+
+ .globl _start
+ .type _start, at function
+_start:
+ adrp x8, :got:i
+ ldr x8, [x8, :got_lo12:i]
+
+ .type i, at object
+ .comm i,4,4
Index: lld/trunk/ELF/Writer.cpp
===================================================================
--- lld/trunk/ELF/Writer.cpp
+++ lld/trunk/ELF/Writer.cpp
@@ -432,9 +432,7 @@
// ftp://www.linux-mips.org/pub/linux/mips/doc/ABI/mipsabi.pdf
continue;
- bool Dynrel = Config->Pic && !Target->isRelRelative(Type) &&
- !Target->isSizeRel(Type);
- if (Preemptible || Dynrel) {
+ if (Preemptible || Config->Pic) {
uint32_t DynType;
if (Body.isTls())
DynType = Target->TlsGotRel;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D18739.52733.patch
Type: text/x-patch
Size: 1378 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160405/bc49508f/attachment.bin>
More information about the llvm-commits
mailing list