[PATCH] D83138: [ELF][ARM] Represent R_ARM_LDO32 as R_DTPREL instead of R_ABS

Fangrui Song via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Jul 6 12:54:23 PDT 2020


This revision was automatically updated to reflect the committed changes.
Closed by commit rGc1a5f73a4ae7: [ELF][ARM] Represent R_ARM_LDO32 as R_DTPREL instead of R_ABS (authored by MaskRay).

Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D83138/new/

https://reviews.llvm.org/D83138

Files:
  lld/ELF/Arch/ARM.cpp
  lld/ELF/Relocations.cpp
  lld/test/ELF/debug-dead-reloc-tls-arm.s


Index: lld/test/ELF/debug-dead-reloc-tls-arm.s
===================================================================
--- lld/test/ELF/debug-dead-reloc-tls-arm.s
+++ lld/test/ELF/debug-dead-reloc-tls-arm.s
@@ -7,8 +7,7 @@
 # RUN: llvm-objdump -s %t | FileCheck %s
 
 # CHECK:      Contents of section .debug_info:
-## FIXME: Use ffffffff
-# CHECK-NEXT:  0000 00000000
+# CHECK-NEXT:  0000 ffffffff
 
 .globl _start
 _start:
Index: lld/ELF/Relocations.cpp
===================================================================
--- lld/ELF/Relocations.cpp
+++ lld/ELF/Relocations.cpp
@@ -238,7 +238,7 @@
   }
 
   // Local-Dynamic relocs can be relaxed to Local-Exec.
-  if (expr == R_DTPREL && !config->shared) {
+  if (expr == R_DTPREL && canRelax && !config->shared) {
     c.relocations.push_back(
         {target->adjustRelaxExpr(type, nullptr, R_RELAX_TLS_LD_TO_LE), type,
          offset, addend, &sym});
Index: lld/ELF/Arch/ARM.cpp
===================================================================
--- lld/ELF/Arch/ARM.cpp
+++ lld/ELF/Arch/ARM.cpp
@@ -121,6 +121,8 @@
     return R_TLSGD_PC;
   case R_ARM_TLS_LDM32:
     return R_TLSLD_PC;
+  case R_ARM_TLS_LDO32:
+    return R_DTPREL;
   case R_ARM_BASE_PREL:
     // B(S) + A - P
     // FIXME: currently B(S) assumed to be .got, this may not hold for all


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D83138.275745.patch
Type: text/x-patch
Size: 1314 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200706/1a26b668/attachment-0001.bin>


More information about the llvm-commits mailing list