CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
139 lines
7.0 KiB
Plaintext
139 lines
7.0 KiB
Plaintext
REQUIRES: aarch64, x86
|
|
RUN: split-file %s %t.dir && cd %t.dir
|
|
|
|
RUN: llvm-mc -filetype=obj -triple=arm64ec-windows demangled-dll-main.s -o demangled-dll-main.obj
|
|
RUN: llvm-mc -filetype=obj -triple=arm64ec-windows mangled-dll-main.s -o mangled-dll-main.obj
|
|
RUN: llvm-mc -filetype=obj -triple=arm64ec-windows demangled-func.s -o demangled-func.obj
|
|
RUN: llvm-mc -filetype=obj -triple=arm64ec-windows mangled-func.s -o mangled-func.obj
|
|
RUN: llvm-mc -filetype=obj -triple=arm64ec-windows ref-demangled.s -o ref-demangled.obj
|
|
RUN: llvm-mc -filetype=obj -triple=arm64ec-windows demangled-entry-drectve.s -o demangled-entry-drectve.obj
|
|
RUN: llvm-mc -filetype=obj -triple=x86_64-windows demangled-dll-main.s -o x64-dll-main.obj
|
|
RUN: llvm-mc -filetype=obj -triple=x86_64-windows ref-demangled.s -o ref-x64.obj
|
|
RUN: llvm-mc -filetype=obj -triple=arm64ec-windows %S/Inputs/loadconfig-arm64ec.s -o loadconfig-arm64ec.obj
|
|
|
|
RUN: llvm-lib -machine:arm64ec -out:func.lib mangled-func.obj
|
|
RUN: llvm-lib -machine:arm64ec -out:dllmain.lib mangled-dll-main.obj
|
|
|
|
Ensure that the linker recognizes the demangled version of _DllMainCRTStartup.
|
|
RUN: lld-link -machine:arm64ec -dll -out:demangled-main.dll demangled-dll-main.obj loadconfig-arm64ec.obj
|
|
RUN: llvm-objdump -d demangled-main.dll | FileCheck -check-prefix=DISASM %s
|
|
|
|
DISASM: 0000000180001000 <.text>:
|
|
DISASM-NEXT: 180001000: d65f03c0 ret
|
|
DISASM-EMPTY:
|
|
DISASM-NEXT: Disassembly of section .hexpthk:
|
|
DISASM-EMPTY:
|
|
DISASM: 180002000: 48 8b c4 movq %rsp, %rax
|
|
DISASM-NEXT: 180002003: 48 89 58 20 movq %rbx, 0x20(%rax)
|
|
DISASM-NEXT: 180002007: 55 pushq %rbp
|
|
DISASM-NEXT: 180002008: 5d popq %rbp
|
|
DISASM-NEXT: 180002009: e9 f2 ef ff ff jmp 0x180001000 <.text>
|
|
DISASM-NEXT: 18000200e: cc int3
|
|
DISASM-NEXT: 18000200f: cc int3
|
|
|
|
Ensure that the linker recognizes the mangled version of #_DllMainCRTStartup.
|
|
RUN: lld-link -machine:arm64ec -dll -out:mangled-dllmain.dll mangled-dll-main.obj loadconfig-arm64ec.obj
|
|
RUN: llvm-objdump -d mangled-dllmain.dll | FileCheck -check-prefix=DISASM %s
|
|
|
|
Verify that the linker recognizes the mangled version of _DllMainCRTStartup from an archive.
|
|
RUN: lld-link -machine:arm64ec -dll -out:mangled-lib-dllmain.dll dllmain.lib loadconfig-arm64ec.obj
|
|
RUN: llvm-objdump -d mangled-lib-dllmain.dll | FileCheck -check-prefix=DISASM %s
|
|
|
|
Verify that the linker recognizes the demangled entry function.
|
|
RUN: lld-link -machine:arm64ec -dll -out:demangled-entry.dll demangled-func.obj loadconfig-arm64ec.obj -entry:func
|
|
RUN: llvm-objdump -d demangled-entry.dll | FileCheck -check-prefix=DISASM %s
|
|
|
|
Verify that the linker recognizes the mangled entry function when it is referenced by its demangled name.
|
|
RUN: lld-link -machine:arm64ec -dll -out:mangled-entry.dll mangled-func.obj loadconfig-arm64ec.obj -entry:func
|
|
RUN: llvm-objdump -d mangled-entry.dll | FileCheck -check-prefix=DISASM %s
|
|
|
|
Verify that the linker recognizes the mangled entry function when it is referenced by its demangled
|
|
name in drectve section.
|
|
RUN: lld-link -machine:arm64ec -dll -out:mangled-entry.dll mangled-func.obj loadconfig-arm64ec.obj demangled-entry-drectve.obj
|
|
RUN: llvm-objdump -d mangled-entry.dll | FileCheck -check-prefix=DISASM %s
|
|
|
|
Verify that the linker recognizes the mangled entry function from an archive.
|
|
RUN: lld-link -machine:arm64ec -dll -out:mangled-lib-entry.dll func.lib loadconfig-arm64ec.obj -entry:func
|
|
RUN: llvm-objdump -d mangled-lib-entry.dll | FileCheck -check-prefix=DISASM %s
|
|
|
|
Verify that the linker recognizes the entry function when referenced by its mangled name.
|
|
RUN: lld-link -machine:arm64ec -dll -out:mangled-entry2.dll mangled-func.obj loadconfig-arm64ec.obj "-entry:#func"
|
|
RUN: llvm-objdump -d mangled-entry2.dll | FileCheck -check-prefix=DISASM %s
|
|
|
|
Verify that the linker recognizes the demangled exported function.
|
|
RUN: lld-link -machine:arm64ec -dll -out:demangled-export.dll demangled-func.obj \
|
|
RUN: loadconfig-arm64ec.obj -noentry -export:func
|
|
RUN: llvm-objdump -d demangled-export.dll | FileCheck -check-prefix=DISASM %s
|
|
|
|
Verify that the linker recognizes the mangled exported function when referenced by its demangled name.
|
|
RUN: lld-link -machine:arm64ec -dll -out:mangled-export.dll mangled-func.obj \
|
|
RUN: loadconfig-arm64ec.obj -noentry -export:func
|
|
RUN: llvm-objdump -d mangled-export.dll | FileCheck -check-prefix=DISASM %s
|
|
|
|
Verify that the linker recognizes the mangled exported function when referenced by its mangled name.
|
|
RUN: lld-link -machine:arm64ec -dll -out:mangled-export2.dll mangled-func.obj \
|
|
RUN: loadconfig-arm64ec.obj -noentry "-export:#func"
|
|
RUN: llvm-objdump -d mangled-export2.dll | FileCheck -check-prefix=DISASM %s
|
|
|
|
Verify that the linker recognizes the mangled exported function when referenced
|
|
by its mangled name and creates a demangled alias for it.
|
|
RUN: lld-link -machine:arm64ec -dll -noentry -out:demangled-export-ref.dll mangled-func.obj \
|
|
RUN: ref-demangled.obj loadconfig-arm64ec.obj "-export:#func"
|
|
RUN: llvm-objdump -d demangled-export-ref.dll | FileCheck -check-prefix=DISASM %s
|
|
|
|
Verify that an x86_64 object file can reference ARM64EC mangled functions without requiring an explicit alias.
|
|
RUN: lld-link -machine:arm64ec -dll -noentry -out:x64-ref.dll mangled-func.obj ref-x64.obj loadconfig-arm64ec.obj
|
|
RUN: llvm-objdump -d x64-ref.dll | FileCheck -check-prefix=DISASM2 %s
|
|
|
|
Verify that an x86_64 object file can reference ARM64EC mangled functions provided by a library.
|
|
RUN: lld-link -machine:arm64ec -dll -noentry -out:x64-lib-ref.dll func.lib ref-x64.obj loadconfig-arm64ec.obj
|
|
RUN: llvm-objdump -d x64-lib-ref.dll | FileCheck -check-prefix=DISASM2 %s
|
|
|
|
DISASM2: 0000000180001000 <.text>:
|
|
DISASM2-NEXT: 180001000: d65f03c0 ret
|
|
|
|
Verify that the linker emits appropriate errors for mismatched mangling.
|
|
RUN: not lld-link -machine:arm64ec -dll -out:test.dll demangled-func.obj loadconfig-arm64ec.obj \
|
|
RUN: "-entry:#func" 2>&1 | FileCheck -check-prefix=FUNC-NOT-FOUND %s
|
|
RUN: not lld-link -machine:arm64ec -dll -out:test.dll demangled-func.obj loadconfig-arm64ec.obj \
|
|
RUN: -noentry "-export:#func" 2>&1 | FileCheck -check-prefix=FUNC-NOT-FOUND %s
|
|
FUNC-NOT-FOUND: undefined symbol: #func (EC symbol)
|
|
|
|
Verify that the linker recognizes the demangled x86_64 _DllMainCRTStartup.
|
|
RUN: lld-link -machine:arm64ec -dll -out:test.dll x64-dll-main.obj loadconfig-arm64ec.obj
|
|
RUN: llvm-objdump -d test.dll | FileCheck -check-prefix=DISASM-X64 %s
|
|
DISASM-X64: 0000000180001000 <.text>:
|
|
DISASM-X64-NEXT: 180001000: c3 retq
|
|
|
|
#--- demangled-dll-main.s
|
|
.text
|
|
.globl _DllMainCRTStartup
|
|
_DllMainCRTStartup:
|
|
ret
|
|
|
|
#--- mangled-dll-main.s
|
|
.text
|
|
.globl "#_DllMainCRTStartup"
|
|
"#_DllMainCRTStartup":
|
|
ret
|
|
|
|
#--- demangled-func.s
|
|
.text
|
|
.globl func
|
|
func:
|
|
ret
|
|
|
|
#--- mangled-func.s
|
|
.text
|
|
.globl "#func"
|
|
"#func":
|
|
ret
|
|
|
|
#--- ref-demangled.s
|
|
.data
|
|
.rva func
|
|
|
|
#--- demangled-entry-drectve.s
|
|
.section .drectve,"rd"
|
|
.ascii " -entry:func"
|