-
Notifications
You must be signed in to change notification settings - Fork 30
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Cannot import Foundation on DEVELOPMENT channel #5560
Comments
Thank you for detailed report 😺 Recent toolchain snapshot uses the upstream prebuilt compiler binaries, and I intentionally didn't upstream a patch that makes I'm planning to publish a Swift SDK with some wasm specific swiftc options like this as default. |
That makes sense. Thank you for your detailed explanation and a workaround (and also your contributions to the upstream).
It's awesome! |
I have still been stuck on this issue. If I can't find a solution, I will wait for the Swift SDK for WASI. $ which swift
/path/to/swift-wasm-DEVELOPMENT-SNAPSHOT-2023-12-12-a/usr/bin/swift
$ swift -version
Swift version 5.11-dev (LLVM 91cd37b9110872c, Swift 703a4719b0c6f3a)
Target: aarch64-unknown-linux-gnu
$ swift build --triple wasm32-unknown-wasi -Xswiftc -Xfrontend -Xswiftc -use-static-resource-dir
Building for debugging...
LLVM ERROR: /path/to/swift-wasm-DEVELOPMENT-SNAPSHOT-2023-12-12-a/usr/share/wasi-sysroot/usr/lib/swift_static/wasi/static-executable-args.lnk not found
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: /path/to/swift-wasm-DEVELOPMENT-SNAPSHOT-2023-12-12-a/usr/bin/swiftc -L /path/to/wasi-demo/.build/wasm32-unknown-wasi/debug -o /path/to/wasi-d
emo/.build/wasm32-unknown-wasi/debug/wasi-demo.wasm -module-name wasi_demo -emit-executable /path/to/wasi-demo/.build/wasm32-unknown-wasi/debug/wasi_demo.build/main.swift.o /path/to
/wasi-demo/.build/wasm32-unknown-wasi/debug/wasi_demo.build/wasi_demo.swiftmodule.o -target wasm32-unknown-wasi -sdk /path/to/swift-wasm-DEVELOPMENT-SNAPSHOT-2023-12-12-a/us
r/share/wasi-sysroot -g -Xfrontend -use-static-resource-dir
1. Swift version 5.11-dev (LLVM 91cd37b9110872c, Swift 703a4719b0c6f3a)
2. Compilation construction
3. Building compilation jobs
4. While building jobs for driver Action link of type image
5. While determining output for driver CommandOutput
{
PrimaryOutputType = image;
Inputs = [
CommandInputPair {
Base = /path/to/wasi-demo/.build/wasm32-unknown-wasi/debug/wasi_demo.build/main.swift.o,
Primary = /path/to/wasi-demo/.build/wasm32-unknown-wasi/debug/wasi_demo.build/main.swift.o
}];
DerivedOutputFileMap = {
/path/to/wasi-demo/.build/wasm32-unknown-wasi/debug/wasi_demo.build/main.swift.o -> image: "/path/to/wasi-demo/.build/wasm32-unknown-wasi/debug/wasi-demo.wasm"
/path/to/wasi-demo/.build/wasm32-unknown-wasi/debug/wasi_demo.build/main.swift.o -> autolink: "/tmp/main.swift-6f7c1b.autolink"
};
}
Stack dump without symbol names (ensure you have llvm-symbolizer in your PATH or set the environment var `LLVM_SYMBOLIZER_PATH` to point to it):
0 swiftc 0x0000aaaaebb7b1d8
1 swiftc 0x0000aaaaebb79064
2 swiftc 0x0000aaaaebb7b920
3 linux-vdso.so.1 0x0000ffff0d0687d0 __kernel_rt_sigreturn + 0
4 libc.so.6 0x0000ffff0b4b2790
5 libc.so.6 0x0000ffff0b46b6fc raise + 44
6 libc.so.6 0x0000ffff0b4578b0 abort + 228
7 swiftc 0x0000aaaaebad4378
8 swiftc 0x0000aaaae642ab70
9 swiftc 0x0000aaaae641c0ac
10 swiftc 0x0000aaaae6402260
11 swiftc 0x0000aaaae64003f4
12 swiftc 0x0000aaaae63f98e0
13 swiftc 0x0000aaaae5446384
14 libc.so.6 0x0000ffff0b457b80
15 libc.so.6 0x0000ffff0b457c60 __libc_start_main + 160
16 swiftc 0x0000aaaae544479c
[1/2] Linking wasi-demo.wasm |
I'll take a look this week |
Looks like the crash issue exists only in the legacy driver. We can use the new swift-driver after swiftlang/swift-driver#1523, so stay tuned. |
Thank you for the information. By the way, the new swift-driver is broken in Asahi Linux at this time. I recently build all my packages with $ mkdir foo
$ swift package init --type executable
Creating executable package: foo
Creating Package.swift
Creating .gitignore
Creating Sources/
Creating Sources/main.swift
$ swift build
error: 'foo': Invalid manifest (compiled with: ["/home/kebo/.local/bin/swiftc", "-vfsoverlay", "/tmp/TemporaryDirectory.J4dMCk/vfs.yaml", "-L", "/home/kebo/.local/bin", "-lPackageDescription", "-Xlinker", "-rpath", "-Xlinker", "/home/kebo/.local/bin", "-swift-version", "5", "-I", "/home/kebo/.local/bin", "-package-description-version", "5.11.0", "/home/kebo/foo/Package.swift", "-Xfrontend", "-disable-implicit-concurrency-module-import", "-Xfrontend", "-disable-implicit-string-processing-module-import", "-o", "/tmp/TemporaryDirectory.xVIo20/foo-manifest"])
error: fatalError
/home/kebo/foo/Package.swift:4:8: error: no such module 'PackageDescription'
import PackageDescription
^
$ swift build -Xswiftc -disallow-use-new-driver
Building for debugging...
<unknown>:0: warning: legacy driver is now deprecated; consider avoiding specifying '-disallow-use-new-driver'
<unknown>:0: warning: legacy driver is now deprecated; consider avoiding specifying '-disallow-use-new-driver'
[7/7] Linking foo
Build complete! (1.78s)
$ swift --version
Swift version 5.11-dev (LLVM 6e97019dc6cb7d8, Swift 0cc72fb3446a846)
Target: aarch64-unknown-linux-gnu
$ swiftly list
Installed release toolchains
----------------------------
Installed snapshot toolchains
-----------------------------
main-snapshot-2024-01-13 (in use) |
The root problem is swiftly's installation process. Please ask them to stop using symlink. |
Thank you for your advice. I created swiftlang/swiftly#92 and swiftlang#70932. |
swiftlang/swift-driver#1523 was merged. Although the crash issue has been resolved, $ which swift
/path/to/swift-wasm-DEVELOPMENT-SNAPSHOT-2024-01-17-a/usr/bin/swift
$ swift --version
Swift version 5.11-dev (LLVM 3c1c797448de605, Swift a48dc87f86faf49)
Target: aarch64-unknown-linux-gnu
$ swift build --triple wasm32-unknown-wasi -Xswiftc -Xfrontend -Xswiftc -use-static-resource-dir
Building for debugging...
warning: Could not read SDKSettings.json for SDK at: /path/to/swift-wasm-DEVELOPMENT-SNAPSHOT-2024-01-17-a/usr/share/wasi-sysroot
error: emit-module command failed with exit code 1 (use -v to see invocation)
/home/kebo/wasi-demo/Sources/main.swift:1:8: error: no such module 'Foundation'
import Foundation
^
/home/kebo/wasi-demo/Sources/main.swift:1:8: error: no such module 'Foundation'
import Foundation
^
error: fatalError |
The proper command is now |
Thank you. I have successfully built the package. $ swift build --triple wasm32-unknown-wasi --static-swift-stdlib
Building for debugging...
warning: Could not read SDKSettings.json for SDK at: /home/kebo/downloads/swift-wasm-DEVELOPMENT-SNAPSHOT-2024-01-17-a/usr/share/wasi-sysroot
<unknown>:0: warning: libc not found for 'wasm32-unknown-wasi'; C stdlib may be unavailable
<unknown>:0: warning: libc not found for 'wasm32-unknown-wasi'; C stdlib may be unavailable
warning: Could not read SDKSettings.json for SDK at: /home/kebo/downloads/swift-wasm-DEVELOPMENT-SNAPSHOT-2024-01-17-a/usr/share/wasi-sysroot
[7/7] Linking wasi-demo.wasm
Build complete! (2.84s) |
Making |
Environments where I reproduced the issue
Steps to reproduce
Only recently built toolchains seem to have this problem, as swift-wasm-5.9-SNAPSHOT-2023-08-06-a was fine.
The text was updated successfully, but these errors were encountered: