From 1c7d4771e14865bfed3a3398e9fee8f265330dc7 Mon Sep 17 00:00:00 2001 From: Artem Chikin Date: Mon, 9 Jan 2023 13:51:26 -0800 Subject: [PATCH] Enable '-clang-target' by-default This will result in the driver passing down '-clang-target' flag to the frontend, which will then ensure that all downstream module (Swift and Clang) compilation compiler sub-invocations are consistent with respect to the target triple used by their underlying instances of Clang. Resulting in all Clang module dependencies being built against the main module's target triple. --- Sources/SwiftDriver/Jobs/FrontendJobHelpers.swift | 4 +--- Tests/SwiftDriverTests/SwiftDriverTests.swift | 4 ++-- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/Sources/SwiftDriver/Jobs/FrontendJobHelpers.swift b/Sources/SwiftDriver/Jobs/FrontendJobHelpers.swift index 6bdcffcd7..fa5160c96 100644 --- a/Sources/SwiftDriver/Jobs/FrontendJobHelpers.swift +++ b/Sources/SwiftDriver/Jobs/FrontendJobHelpers.swift @@ -74,10 +74,8 @@ extension Driver { // Pass down -clang-target. // If not specified otherwise, we should use the same triple as -target - // TODO: enable -clang-target for implicit module build as well. if !parsedOptions.hasArgument(.disableClangTarget) && - isFrontendArgSupported(.clangTarget) && - parsedOptions.contains(.driverExplicitModuleBuild) { + isFrontendArgSupported(.clangTarget) { let clangTriple = parsedOptions.getLastArgument(.clangTarget)?.asSingle ?? targetTriple.triple commandLine.appendFlag(.clangTarget) commandLine.appendFlag(clangTriple) diff --git a/Tests/SwiftDriverTests/SwiftDriverTests.swift b/Tests/SwiftDriverTests/SwiftDriverTests.swift index ad3f5e8dd..1e5a77f20 100644 --- a/Tests/SwiftDriverTests/SwiftDriverTests.swift +++ b/Tests/SwiftDriverTests/SwiftDriverTests.swift @@ -3622,7 +3622,7 @@ final class SwiftDriverTests: XCTestCase { #endif } - func testDisableClangTargetForImplicitModule() throws { + func testEnableClangTargetForImplicitModule() throws { var envVars = ProcessEnv.vars envVars["SWIFT_DRIVER_LD_EXEC"] = ld.nativePathString(escaped: false) @@ -3632,7 +3632,7 @@ final class SwiftDriverTests: XCTestCase { let plannedJobs = try driver.planBuild() XCTAssertEqual(plannedJobs.count, 2) XCTAssert(plannedJobs[0].commandLine.contains(.flag("-target"))) - XCTAssertFalse(plannedJobs[0].commandLine.contains(.flag("-clang-target"))) + XCTAssertTrue(plannedJobs[0].commandLine.contains(.flag("-clang-target"))) } func testPCHasCompileInput() throws {