[PATCH] D39634: [COFF] Handle ARM64 in getDefaultType

Martin Storsjö via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sun Nov 5 23:03:11 PST 2017


This revision was automatically updated to reflect the committed changes.
Closed by commit rL317455: [COFF] Handle ARM64 in getDefaultType (authored by mstorsjo).

Changed prior to commit:
  https://reviews.llvm.org/D39634?vs=121661&id=121684#toc

Repository:
  rL LLVM

https://reviews.llvm.org/D39634

Files:
  lld/trunk/COFF/Chunks.cpp
  lld/trunk/test/COFF/locally-imported-arm64.test


Index: lld/trunk/test/COFF/locally-imported-arm64.test
===================================================================
--- lld/trunk/test/COFF/locally-imported-arm64.test
+++ lld/trunk/test/COFF/locally-imported-arm64.test
@@ -0,0 +1,61 @@
+# RUN: yaml2obj < %s > %t.obj
+# RUN: lld-link /out:%t.exe /entry:main %t.obj
+# RUN: llvm-objdump -s %t.exe | FileCheck %s
+# RUN: llvm-readobj -coff-basereloc %t.exe | FileCheck -check-prefix=BASEREL %s
+
+# CHECK:      Contents of section .text:
+# CHECK-NEXT: 1000 00200000
+# CHECK:      Contents of section .rdata:
+# CHECK-NEXT: 2000 04100040 01000000
+
+# BASEREL:      BaseReloc [
+# BASEREL-NEXT:   Entry {
+# BASEREL-NEXT:     Type: DIR64
+# BASEREL-NEXT:     Address: 0x2000
+# BASEREL-NEXT:   }
+# BASEREL-NEXT:   Entry {
+# BASEREL-NEXT:     Type: ABSOLUTE
+# BASEREL-NEXT:     Address: 0x2000
+# BASEREL-NEXT:   }
+# BASEREL-NEXT: ]
+
+--- !COFF
+header:
+  Machine:         IMAGE_FILE_MACHINE_ARM64
+  Characteristics: []
+sections:
+  - Name:            .text
+    Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ]
+    Alignment:       4
+    SectionData:     00000000
+    Relocations:
+      - VirtualAddress:  0
+        SymbolName:      __imp_main
+        Type:            2
+symbols:
+  - Name:            .text
+    Value:           0
+    SectionNumber:   1
+    SimpleType:      IMAGE_SYM_TYPE_NULL
+    ComplexType:     IMAGE_SYM_DTYPE_NULL
+    StorageClass:    IMAGE_SYM_CLASS_STATIC
+    SectionDefinition:
+      Length:          4
+      NumberOfRelocations: 1
+      NumberOfLinenumbers: 0
+      CheckSum:        0
+      Number:          0
+      Selection:       IMAGE_COMDAT_SELECT_ANY
+  - Name:            main
+    Value:           4
+    SectionNumber:   1
+    SimpleType:      IMAGE_SYM_TYPE_NULL
+    ComplexType:     IMAGE_SYM_DTYPE_FUNCTION
+    StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
+  - Name:            __imp_main
+    Value:           0
+    SectionNumber:   0
+    SimpleType:      IMAGE_SYM_TYPE_NULL
+    ComplexType:     IMAGE_SYM_DTYPE_FUNCTION
+    StorageClass:    IMAGE_SYM_CLASS_EXTERNAL
+...
Index: lld/trunk/COFF/Chunks.cpp
===================================================================
--- lld/trunk/COFF/Chunks.cpp
+++ lld/trunk/COFF/Chunks.cpp
@@ -512,6 +512,7 @@
 uint8_t Baserel::getDefaultType() {
   switch (Config->Machine) {
   case AMD64:
+  case ARM64:
     return IMAGE_REL_BASED_DIR64;
   case I386:
   case ARMNT:


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D39634.121684.patch
Type: text/x-patch
Size: 2477 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20171106/c16dbe77/attachment.bin>


More information about the llvm-commits mailing list