From 0e7bd5cadaf6d51f5e6f5a6e45a92a87384b7254 Mon Sep 17 00:00:00 2001 From: Max Desiatov Date: Wed, 13 May 2026 12:42:32 +0100 Subject: [PATCH] EmscriptenToolchain: clean up comments and `linkerOutputType` handling Addressing post-merge feedback on https://github.com/swiftlang/swift-driver/pull/2105 --- .../Jobs/EmscriptenToolchain+LinkerSupport.swift | 8 ++++---- .../SwiftDriver/Jobs/WASIToolchain+LinkerSupport.swift | 3 +-- .../Jobs/WebAssemblyToolchainProtocol+LinkerSupport.swift | 5 ++--- 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/Sources/SwiftDriver/Jobs/EmscriptenToolchain+LinkerSupport.swift b/Sources/SwiftDriver/Jobs/EmscriptenToolchain+LinkerSupport.swift index 219ef2b65..994ba1c3a 100644 --- a/Sources/SwiftDriver/Jobs/EmscriptenToolchain+LinkerSupport.swift +++ b/Sources/SwiftDriver/Jobs/EmscriptenToolchain+LinkerSupport.swift @@ -119,12 +119,12 @@ extension EmscriptenToolchain { parsedOptions: &parsedOptions, sanitizers: sanitizers, lto: lto, - targetInfo: targetInfo, - linkerOutputType: linkerOutputType + targetInfo: targetInfo ) - // `emcc` supports `-Xlinker` for passing flags to `wasm-ld`, but - // `-Xclang-linker` is `clang`-specific and must not be forwarded. + // `emcc` supports `-Xlinker` for passing flags to `wasm-ld`. `-Xclang-linker` + // is intentionally not forwarded here; `EmscriptenToolchain.validateArgs` + // emits a warning at parse time directing users to `-Xemcc-linker` instead. for linkerOpt in parsedOptions.arguments(for: .Xlinker) { commandLine.appendFlag(.Xlinker) commandLine.appendFlag(linkerOpt.argument.asSingle) diff --git a/Sources/SwiftDriver/Jobs/WASIToolchain+LinkerSupport.swift b/Sources/SwiftDriver/Jobs/WASIToolchain+LinkerSupport.swift index 09f8bff0b..60641e209 100644 --- a/Sources/SwiftDriver/Jobs/WASIToolchain+LinkerSupport.swift +++ b/Sources/SwiftDriver/Jobs/WASIToolchain+LinkerSupport.swift @@ -164,8 +164,7 @@ extension WASIToolchain { parsedOptions: &parsedOptions, sanitizers: sanitizers, lto: lto, - targetInfo: targetInfo, - linkerOutputType: linkerOutputType + targetInfo: targetInfo ) try addExtraClangLinkerArgs(to: &commandLine, parsedOptions: &parsedOptions) diff --git a/Sources/SwiftDriver/Jobs/WebAssemblyToolchainProtocol+LinkerSupport.swift b/Sources/SwiftDriver/Jobs/WebAssemblyToolchainProtocol+LinkerSupport.swift index 0f00c2fb5..c4d94ad21 100644 --- a/Sources/SwiftDriver/Jobs/WebAssemblyToolchainProtocol+LinkerSupport.swift +++ b/Sources/SwiftDriver/Jobs/WebAssemblyToolchainProtocol+LinkerSupport.swift @@ -72,14 +72,13 @@ extension WebAssemblyToolchainProtocol { parsedOptions: inout ParsedOptions, sanitizers: Set, lto: LTOKind?, - targetInfo: FrontendTargetInfo, - linkerOutputType: LinkOutputType + targetInfo: FrontendTargetInfo ) throws { let targetTriple = targetInfo.target.triple // Delegate to Clang for sanitizers. It will figure out the correct linker // options. - if linkerOutputType == .executable && !sanitizers.isEmpty { + if !sanitizers.isEmpty { let sanitizerNames = sanitizers .map { $0.rawValue } .sorted() // Sort so we get a stable, testable order