mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-25 03:06:04 +00:00

Since EC targets may combine various object types, we need to pick relocation format based on chunk type instead of global config.
38 lines
1.2 KiB
Plaintext
38 lines
1.2 KiB
Plaintext
REQUIRES: aarch64, x86
|
|
RUN: split-file %s %t.dir && cd %t.dir
|
|
|
|
Link a mix of ARM64EC and x86_64 data and check that relocations work.
|
|
|
|
RUN: llvm-mc -filetype=obj -triple=arm64ec-windows arm64ec-data-sym.s -o arm64ec-data-sym.obj
|
|
RUN: llvm-mc -filetype=obj -triple=x86_64-windows x86_64-data-sym.s -o x86_64-data-sym.obj
|
|
RUN: lld-link -out:test.dll -machine:arm64ec arm64ec-data-sym.obj x86_64-data-sym.obj -dll -noentry
|
|
|
|
RUN: llvm-readobj --hex-dump=.data test.dll | FileCheck -check-prefix=ARM64EC-DATA %s
|
|
ARM64EC-DATA: 0x180001000 00100080 01000000 08100080 01000000
|
|
|
|
RUN: llvm-readobj --coff-basereloc test.dll | FileCheck -check-prefix=RELOCS %s
|
|
RELOCS: BaseReloc [
|
|
RELOCS-NEXT: Entry {
|
|
RELOCS-NEXT: Type: DIR64
|
|
RELOCS-NEXT: Address: 0x1000
|
|
RELOCS-NEXT: }
|
|
RELOCS-NEXT: Entry {
|
|
RELOCS-NEXT: Type: DIR64
|
|
RELOCS-NEXT: Address: 0x1008
|
|
RELOCS-NEXT: }
|
|
RELOCS-NEXT: ]
|
|
|
|
#--- arm64ec-data-sym.s
|
|
.data
|
|
.globl arm64ec_data_sym
|
|
.p2align 2, 0x0
|
|
arm64ec_data_sym:
|
|
.xword arm64ec_data_sym
|
|
|
|
#--- x86_64-data-sym.s
|
|
.data
|
|
.globl x86_64_data_sym
|
|
.p2align 2, 0x0
|
|
x86_64_data_sym:
|
|
.quad x86_64_data_sym
|