| # RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown -o %t.o %s |
| # RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %p/Inputs/ret32.s -o %t.ret32.o |
| |
| # RUN: wasm-ld -shared --experimental-pic -o %t.ret32.so %t.ret32.o |
| # RUN: obj2yaml %t.ret32.so | FileCheck %s -check-prefix=SO1 |
| |
| # Without linking against the ret32.so shared object we expect an undefined |
| # symbol error |
| |
| # RUN: not wasm-ld -shared --experimental-pic -o %t.so %t.o 2>&1 | FileCheck %s --check-prefix=ERROR |
| # ERROR: undefined symbol: ret32 |
| |
| # RUN: wasm-ld -shared --experimental-pic -o %t.so %t.o %t.ret32.so |
| # RUN: obj2yaml %t.so | FileCheck %s -check-prefix=SO2 |
| |
| |
| .globl foo |
| .globl data |
| |
| .functype ret32 (f32) -> (i32) |
| |
| foo: |
| .functype foo (f32) -> (i32) |
| local.get 0 |
| call ret32 |
| end_function |
| |
| .section .data,"",@ |
| data: |
| .p2align 2 |
| .int32 0 |
| .size data,4 |
| |
| |
| # SO1: Sections: |
| # SO1-NEXT: - Type: CUSTOM |
| # SO1-NEXT: Name: dylink.0 |
| # SO1-NEXT: MemorySize: 0 |
| # SO1-NEXT: MemoryAlignment: 0 |
| # SO1-NEXT: TableSize: 0 |
| # SO1-NEXT: TableAlignment: 0 |
| # SO1-NEXT: Needed: [] |
| # SO1-NEXT: - Type: TYPE |
| |
| # SO2: Sections: |
| # SO2-NEXT: - Type: CUSTOM |
| # SO2-NEXT: Name: dylink.0 |
| # SO2-NEXT: MemorySize: 4 |
| # SO2-NEXT: MemoryAlignment: 2 |
| # SO2-NEXT: TableSize: 0 |
| # SO2-NEXT: TableAlignment: 0 |
| # SO2-NEXT: Needed: |
| # SO2-NEXT: - shared-needed.s.tmp.ret32.so |
| # SO2-NEXT: - Type: TYPE |