| // REQUIRES: aarch64 |
| |
| // RUN: llvm-mc -filetype=obj -triple=aarch64-windows %s -o %t.arm64.obj |
| // RUN: llvm-mc -filetype=obj -triple=arm64ec-windows %s -o %t.arm64ec.obj |
| // RUN: llvm-mc -filetype=obj -triple=arm64ec-windows %S/Inputs/loadconfig-arm64ec.s -o %t-loadconfig-arm64ec.obj |
| // RUN: llvm-mc -filetype=obj -triple=aarch64-windows %S/Inputs/loadconfig-arm64.s -o %t-loadconfig-arm64.obj |
| |
| // Check that all symbols are exported in both EC and native views. |
| |
| // RUN: lld-link -machine:arm64x -lldmingw -dll -noentry -out:%t.dll %t.arm64.obj %t.arm64ec.obj %t-loadconfig-arm64.obj %t-loadconfig-arm64ec.obj |
| |
| // RUN: llvm-readobj --coff-exports %t.dll | FileCheck --check-prefix=EXP %s |
| // EXP: Format: COFF-ARM64X |
| // EXP-NEXT: Arch: aarch64 |
| // EXP-NEXT: AddressSize: 64bit |
| // EXP-NEXT: Export { |
| // EXP-NEXT: Ordinal: 1 |
| // EXP-NEXT: Name: sym |
| // EXP-NEXT: RVA: 0x2000 |
| // EXP-NEXT: } |
| // EXP-NEXT: Export { |
| // EXP-NEXT: Ordinal: 2 |
| // EXP-NEXT: Name: sym2 |
| // EXP-NEXT: RVA: 0x2004 |
| // EXP-NEXT: } |
| // EXP-NEXT: HybridObject { |
| // EXP-NEXT: Format: COFF-ARM64EC |
| // EXP-NEXT: Arch: aarch64 |
| // EXP-NEXT: AddressSize: 64bit |
| // EXP-NEXT: Export { |
| // EXP-NEXT: Ordinal: 1 |
| // EXP-NEXT: Name: sym |
| // EXP-NEXT: RVA: 0x2008 |
| // EXP-NEXT: } |
| // EXP-NEXT: Export { |
| // EXP-NEXT: Ordinal: 2 |
| // EXP-NEXT: Name: sym2 |
| // EXP-NEXT: RVA: 0x200C |
| // EXP-NEXT: } |
| // EXP-NEXT: } |
| |
| // Check that an explicit export in the EC view is respected, preventing symbols from being auto-exported in both EC and native views. |
| |
| // RUN: lld-link -machine:arm64x -lldmingw -dll -noentry -out:%t2.dll %t.arm64.obj %t.arm64ec.obj -export:sym \ |
| // RUN: %t-loadconfig-arm64.obj %t-loadconfig-arm64ec.obj |
| |
| // RUN: llvm-readobj --coff-exports %t2.dll | FileCheck --check-prefix=EXP2 %s |
| // EXP2: Format: COFF-ARM64X |
| // EXP2-NEXT: Arch: aarch64 |
| // EXP2-NEXT: AddressSize: 64bit |
| // EXP2-NEXT: HybridObject { |
| // EXP2-NEXT: Format: COFF-ARM64EC |
| // EXP2-NEXT: Arch: aarch64 |
| // EXP2-NEXT: AddressSize: 64bit |
| // EXP2-NEXT: Export { |
| // EXP2-NEXT: Ordinal: 1 |
| // EXP2-NEXT: Name: sym |
| // EXP2-NEXT: RVA: 0x2008 |
| // EXP2-NEXT: } |
| // EXP2-NEXT: } |
| |
| .data |
| .globl sym |
| sym: |
| .word 0 |
| .globl sym2 |
| sym2: |
| .word 0 |