This allows undefined references in input files be resolved by the optional symbols. Previously we were doing this before input file reading which means it was working only for command line symbols references (i.e. -u or --export). Also use addOptionalDataSymbol for __dso_handle and make all optional symbols hidden by default. Differential Revision: https://reviews.llvm.org/D65920 llvm-svn: 368310
44 lines
1.8 KiB
Plaintext
44 lines
1.8 KiB
Plaintext
; Test that the --stack-first option places the stack at the start of linear
|
|
; memory. In this case the --stack-first option is being passed along with a
|
|
; stack size of 512. This means (since the stack grows down) the stack pointer
|
|
; global should be initialized to 512.
|
|
|
|
RUN: llc -filetype=obj %p/Inputs/start.ll -o %t.o
|
|
RUN: wasm-ld -z stack-size=512 --stack-first --export=__data_end --export=__heap_base -o %t.wasm %t.o
|
|
RUN: obj2yaml %t.wasm | FileCheck %s
|
|
|
|
CHECK: - Type: GLOBAL
|
|
CHECK-NEXT: Globals:
|
|
CHECK-NEXT: - Index: 0
|
|
CHECK-NEXT: Type: I32
|
|
CHECK-NEXT: Mutable: true
|
|
CHECK-NEXT: InitExpr:
|
|
CHECK-NEXT: Opcode: I32_CONST
|
|
CHECK-NEXT: Value: 512
|
|
CHECK-NEXT: - Index: 1
|
|
CHECK-NEXT: Type: I32
|
|
CHECK-NEXT: Mutable: false
|
|
CHECK-NEXT: InitExpr:
|
|
CHECK-NEXT: Opcode: I32_CONST
|
|
CHECK-NEXT: Value: 512
|
|
CHECK-NEXT: - Index: 2
|
|
CHECK-NEXT: Type: I32
|
|
CHECK-NEXT: Mutable: false
|
|
CHECK-NEXT: InitExpr:
|
|
CHECK-NEXT: Opcode: I32_CONST
|
|
CHECK-NEXT: Value: 512
|
|
CHECK-NEXT: - Type: EXPORT
|
|
CHECK-NEXT: Exports:
|
|
CHECK-NEXT: - Name: memory
|
|
CHECK-NEXT: Kind: MEMORY
|
|
CHECK-NEXT: Index: 0
|
|
CHECK-NEXT: - Name: _start
|
|
CHECK-NEXT: Kind: FUNCTION
|
|
CHECK-NEXT: Index: 0
|
|
CHECK-NEXT: - Name: __data_end
|
|
CHECK-NEXT: Kind: GLOBAL
|
|
CHECK-NEXT: Index: 1
|
|
CHECK-NEXT: - Name: __heap_base
|
|
CHECK-NEXT: Kind: GLOBAL
|
|
CHECK-NEXT: Index: 2
|