74 lines · plain
1RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %p/Inputs/start.s -o %t.o2 3# Check for error on `--global-base` with `-shared` and `-pie`4RUN: not wasm-ld --global-base=2048 --experimental-pic -shared -o %t.wasm %t.o 2>&1 | FileCheck %s -check-prefix=SHARED-ERROR5RUN: not wasm-ld --global-base=2048 --experimental-pic -pie -o %t.wasm %t.o 2>&1 | FileCheck %s -check-prefix=SHARED-ERROR6SHARED-ERROR: error: --global-base may not be used with -shared/-pie7 8# Check for error on `--global-base` which is lower than that end of the stack9# when `--stack-first` is used.10RUN: not wasm-ld --global-base=2048 --stack-first -o %t.wasm %t.o 2>&1 | FileCheck %s -check-prefix=STACK-ERROR11STACK-ERROR: error: --global-base cannot be less than stack size when --stack-first is used12 13RUN: wasm-ld --export=__global_base --export=__data_end --allow-undefined -o %t.wasm %t.o14RUN: obj2yaml %t.wasm | FileCheck %s -check-prefix=CHECK-102415CHECK-1024: - Type: GLOBAL16CHECK-1024-NEXT: Globals:17CHECK-1024-NEXT: - Index: 018CHECK-1024-NEXT: Type: I3219CHECK-1024-NEXT: Mutable: true20CHECK-1024-NEXT: InitExpr:21CHECK-1024-NEXT: Opcode: I32_CONST22CHECK-1024-NEXT: Value: 6553623CHECK-1024-NEXT: - Index: 124CHECK-1024-NEXT: Type: I3225CHECK-1024-NEXT: Mutable: false26CHECK-1024-NEXT: InitExpr:27CHECK-1024-NEXT: Opcode: I32_CONST28CHECK-1024-NEXT: Value: 6553629CHECK-1024-NEXT: - Index: 230CHECK-1024-NEXT: Type: I3231CHECK-1024-NEXT: Mutable: false32CHECK-1024-NEXT: InitExpr:33CHECK-1024-NEXT: Opcode: I32_CONST34CHECK-1024-NEXT: Value: 6553635 36CHECK-1024: - Type: EXPORT37CHECK-1024: - Name: __data_end38CHECK-1024-NEXT: Kind: GLOBAL39CHECK-1024-NEXT: Index: 140CHECK-1024-NEXT: - Name: __global_base41CHECK-1024-NEXT: Kind: GLOBAL42CHECK-1024-NEXT: Index: 243 44RUN: wasm-ld --export=__global_base --export=__data_end --allow-undefined --global-base=16777216 -o %t.wasm %t.o45RUN: obj2yaml %t.wasm | FileCheck %s -check-prefix=CHECK-1677721646CHECK-16777216: - Type: GLOBAL47CHECK-16777216-NEXT: Globals:48CHECK-16777216-NEXT: - Index: 049CHECK-16777216-NEXT: Type: I3250CHECK-16777216-NEXT: Mutable: true51CHECK-16777216-NEXT: InitExpr:52CHECK-16777216-NEXT: Opcode: I32_CONST53CHECK-16777216-NEXT: Value: 6553654CHECK-16777216-NEXT: - Index: 155CHECK-16777216-NEXT: Type: I3256CHECK-16777216-NEXT: Mutable: false57CHECK-16777216-NEXT: InitExpr:58CHECK-16777216-NEXT: Opcode: I32_CONST59CHECK-16777216-NEXT: Value: 1677721660CHECK-16777216-NEXT: - Index: 261CHECK-16777216-NEXT: Type: I3262CHECK-16777216-NEXT: Mutable: false63CHECK-16777216-NEXT: InitExpr:64CHECK-16777216-NEXT: Opcode: I32_CONST65CHECK-16777216-NEXT: Value: 1677721666 67CHECK-16777216: - Type: EXPORT68CHECK-16777216: - Name: __data_end69CHECK-16777216-NEXT: Kind: GLOBAL70CHECK-16777216-NEXT: Index: 171CHECK-16777216-NEXT: - Name: __global_base72CHECK-16777216-NEXT: Kind: GLOBAL73CHECK-16777216-NEXT: Index: 274