[lld] e915b7d - [ELF,test] Add test for R_AARCH64_* implicit addends
via llvm-commits
llvm-commits at lists.llvm.org
Fri Apr 5 10:52:14 PDT 2024
Author: Fangrui Song
Date: 2024-04-05T10:52:10-07:00
New Revision: e915b7d8166a870834868bcf7de85cb5e96a08ec
URL: https://github.com/llvm/llvm-project/commit/e915b7d8166a870834868bcf7de85cb5e96a08ec
DIFF: https://github.com/llvm/llvm-project/commit/e915b7d8166a870834868bcf7de85cb5e96a08ec.diff
LOG: [ELF,test] Add test for R_AARCH64_* implicit addends
to support certain static relocations in the REL format. See #87328 for
the armasm need.
Note: `R_AARCH64_{ABS64,PREL32,PREL64}` have been implemented by https://reviews.llvm.org/D120535
Pull Request: https://github.com/llvm/llvm-project/pull/87733
Added:
lld/test/ELF/aarch64-reloc-implicit-addend.test
Modified:
Removed:
################################################################################
diff --git a/lld/test/ELF/aarch64-reloc-implicit-addend.test b/lld/test/ELF/aarch64-reloc-implicit-addend.test
new file mode 100644
index 00000000000000..15f42c4d87b577
--- /dev/null
+++ b/lld/test/ELF/aarch64-reloc-implicit-addend.test
@@ -0,0 +1,86 @@
+## Test certain REL relocation types generated by legacy armasm.
+# RUN: yaml2obj %s -o %t.o
+# RUN: not ld.lld %t.o -o /dev/null 2>&1 | FileCheck %s
+
+# CHECK-COUNT-17: internal linker error: cannot read addend
+
+---
+!ELF
+FileHeader:
+ Class: ELFCLASS64
+ Data: ELFDATA2LSB
+ Type: ET_REL
+ Machine: EM_AARCH64
+Sections:
+ - Name: .abs
+ Type: SHT_PROGBITS
+ Flags: [ SHF_ALLOC ]
+ Content: fffffefffffffdfffffffffffffffcffffffffffffff
+ - Name: .rel.abs
+ Type: SHT_REL
+ Link: .symtab
+ Info: .abs
+ Relocations:
+ - {Offset: 0, Symbol: abs, Type: R_AARCH64_ABS16}
+ - {Offset: 2, Symbol: abs, Type: R_AARCH64_ABS32}
+ - {Offset: 6, Symbol: abs, Type: R_AARCH64_ABS64}
+ - {Offset: 14, Symbol: abs, Type: R_AARCH64_ADD_ABS_LO12_NC}
+
+ - Name: .uabs
+ Type: SHT_PROGBITS
+ Flags: [ SHF_ALLOC ]
+ AddressAlign: 4
+ Content: 00ffffff00ffffff00ffffff00ffffff00ffffff00ffffff
+ - Name: .rel.uabs
+ Type: SHT_REL
+ Link: .symtab
+ Info: .uabs
+ Relocations:
+ - {Offset: 0, Symbol: abs, Type: R_AARCH64_MOVW_UABS_G0}
+ - {Offset: 4, Symbol: abs, Type: R_AARCH64_MOVW_UABS_G0_NC}
+ - {Offset: 8, Symbol: abs, Type: R_AARCH64_MOVW_UABS_G1}
+ - {Offset: 12, Symbol: abs, Type: R_AARCH64_MOVW_UABS_G1_NC}
+ - {Offset: 16, Symbol: abs, Type: R_AARCH64_MOVW_UABS_G2}
+ - {Offset: 20, Symbol: abs, Type: R_AARCH64_MOVW_UABS_G2_NC}
+
+ - Name: .prel
+ Type: SHT_PROGBITS
+ Flags: [ SHF_ALLOC ]
+ AddressAlign: 4
+ Content: 00ffffff00ffffff00ffffff00ffffff00ffffff00ffffff
+ - Name: .rel.prel
+ Type: SHT_REL
+ Link: .symtab
+ Info: .prel
+ Relocations:
+ - {Offset: 0, Symbol: .prel, Type: R_AARCH64_PREL64}
+ - {Offset: 4, Symbol: .prel, Type: R_AARCH64_PREL32}
+ - {Offset: 8, Symbol: .prel, Type: R_AARCH64_PREL16}
+ - {Offset: 12, Symbol: .prel, Type: R_AARCH64_LD_PREL_LO19}
+ - {Offset: 16, Symbol: .prel, Type: R_AARCH64_ADR_PREL_PG_HI21}
+ - {Offset: 20, Symbol: .prel, Type: R_AARCH64_ADR_PREL_PG_HI21_NC}
+
+ - Name: .branch
+ Type: SHT_PROGBITS
+ Flags: [ SHF_ALLOC ]
+ AddressAlign: 4
+ Content: f0fffffff0fffffff0fffffff0ffffff
+ - Name: .rel.branch
+ Type: SHT_REL
+ Link: .symtab
+ Info: .branch
+ Relocations:
+ - {Offset: 0, Symbol: .branch, Type: R_AARCH64_TSTBR14}
+ - {Offset: 4, Symbol: .branch, Type: R_AARCH64_CONDBR19}
+ - {Offset: 8, Symbol: .branch, Type: R_AARCH64_CALL26}
+ - {Offset: 12, Symbol: .branch, Type: R_AARCH64_JUMP26}
+
+Symbols:
+ - Name: .branch
+ Section: .branch
+ - Name: .prel
+ Section: .prel
+ - Name: abs
+ Index: SHN_ABS
+ Value: 42
+ Binding: STB_GLOBAL
More information about the llvm-commits
mailing list