[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