mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-17 04:26:37 +00:00
76 lines
2.7 KiB
Plaintext
76 lines
2.7 KiB
Plaintext
# REQUIRES: aarch64
|
|
RUN: split-file %s %t.dir && cd %t.dir
|
|
|
|
RUN: llvm-lib -machine:arm64x -out:libtest.a -defArm64Native:test.def -def:test.def
|
|
RUN: llvm-mc -triple=arm64ec-windows-gnu arm64ec.s -filetype=obj -o arm64ec.obj
|
|
RUN: llvm-mc -triple=aarch64-windows-gnu aarch64.s -filetype=obj -o aarch64.obj
|
|
RUN: llvm-mc -filetype=obj -triple=arm64ec-windows %S/Inputs/loadconfig-arm64ec.s -o loadconfig-arm64ec.obj
|
|
RUN: llvm-mc -filetype=obj -triple=aarch64-windows %S/Inputs/loadconfig-arm64.s -o loadconfig-arm64.obj
|
|
|
|
RUN: lld-link -machine:arm64x -out:out.dll -dll -noentry arm64ec.obj aarch64.obj libtest.a loadconfig-arm64.obj loadconfig-arm64ec.obj -lldmingw
|
|
|
|
RUN: llvm-readobj --coff-imports out.dll | FileCheck -check-prefix=IMPORTS %s
|
|
RUN: llvm-objdump -s out.dll | FileCheck --check-prefix=CONTENTS %s
|
|
|
|
IMPORTS: Import {
|
|
IMPORTS-NEXT: Name: test.dll
|
|
IMPORTS-NEXT: ImportLookupTableRVA: 0x5{{.*}}
|
|
IMPORTS-NEXT: ImportAddressTableRVA: 0x4000
|
|
IMPORTS-NEXT: Symbol: variable (0)
|
|
IMPORTS-NEXT: }
|
|
IMPORTS-NEXT: HybridObject {
|
|
IMPORTS: Import {
|
|
IMPORTS-NEXT: Name: test.dll
|
|
IMPORTS-NEXT: ImportLookupTableRVA: 0x5{{.*}}
|
|
IMPORTS-NEXT: ImportAddressTableRVA: 0x4000
|
|
IMPORTS-NEXT: Symbol: variable (0)
|
|
IMPORTS-NEXT: }
|
|
IMPORTS-NEXT: }
|
|
|
|
Native ARM64 runtime pseudo relocation list header at 0x5164, consisting of 0x0, 0x0, 0x1.
|
|
The runtime pseudo relocation is from an aarch64.obj object file, with import from 0x4000,
|
|
applied at 0x9018 with a size of 64 bits. ARM64EC runtime pseudo relocation list header at
|
|
0x517c, consisting of 0x0, 0x0, 0x1. The runtime pseudo relocation is from arm64ec.obj
|
|
object file, with import from 0x4000, applied at 0x9000 with a size of 64 bits.
|
|
|
|
CONTENTS: Contents of section .rdata:
|
|
CONTENTS: 180005160 00300000 00000000 00000000 01000000
|
|
CONTENTS: 180005170 00400000 18900000 40000000 00000000
|
|
CONTENTS: 180005180 00000000 01000000 00400000 00900000
|
|
CONTENTS: 180005190 40000000
|
|
|
|
CONTENTS: Contents of section .test:
|
|
CONTENTS-NEXT: 180009000 00400080 01000000 7c510080 01000000
|
|
CONTENTS-NEXT: 180009010 94510080 01000000 00400080 01000000
|
|
CONTENTS-NEXT: 180009020 64510080 01000000 7c510080 01000000
|
|
|
|
#--- arm64ec.s
|
|
.text
|
|
.global "#_pei386_runtime_relocator"
|
|
"#_pei386_runtime_relocator":
|
|
ret
|
|
|
|
.weak_anti_dep _pei386_runtime_relocator
|
|
.set _pei386_runtime_relocator,"#_pei386_runtime_relocator"
|
|
|
|
.section .test,"dr"
|
|
.quad variable
|
|
.quad __RUNTIME_PSEUDO_RELOC_LIST__
|
|
.quad __RUNTIME_PSEUDO_RELOC_LIST_END__
|
|
|
|
#--- aarch64.s
|
|
.text
|
|
.global _pei386_runtime_relocator
|
|
_pei386_runtime_relocator:
|
|
ret
|
|
|
|
.section .test,"dr"
|
|
.quad variable
|
|
.quad __RUNTIME_PSEUDO_RELOC_LIST__
|
|
.quad __RUNTIME_PSEUDO_RELOC_LIST_END__
|
|
|
|
#--- test.def
|
|
LIBRARY test.dll
|
|
EXPORTS
|
|
variable DATA
|