diff --git a/Sources/SwiftToolchain/Toolchain.swift b/Sources/SwiftToolchain/Toolchain.swift index 1ce5a944..dacd7206 100644 --- a/Sources/SwiftToolchain/Toolchain.swift +++ b/Sources/SwiftToolchain/Toolchain.swift @@ -264,6 +264,12 @@ public final class Toolchain { builderArguments.append("--enable-test-discovery") } + // SwiftWasm 5.5 requires explicit linking arguments in certain configurations, + // see https://github.com/swiftwasm/swift/issues/3891 + if version.starts(with: "wasm-5.5") { + builderArguments.append(contentsOf: ["-Xlinker", "-licuuc", "-Xlinker", "-licui18n"]) + } + try Builder( arguments: builderArguments, mainWasmPath: mainWasmPath, @@ -302,9 +308,7 @@ public final class Toolchain { var builderArguments = [ swiftPath.pathString, "build", "-c", flavor.isRelease ? "release" : "debug", "--product", testProductName, "--triple", "wasm32-unknown-wasi", - "-Xswiftc", "-color-diagnostics", - // workaround for 5.5 linking issues, see https://github.com/swiftwasm/swift/issues/3891 - "-Xlinker", "-licuuc", "-Xlinker", "-licui18n" + "-Xswiftc", "-color-diagnostics" ] // Versions later than 5.3.x have test discovery enabled by default and the explicit flag @@ -313,6 +317,12 @@ public final class Toolchain { builderArguments.append("--enable-test-discovery") } + // SwiftWasm 5.5 requires explicit linking arguments in certain configurations, + // see https://github.com/swiftwasm/swift/issues/3891 + if version.starts(with: "wasm-5.5") { + builderArguments.append(contentsOf: ["-Xlinker", "-licuuc", "-Xlinker", "-licui18n"]) + } + try Builder( arguments: builderArguments, mainWasmPath: testBundlePath,