Skip to content

Commit 64df894

Browse files
committed
1 parent 46ecf2a commit 64df894

File tree

1 file changed

+18
-10
lines changed

1 file changed

+18
-10
lines changed

c/shlib/wasi.sh

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -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

3939
CLINKFLAGS="-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

4547
CPICFLAGS="${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 \
9095
main.c \
9196
main2.c \
9297
libfoo.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

Comments
 (0)