Skip to content

Commit 0cf62db

Browse files
committed
Fix duplicated swiftc flags when using custom sdks
- Fixes a bug which caused extraCLIFlags from an SDK's toolset.json files to be repeated multiple times in child process invocations. The repeated flags can cause issues with some downstream tools, such as repeated -segaddr flags to ld64 for the same segment.
1 parent dce5590 commit 0cf62db

File tree

2 files changed

+4
-4
lines changed

2 files changed

+4
-4
lines changed

Sources/Build/BuildDescription/ClangTargetBuildDescription.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -236,11 +236,13 @@ public final class ClangTargetBuildDescription {
236236
}
237237

238238
args += buildParameters.toolchain.extraFlags.cCompilerFlags
239-
// User arguments (from -Xcc and -Xcxx below) should follow generated arguments to allow user overrides
239+
// User arguments (from -Xcc) should follow generated arguments to allow user overrides
240240
args += buildParameters.flags.cCompilerFlags
241241

242242
// Add extra C++ flags if this target contains C++ files.
243243
if clangTarget.isCXX {
244+
args += buildParameters.toolchain.extraFlags.cxxCompilerFlags
245+
// User arguments (from -Xcxx) should follow generated arguments to allow user overrides
244246
args += self.buildParameters.flags.cxxCompilerFlags
245247
}
246248
return args

Sources/CoreCommands/SwiftTool.swift

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -680,15 +680,13 @@ public final class SwiftTool {
680680
let dataPath = self.scratchDirectory.appending(
681681
component: destinationTriple.platformBuildPathComponent(buildSystem: options.build.buildSystem)
682682
)
683-
var buildFlags = options.build.buildFlags
684-
buildFlags.append(destinationToolchain.extraFlags)
685683

686684
return try BuildParameters(
687685
dataPath: dataPath,
688686
configuration: options.build.configuration,
689687
toolchain: destinationToolchain,
690688
destinationTriple: destinationTriple,
691-
flags: buildFlags,
689+
flags: options.build.buildFlags,
692690
pkgConfigDirectories: options.locations.pkgConfigDirectories,
693691
architectures: options.build.architectures,
694692
workers: options.build.jobs ?? UInt32(ProcessInfo.processInfo.activeProcessorCount),

0 commit comments

Comments
 (0)