From e8f7a8900f7863b61757e47ad61373edb5ab26ca Mon Sep 17 00:00:00 2001 From: Finagolfin Date: Sun, 11 Jun 2023 21:30:58 +0530 Subject: [PATCH] Remove unused runtime library path on non-Darwin platforms Fixes apple/swift#63416 --- Sources/SwiftDriver/Jobs/Toolchain+LinkerSupport.swift | 3 ++- Tests/SwiftDriverTests/SwiftDriverTests.swift | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/Sources/SwiftDriver/Jobs/Toolchain+LinkerSupport.swift b/Sources/SwiftDriver/Jobs/Toolchain+LinkerSupport.swift index 8cde8e9cd..0f3690ea4 100644 --- a/Sources/SwiftDriver/Jobs/Toolchain+LinkerSupport.swift +++ b/Sources/SwiftDriver/Jobs/Toolchain+LinkerSupport.swift @@ -46,7 +46,8 @@ extension Toolchain { result.append(path) } - if let sdkPath = sdkPath.map(VirtualPath.lookup) { + // Only Darwin places libraries directly in /sdk/usr/lib/swift/. + if triple.isDarwin, let sdkPath = sdkPath.map(VirtualPath.lookup) { // If we added the secondary resource dir, we also need the iOSSupport directory. if secondaryResourceDir != nil { result.append(sdkPath.appending(components: "System", "iOSSupport", "usr", "lib", "swift")) diff --git a/Tests/SwiftDriverTests/SwiftDriverTests.swift b/Tests/SwiftDriverTests/SwiftDriverTests.swift index 1cc362ea0..0e81b4638 100644 --- a/Tests/SwiftDriverTests/SwiftDriverTests.swift +++ b/Tests/SwiftDriverTests/SwiftDriverTests.swift @@ -4767,6 +4767,9 @@ final class SwiftDriverTests: XCTestCase { var driver = try Driver(args: ["swiftc", "foo.swift", "-sdk", "/"]) let plannedJobs = try driver.planBuild() XCTAssertTrue(plannedJobs[0].commandLine.contains(subsequence: ["-sdk", .path(.absolute(.init("/")))])) + if !driver.targetTriple.isDarwin { + XCTAssertFalse(plannedJobs[2].commandLine.contains(subsequence: ["-L", .path(.absolute(.init("/usr/lib/swift")))])) + } } func testDumpASTOverride() throws {