Skip to content

Commit 2738900

Browse files
authored
Merge pull request #1480 from finagolfin/release/5.10
2 parents fce44ae + d9a3378 commit 2738900

File tree

2 files changed

+6
-11
lines changed

2 files changed

+6
-11
lines changed

Sources/SwiftDriver/Jobs/AutolinkExtractJob.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@ import struct TSCBasic.RelativePath
1818
// FIXME: Also handle Cygwin and MinGW
1919
extension Driver {
2020
/*@_spi(Testing)*/ public var isAutolinkExtractJobNeeded: Bool {
21-
[.elf, .wasm].contains(targetTriple.objectFormat) && lto == nil
21+
[.elf, .wasm].contains(targetTriple.objectFormat) && lto == nil &&
22+
linkerOutputType != nil
2223
}
2324

2425
mutating func autolinkExtractJob(inputs: [TypedVirtualPath]) throws -> Job? {

Tests/SwiftDriverTests/SwiftDriverTests.swift

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3358,25 +3358,19 @@ final class SwiftDriverTests: XCTestCase {
33583358
}
33593359
}
33603360

3361-
#if os(Linux) || os(Android)
3362-
let autoLinkExtractJob = 1
3363-
#else
3364-
let autoLinkExtractJob = 0
3365-
#endif
3366-
33673361
do {
33683362
// non library-evolution builds require a single job, because cross-module-optimization is enabled by default.
33693363
var driver = try Driver(args: ["swiftc", "foo.swift", "bar.swift", "-module-name", "Test", "-emit-module-path", rebase("Test.swiftmodule", at: root), "-c", "-o", rebase("test.o", at: root), "-wmo", "-O" ])
33703364
let plannedJobs = try driver.planBuild()
3371-
XCTAssertEqual(plannedJobs.count, 1 + autoLinkExtractJob)
3365+
XCTAssertEqual(plannedJobs.count, 1)
33723366
XCTAssertTrue(plannedJobs[0].commandLine.contains(.flag("-enable-default-cmo")))
33733367
}
33743368

33753369
do {
33763370
// library-evolution builds can emit the module in a separate job.
33773371
var driver = try Driver(args: ["swiftc", "foo.swift", "bar.swift", "-module-name", "Test", "-emit-module-path", rebase("Test.swiftmodule", at: root), "-c", "-o", rebase("test.o", at: root), "-wmo", "-O", "-enable-library-evolution" ])
33783372
let plannedJobs = try driver.planBuild()
3379-
XCTAssertEqual(plannedJobs.count, 2 + autoLinkExtractJob)
3373+
XCTAssertEqual(plannedJobs.count, 2)
33803374
XCTAssertFalse(plannedJobs[0].commandLine.contains(.flag("-enable-default-cmo")))
33813375
XCTAssertFalse(plannedJobs[1].commandLine.contains(.flag("-enable-default-cmo")))
33823376
}
@@ -3385,7 +3379,7 @@ final class SwiftDriverTests: XCTestCase {
33853379
// When disabling cross-module-optimization, the module can be emitted in a separate job.
33863380
var driver = try Driver(args: ["swiftc", "foo.swift", "bar.swift", "-module-name", "Test", "-emit-module-path", rebase("Test.swiftmodule", at: root), "-c", "-o", rebase("test.o", at: root), "-wmo", "-O", "-disable-cmo" ])
33873381
let plannedJobs = try driver.planBuild()
3388-
XCTAssertEqual(plannedJobs.count, 2 + autoLinkExtractJob)
3382+
XCTAssertEqual(plannedJobs.count, 2)
33893383
XCTAssertFalse(plannedJobs[0].commandLine.contains(.flag("-enable-default-cmo")))
33903384
XCTAssertFalse(plannedJobs[1].commandLine.contains(.flag("-enable-default-cmo")))
33913385
}
@@ -3394,7 +3388,7 @@ final class SwiftDriverTests: XCTestCase {
33943388
// non optimized builds can emit the module in a separate job.
33953389
var driver = try Driver(args: ["swiftc", "foo.swift", "bar.swift", "-module-name", "Test", "-emit-module-path", rebase("Test.swiftmodule", at: root), "-c", "-o", rebase("test.o", at: root), "-wmo" ])
33963390
let plannedJobs = try driver.planBuild()
3397-
XCTAssertEqual(plannedJobs.count, 2 + autoLinkExtractJob)
3391+
XCTAssertEqual(plannedJobs.count, 2)
33983392
XCTAssertFalse(plannedJobs[0].commandLine.contains(.flag("-enable-default-cmo")))
33993393
XCTAssertFalse(plannedJobs[1].commandLine.contains(.flag("-enable-default-cmo")))
34003394
}

0 commit comments

Comments
 (0)