Skip to content

wasm-ld: error: swiftrt.o: undefined symbol: swift_addNewDSOImage #9147

@MaxDesiatov

Description

@MaxDesiatov

Description

Mirror of swiftwasm/swift#5583 as we can't easily transfer issues between orgs.

When I tried to build a C executable target, I got the undefined symbol: swift_addNewDSOImage error.

Steps to reproduce

$ tree .
.
├── Package.swift
└── Sources
    └── main.c

2 directories, 2 files
$ cat Package.swift
// swift-tools-version: 6.0

import PackageDescription

let package = Package(
    name: "foo",
    targets: [
        .executableTarget(name: "foo")
    ]
)
$ cat Sources/main.c
#include <stdio.h>

int main() {
    printf("Hello, world!\n");
    return 0;
}
$ swift build --swift-sdk wasm32-unknown-wasi
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-wasi.artifactbundle/DEVELOPMENT-SNAPSHOT-2024-06-07-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)
[2/3] Linking foo.wasm

Environment

$ uname -a
Linux Brown-rhinoceros-beetle 6.8.10-400.asahi.fc40.aarch64+16k #1 SMP PREEMPT_DYNAMIC Mon May 27 16:05:41 UTC 2024 aarch64 GNU/Linux
$ which swift
/home/kebo/.local/bin/swift
$ swiftly list
Installed release toolchains
----------------------------

Installed snapshot toolchains
-----------------------------
6.0-snapshot-2024-06-07
main-snapshot-2024-06-07
main-snapshot-2024-06-06 (in use)
$ swift --version
Swift version 6.0-dev (LLVM 70f5988c1c84591, Swift 4f8181dde6a5a62)
Target: aarch64-unknown-linux-gnu
$ swift sdk list
DEVELOPMENT-SNAPSHOT-2024-06-07-a-wasm32-unknown-wasi

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

Projects

Status

No status

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions