WebAssembly/wasi-libc

main in a library regression

Aberta

#485 aberto em 16 de mar. de 2024

 (5 comentários) (1 reação) (0 responsável)C (245 forks)github user discovery
help wanted

Métricas do repositório

Stars
 (1.018 estrelas)
Métricas de merge de PR
 (Mesclagem média 6d) (4 fundiu PRs em 30d)

Description

recent wasi-libc is broken if you put main in a library.

test case: https://github.com/yamt/garbage/tree/d422b1073125b3fc8f843ce4b12280ab3982fb84/c/main_in_lib

spacetanuki% ./build-native.sh
spacetanuki% ./a.out
this is foo
spacetanuki% WASI_SDK=/opt/wasi-sdk-20.0 ./build-wasi.sh
spacetanuki% toywasm --wasi a.out
this is foo
spacetanuki% WASI_SDK=/opt/wasi-sdk-21.0 ./build-wasi.sh
spacetanuki% toywasm --wasi a.out                       
Error: [trap] unreachable executed (4): unreachable at 0001a5
frame[  2] funcpc 0001a5 (<unknown>:undefined_weak:main) callerpc 0022de
  param [0] = 00000001
  param [1] = 00010b30
frame[  1] funcpc 00226c (<unknown>:__main_void) callerpc 0001df
  local [0] = 00010b00
  local [1] = 00010b30
  local [2] = 00010b20
frame[  0] funcpc 0001ab (<unknown>:_start)
  local [0] = 00000000
2024-03-16 14:47:15 (1710568035.864123000): [117042600] instance_execute_func failed with -1
2024-03-16 14:47:15 (1710568035.864618000): [117042600] invoke failed with -1
spacetanuki% 

i guess this is a regression caused by https://github.com/WebAssembly/wasi-libc/pull/429

Guia do colaborador