Open kkebo opened 3 weeks ago
I'm going to send a patch to swift-cmark to support wasm32-unknown-wasip1-threads, but I encountered this issue.
$ swift build --swift-sdk wasm32-unknown-wasip1-threads
Building for debugging...
error: link command failed with exit code 1 (use -v to see invocation)
wasm-ld: error: /home/kebo/.swiftpm/swift-sdks/swift-wasm-DEVELOPMENT-SNAPSHOT-2024-06-07-a-wasm32-unknown-wasip1-threads.artifactbundle/DEVELOPMENT-SNAPSHOT-2024-06-07-a-wasm32-unknown-wasip1-threads/wasm32-unknown-wasip1-threads/swift.xctoolchain/usr/lib/swift_static/wasi/wasm32/swiftrt.o: undefined symbol: swift_addNewDSOImage
clang: error: linker command failed with exit code 1 (use -v to see invocation)
[0/2] Linking api_test.wasm
Ok, the problem here is that SwiftPM uses swiftc as a linker driver even though a building target is a ClangTarget.
Planning build
Building for debugging...
/home/katei/ghq/github.com/kylef/swiftenv/versions/DEVELOPMENT-SNAPSHOT-2024-05-15-a/usr/bin/swiftc -v -L /tmp/tmp.LYh43lSA1r/.build/wasm32-unknown-wasi/debug -o /tmp/tmp.LYh43lSA1r/.build/wasm32-unknown-wasi/debug/foo.wasm -module-name foo -emit-executable -resource-dir /home/katei/.config/swiftpm/swift-sdks/swift-wasm-DEVELOPMENT-SNAPSHOT-2024-05-02-a-wasm32-unknown-wasi.artifactbundle/DEVELOPMENT-SNAPSHOT-2024-05-02-a-wasm32-unknown-wasi/wasm32-unknown-wasi/swift.xctoolchain/usr/lib/swift_static -Xclang-linker -resource-dir -Xclang-linker /home/katei/.config/swiftpm/swift-sdks/swift-wasm-DEVELOPMENT-SNAPSHOT-2024-05-02-a-wasm32-unknown-wasi.artifactbundle/DEVELOPMENT-SNAPSHOT-2024-05-02-a-wasm32-unknown-wasi/wasm32-unknown-wasi/swift.xctoolchain/usr/lib/swift_static/clang @/tmp/tmp.LYh43lSA1r/.build/wasm32-unknown-wasi/debug/foo.product/Objects.LinkFileList -runtime-compatibility-version none -target wasm32-unknown-wasi -sdk /home/katei/.config/swiftpm/swift-sdks/swift-wasm-DEVELOPMENT-SNAPSHOT-2024-05-02-a-wasm32-unknown-wasi.artifactbundle/DEVELOPMENT-SNAPSHOT-2024-05-02-a-wasm32-unknown-wasi/wasm32-unknown-wasi/WASI.sdk -static-stdlib -tools-directory /home/katei/.config/swiftpm/swift-sdks/swift-wasm-DEVELOPMENT-SNAPSHOT-2024-05-02-a-wasm32-unknown-wasi.artifactbundle/DEVELOPMENT-SNAPSHOT-2024-05-02-a-wasm32-unknown-wasi/wasm32-unknown-wasi/swift.xctoolchain/usr/bin -sdk /home/katei/.config/swiftpm/swift-sdks/swift-wasm-DEVELOPMENT-SNAPSHOT-2024-05-02-a-wasm32-unknown-wasi.artifactbundle/DEVELOPMENT-SNAPSHOT-2024-05-02-a-wasm32-unknown-wasi/wasm32-unknown-wasi/WASI.sdk -g
warning: Could not read SDKSettings.json for SDK at: /home/katei/.config/swiftpm/swift-sdks/swift-wasm-DEVELOPMENT-SNAPSHOT-2024-05-02-a-wasm32-unknown-wasi.artifactbundle/DEVELOPMENT-SNAPSHOT-2024-05-02-a-wasm32-unknown-wasi/wasm32-unknown-wasi/WASI.sdk
Swift version 6.0-dev (LLVM cef183591317ec7, Swift 66e311074bff491)
Target: wasm32-unknown-wasi
/home/katei/ghq/github.com/kylef/swiftenv/versions/DEVELOPMENT-SNAPSHOT-2024-05-15-a/usr/bin/swift-autolink-extract /tmp/tmp.LYh43lSA1r/.build/wasm32-unknown-wasi/debug/foo.build/main.c.o -o /tmp/tmp.LYh43lSA1r/.build/wasm32-unknown-wasi/debug/foo.build/foo.autolink
/home/katei/ghq/github.com/kylef/swiftenv/versions/DEVELOPMENT-SNAPSHOT-2024-05-15-a/usr/bin/clang -target wasm32-unknown-wasi -B /home/katei/.config/swiftpm/swift-sdks/swift-wasm-DEVELOPMENT-SNAPSHOT-2024-05-02-a-wasm32-unknown-wasi.artifactbundle/DEVELOPMENT-SNAPSHOT-2024-05-02-a-wasm32-unknown-wasi/wasm32-unknown-wasi/swift.xctoolchain/usr/bin /home/katei/.config/swiftpm/swift-sdks/swift-wasm-DEVELOPMENT-SNAPSHOT-2024-05-02-a-wasm32-unknown-wasi.artifactbundle/DEVELOPMENT-SNAPSHOT-2024-05-02-a-wasm32-unknown-wasi/wasm32-unknown-wasi/swift.xctoolchain/usr/lib/swift_static/wasi/wasm32/swiftrt.o /tmp/tmp.LYh43lSA1r/.build/wasm32-unknown-wasi/debug/foo.build/main.c.o @/tmp/tmp.LYh43lSA1r/.build/wasm32-unknown-wasi/debug/foo.build/foo.autolink --sysroot /home/katei/.config/swiftpm/swift-sdks/swift-wasm-DEVELOPMENT-SNAPSHOT-2024-05-02-a-wasm32-unknown-wasi.artifactbundle/DEVELOPMENT-SNAPSHOT-2024-05-02-a-wasm32-unknown-wasi/wasm32-unknown-wasi/WASI.sdk -L /home/katei/.config/swiftpm/swift-sdks/swift-wasm-DEVELOPMENT-SNAPSHOT-2024-05-02-a-wasm32-unknown-wasi.artifactbundle/DEVELOPMENT-SNAPSHOT-2024-05-02-a-wasm32-unknown-wasi/wasm32-unknown-wasi/swift.xctoolchain/usr/lib/swift_static/wasi @/home/katei/.config/swiftpm/swift-sdks/swift-wasm-DEVELOPMENT-SNAPSHOT-2024-05-02-a-wasm32-unknown-wasi.artifactbundle/DEVELOPMENT-SNAPSHOT-2024-05-02-a-wasm32-unknown-wasi/wasm32-unknown-wasi/swift.xctoolchain/usr/lib/swift_static/wasi/static-executable-args.lnk --target=wasm32-unknown-wasi -Xlinker --global-base=4096 -v -L /tmp/tmp.LYh43lSA1r/.build/wasm32-unknown-wasi/debug -L /tmp/tmp.LYh43lSA1r/.build/wasm32-unknown-wasi/debug -resource-dir /home/katei/.config/swiftpm/swift-sdks/swift-wasm-DEVELOPMENT-SNAPSHOT-2024-05-02-a-wasm32-unknown-wasi.artifactbundle/DEVELOPMENT-SNAPSHOT-2024-05-02-a-wasm32-unknown-wasi/wasm32-unknown-wasi/swift.xctoolchain/usr/lib/swift_static/clang -o /tmp/tmp.LYh43lSA1r/.build/wasm32-unknown-wasi/debug/foo.wasm
error: link command failed with exit code 1 (use -v to see invocation)
clang version 17.0.0 (https://github.com/apple/llvm-project.git cef183591317ec7fa67ddd578e1b9cbd4b6c4ccb)
Target: wasm32-unknown-wasi
Thread model: posix
InstalledDir: /home/katei/ghq/github.com/kylef/swiftenv/versions/DEVELOPMENT-SNAPSHOT-2024-05-15-a/usr/bin
"/home/katei/ghq/github.com/kylef/swiftenv/versions/DEVELOPMENT-SNAPSHOT-2024-05-15-a/usr/bin/wasm-ld" -m wasm32 -L/home/katei/.config/swiftpm/swift-sdks/swift-wasm-DEVELOPMENT-SNAPSHOT-2024-05-02-a-wasm32-unknown-wasi.artifactbundle/DEVELOPMENT-SNAPSHOT-2024-05-02-a-wasm32-unknown-wasi/wasm32-unknown-wasi/swift.xctoolchain/usr/lib/swift_static/wasi -L/tmp/tmp.LYh43lSA1r/.build/wasm32-unknown-wasi/debug -L/tmp/tmp.LYh43lSA1r/.build/wasm32-unknown-wasi/debug -L/home/katei/.config/swiftpm/swift-sdks/swift-wasm-DEVELOPMENT-SNAPSHOT-2024-05-02-a-wasm32-unknown-wasi.artifactbundle/DEVELOPMENT-SNAPSHOT-2024-05-02-a-wasm32-unknown-wasi/wasm32-unknown-wasi/WASI.sdk/lib/wasm32-wasi /home/katei/.config/swiftpm/swift-sdks/swift-wasm-DEVELOPMENT-SNAPSHOT-2024-05-02-a-wasm32-unknown-wasi.artifactbundle/DEVELOPMENT-SNAPSHOT-2024-05-02-a-wasm32-unknown-wasi/wasm32-unknown-wasi/WASI.sdk/lib/wasm32-wasi/crt1-command.o /home/katei/.config/swiftpm/swift-sdks/swift-wasm-DEVELOPMENT-SNAPSHOT-2024-05-02-a-wasm32-unknown-wasi.artifactbundle/DEVELOPMENT-SNAPSHOT-2024-05-02-a-wasm32-unknown-wasi/wasm32-unknown-wasi/swift.xctoolchain/usr/lib/swift_static/wasi/wasm32/swiftrt.o /tmp/tmp.LYh43lSA1r/.build/wasm32-unknown-wasi/debug/foo.build/main.c.o -lswiftSwiftOnoneSupport -ldl -lc++ -lc++abi -lm -lwasi-emulated-mman -lwasi-emulated-signal -lwasi-emulated-process-clocks --error-limit=0 --threads=1 --global-base=4096 -lc /home/katei/.config/swiftpm/swift-sdks/swift-wasm-DEVELOPMENT-SNAPSHOT-2024-05-02-a-wasm32-unknown-wasi.artifactbundle/DEVELOPMENT-SNAPSHOT-2024-05-02-a-wasm32-unknown-wasi/wasm32-unknown-wasi/swift.xctoolchain/usr/lib/swift_static/clang/lib/wasi/libclang_rt.builtins-wasm32.a -o /tmp/tmp.LYh43lSA1r/.build/wasm32-unknown-wasi/debug/foo.wasm
wasm-ld: error: /home/katei/.config/swiftpm/swift-sdks/swift-wasm-DEVELOPMENT-SNAPSHOT-2024-05-02-a-wasm32-unknown-wasi.artifactbundle/DEVELOPMENT-SNAPSHOT-2024-05-02-a-wasm32-unknown-wasi/wasm32-unknown-wasi/swift.xctoolchain/usr/lib/swift_static/wasi/wasm32/swiftrt.o: undefined symbol: swift_addNewDSOImage
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Description
When I tried to build a C executable target, I got the
undefined symbol: swift_addNewDSOImage
error.Steps to reproduce
Environment