[PATCH] D50234: [LLD][ELF][ARM] Test undefined weak symbol for Thumb narrow branch

Peter Smith via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Aug 6 03:06:58 PDT 2018


This revision was automatically updated to reflect the committed changes.
Closed by commit rL338999: [ELF] Test undefined weak symbol for Thumb narrow branch (authored by psmith, committed by ).

Changed prior to commit:
  https://reviews.llvm.org/D50234?vs=159006&id=159266#toc

Repository:
  rL LLVM

https://reviews.llvm.org/D50234

Files:
  lld/trunk/test/ELF/arm-thumb-undefined-weak-narrow.test


Index: lld/trunk/test/ELF/arm-thumb-undefined-weak-narrow.test
===================================================================
--- lld/trunk/test/ELF/arm-thumb-undefined-weak-narrow.test
+++ lld/trunk/test/ELF/arm-thumb-undefined-weak-narrow.test
@@ -0,0 +1,50 @@
+# REQUIRES: arm
+# RUN: yaml2obj %s -o %t.o
+# RUN: ld.lld %t.o -o %t
+# RUN: llvm-objdump -triple=thumbv7a-linux-gnueabi -d %t | FileCheck %s
+
+# CHECK: Disassembly of section .text:
+# CHECK-NEXT:_start:
+# CHECK-NEXT:    11000:       ff e7   b       #-2
+
+# Test the R_ARM_THM_JUMP11 relocation (102) to an undefined weak reference
+# It should resolve to the next instruction, which is an offset of -2 which
+# when added to the Thumb PC-bias of 4 is +2. We can't use llvm-mc to construct
+# the object as it relaxes b.n to b.w (R_ARM_JUMP24).
+
+!ELF
+FileHeader:
+  Class:           ELFCLASS32
+  Data:            ELFDATA2LSB
+  Type:            ET_REL
+  Machine:         EM_ARM
+Sections:
+  - Type:            SHT_PROGBITS
+    Name:            .text
+    Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
+    Content:         "fee7"
+  - Type:            SHT_REL
+    Name:            .rel.text
+    Link:            .symtab
+    Info:            .text
+    Relocations:
+      - Offset:          0
+        Symbol:          undefined_weak
+        Type:            R_ARM_THM_JUMP11
+
+Symbols:
+ Global:
+   - Type:             STT_FUNC
+     Name:             _start
+     Value:            1
+     Section:          .text
+ Local:
+   - Type:             STT_NOTYPE
+     Name:             "$t"
+     Section:          .text
+     Value:            0
+ Weak:
+   - Type:             STT_NOTYPE
+     Name:             undefined_weak
+     Value:            0
+


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D50234.159266.patch
Type: text/x-patch
Size: 1742 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180806/f9980222/attachment.bin>


More information about the llvm-commits mailing list