[llvm] 258e04f - [JITLink][ELF][x86-64] Replace R_X86_64_32 yaml testcase with asm version.
Lang Hames via llvm-commits
llvm-commits at lists.llvm.org
Sat Apr 15 19:09:02 PDT 2023
Author: Lang Hames
Date: 2023-04-16T02:07:31Z
New Revision: 258e04fa881826478527ba49c9b24b089c376ed6
URL: https://github.com/llvm/llvm-project/commit/258e04fa881826478527ba49c9b24b089c376ed6
DIFF: https://github.com/llvm/llvm-project/commit/258e04fa881826478527ba49c9b24b089c376ed6.diff
LOG: [JITLink][ELF][x86-64] Replace R_X86_64_32 yaml testcase with asm version.
The assembly version of this testcase is shorter and easier to read.
Added:
llvm/test/ExecutionEngine/JITLink/x86-64/ELF_R_X86_64_32.s
Modified:
Removed:
llvm/test/ExecutionEngine/JITLink/x86-64/ELF_R_X86_64_32.yaml
################################################################################
diff --git a/llvm/test/ExecutionEngine/JITLink/x86-64/ELF_R_X86_64_32.s b/llvm/test/ExecutionEngine/JITLink/x86-64/ELF_R_X86_64_32.s
new file mode 100644
index 0000000000000..696d17a3d19b2
--- /dev/null
+++ b/llvm/test/ExecutionEngine/JITLink/x86-64/ELF_R_X86_64_32.s
@@ -0,0 +1,31 @@
+# RUN: llvm-mc -triple=x86_64-unknown-linux -position-independent \
+# RUN: -filetype=obj -o %t.o %s
+# RUN: llvm-jitlink -noexec -abs X=0x12345678 -check=%s %t.o
+# RUN: not llvm-jitlink -noexec -abs X=0x123456789 %t.o 2>&1 | \
+# RUN: FileCheck -check-prefix=CHECK-ERROR %s
+#
+# Check success and failure cases of R_X86_64_32 handling.
+
+# jitlink-check: *{8}P = X
+
+# CHECK-ERROR: relocation target "X" {{.*}} is out of range of Pointer32 fixup
+
+ .text
+ .section .text.main,"ax", at progbits
+ .globl main
+ .p2align 4, 0x90
+ .type main, at function
+main:
+ xorl %eax, %eax
+ retq
+.Lfunc_end0:
+ .size main, .Lfunc_end0-main
+
+ .type P, at object
+ .data
+ .globl P
+ .p2align 2, 0x0
+P:
+ .long X # Using long here generates R_X86_64_32.
+ .long 0
+ .size P, 8
diff --git a/llvm/test/ExecutionEngine/JITLink/x86-64/ELF_R_X86_64_32.yaml b/llvm/test/ExecutionEngine/JITLink/x86-64/ELF_R_X86_64_32.yaml
deleted file mode 100644
index a352855970597..0000000000000
--- a/llvm/test/ExecutionEngine/JITLink/x86-64/ELF_R_X86_64_32.yaml
+++ /dev/null
@@ -1,83 +0,0 @@
-# Check success and failure cases of R_X86_64_32 handling.
-# This file contains a single R_X86_64_32 relocation. We expect the relocation
-# to apply successfully when we assign x an address in the low 32-bits of the
-# address space, and fail if we assign x an address outside that range.
-
-# RUN: yaml2obj -o %t.o %s
-# RUN: llvm-jitlink -abs x=0x12345678 -noexec -check=%s %t.o
-# RUN: not llvm-jitlink -abs x=0x123456789 -noexec %t.o 2>&1 | \
-# RUN: FileCheck -check-prefix=CHECK-ERROR %s
-
-# jitlink-check: *{8}xptr = x
-
-# CHECK-ERROR: relocation target "x" {{.*}} is out of range of Pointer32 fixup
-
---- !ELF
-FileHeader:
- Class: ELFCLASS64
- Data: ELFDATA2LSB
- Type: ET_REL
- Machine: EM_X86_64
- SectionHeaderStringTable: .strtab
-Sections:
- - Name: .text
- Type: SHT_PROGBITS
- Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
- AddressAlign: 0x10
- Content: 31C0C3
- - Name: .data
- Type: SHT_PROGBITS
- Flags: [ SHF_WRITE, SHF_ALLOC ]
- AddressAlign: 0x8
- Content: '0000000000000000'
- - Name: .comment
- Type: SHT_PROGBITS
- Flags: [ SHF_MERGE, SHF_STRINGS ]
- AddressAlign: 0x1
- EntSize: 0x1
- Content: 00636C616E672076657273696F6E2031372E302E302028676974406769746875622E636F6D3A6C6C766D2F6C6C766D2D70726F6A6563742E67697420393361303461303539316331393538643533343466333534313135376662643862386666373337302900
- - Name: .note.GNU-stack
- Type: SHT_PROGBITS
- AddressAlign: 0x1
- - Name: .rela.data
- Type: SHT_RELA
- Flags: [ SHF_INFO_LINK ]
- Link: .symtab
- AddressAlign: 0x8
- Info: .data
- Relocations:
- - Symbol: x
- Type: R_X86_64_32
- - Name: .llvm_addrsig
- Type: SHT_LLVM_ADDRSIG
- Flags: [ SHF_EXCLUDE ]
- Link: .symtab
- AddressAlign: 0x1
- Symbols: [ x ]
- - Type: SectionHeaderTable
- Sections:
- - Name: .strtab
- - Name: .text
- - Name: .data
- - Name: .rela.data
- - Name: .comment
- - Name: .note.GNU-stack
- - Name: .llvm_addrsig
- - Name: .symtab
-Symbols:
- - Name: testcase.c
- Type: STT_FILE
- Index: SHN_ABS
- - Name: main
- Type: STT_FUNC
- Section: .text
- Binding: STB_GLOBAL
- Size: 0x3
- - Name: xptr
- Type: STT_OBJECT
- Section: .data
- Binding: STB_GLOBAL
- Size: 0x8
- - Name: x
- Binding: STB_GLOBAL
-...
More information about the llvm-commits
mailing list