@@ -11,17 +11,17 @@ WASI_SYSROOT=${WASI_SDK}/share/wasi-sysroot
1111# WASI_SDK=${WASI_SDK:-/Volumes/PortableSSD/git/component-linking-demo/wasi-sdk/build/install/opt/wasi-sdk}
1212# CC=${WASI_SDK}/bin/clang
1313
14- # WASI_SYSROOT=${WASI_SDK}/share/wasi-sysroot
14+ WASI_SYSROOT=${WASI_SDK} /share/wasi-sysroot
1515# WASI_SYSROOT=/Users/yamamoto/git/wasi-libc/sysroot
1616
1717# LLVM_HOME=/Volumes/PortableSSD/llvm/llvm
18- # LLVM_HOME=/Volumes/PortableSSD/llvm/build
18+ LLVM_HOME=/Volumes/PortableSSD/llvm/build
1919# LLVM_HOME=/Volumes/PortableSSD/git/component-linking-demo/wasi-sdk/build/install/opt/wasi-sdk
2020# RESOURCE_DIR=/Volumes/PortableSSD/llvm/llvm/lib/clang/17
21- # RESOURCE_DIR=${WASI_SDK}/lib/clang/17
22- # CC=${LLVM_HOME}/bin/clang
23- # CFLAGS="${CFLAGS} --sysroot ${WASI_SYSROOT}"
24- # CFLAGS="${CFLAGS} -resource-dir ${RESOURCE_DIR}"
21+ RESOURCE_DIR=${WASI_SDK} /lib/clang/18
22+ CC=${LLVM_HOME} /bin/clang
23+ CFLAGS=" ${CFLAGS} --sysroot ${WASI_SYSROOT} "
24+ CFLAGS=" ${CFLAGS} -resource-dir ${RESOURCE_DIR} "
2525
2626# built with
2727# TOYWASM_ENABLE_DYLD=ON
@@ -38,13 +38,15 @@ CFLAGS="${CFLAGS} -Os"
3838
3939CLINKFLAGS=" -Xlinker --experimental-pic"
4040# CLIBLINKFLAGS="-shared -fvisibility=default -mexec-model=reactor"
41- CLIBLINKFLAGS=" -shared -fvisibility=default"
41+ # CLIBLINKFLAGS="-shared -fvisibility=default"
42+ # we have undefined symbols like func_in_main etc
43+ CLIBLINKFLAGS=" -shared -fvisibility=default -Wl,--unresolved-symbols=import-dynamic"
4244
4345# CRT1=$(${CC} --print-file-name crt1-reactor.o)
4446
4547CPICFLAGS=" ${CFLAGS} -fPIC"
4648
47- ${CC} ${CPICFLAGS} ${CLINKFLAGS} ${CLIBLINKFLAGS} -o libbar.so bar.c
49+ ${CC} ${CPICFLAGS} ${CLINKFLAGS} ${CLIBLINKFLAGS} -Wl,-mllvm,-debug - o libbar.so bar.c
4850# see the comment in native.sh
4951${CC} ${CPICFLAGS} ${CLINKFLAGS} ${CLIBLINKFLAGS} -o libfoo.so foo.c libbar.so
5052${CC} ${CPICFLAGS} ${CLINKFLAGS} ${CLIBLINKFLAGS} -o libbaz.so baz.c
@@ -77,20 +79,26 @@ PIC=-fPIC
7779# https://github.com/llvm/llvm-project/blob/b01adc6bed7e5b924dd8a097be0aa893f4823905/lld/wasm/Driver.cpp#L309-L313
7880${CC} -v ${CFLAGS} ${CLINKFLAGS} \
7981${PIC} \
82+ -v \
8083-nodefaultlibs \
84+ -Xlinker -Bdynamic \
8185-Xlinker --export-if-defined=__main_argc_argv \
82- -Xlinker --unresolved-symbols=import-dynamic \
8386-Xlinker --export-table \
8487-Xlinker --growable-table \
8588-Xlinker --export=__stack_pointer \
8689-Xlinker --export=__heap_base \
8790-Xlinker --export=__heap_end \
91+ -Xlinker -mllvm \
92+ -Xlinker -debug \
8893-z stack-size=16384 \
8994-o main.wasi.non-pie \
9095main.c \
9196main2.c \
9297libfoo.so libbar.so \
93- ${WASI_SYSROOT} /lib/wasm32-wasi/libdl.so
98+ ${WASI_SYSROOT} /lib/wasm32-wasi/libdl.so \
99+ ${WASI_SYSROOT} /lib/wasm32-wasi/libc.so \
100+ -Xlinker -Bstatic
101+
94102
95103# note: specify --dyld-path for toywasm libdl.so before the one for wasi-libc
96104# so that dyld picks up the former.
0 commit comments