Skip to content

Commit fec9216

Browse files
Merge pull request #1635 from apple/eng/PR-dwarf5-6.0
Bump the DWARF version number to 5 on Darwin.
2 parents 2382bea + 43d60df commit fec9216

File tree

2 files changed

+44
-11
lines changed

2 files changed

+44
-11
lines changed

Sources/SwiftDriver/Toolchains/DarwinToolchain.swift

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -220,12 +220,25 @@ public final class DarwinToolchain: Toolchain {
220220
}
221221

222222
public func getDefaultDwarfVersion(targetTriple: Triple) -> UInt8 {
223-
if (targetTriple.isMacOSX && targetTriple.version(for: .macOS) < Triple.Version(10, 11, 0)) ||
223+
// Default to DWARF 2 on OS X 10.10 / iOS 8 and lower.
224+
// Default to DWARF 4 on OS X 10.11 - macOS 14 / iOS - iOS 17.
225+
if (targetTriple.isMacOSX && targetTriple.version(for: .macOS) < Triple.Version(10, 11, 0)) ||
224226
(targetTriple.isiOS && targetTriple.version(
225227
for: .iOS(targetTriple._isSimulatorEnvironment ? .simulator : .device)) < Triple.Version(9, 0, 0)) {
226228
return 2;
227229
}
228-
return 4
230+
if (targetTriple.isMacOSX && targetTriple.version(for: .macOS) < Triple.Version(15, 0, 0)) ||
231+
(targetTriple.isiOS && targetTriple.version(
232+
for: .iOS(targetTriple._isSimulatorEnvironment ? .simulator : .device)) < Triple.Version(18, 0, 0)) ||
233+
(targetTriple.isTvOS && targetTriple.version(
234+
for: .tvOS(targetTriple._isSimulatorEnvironment ? .simulator : .device)) < Triple.Version(18, 0, 0)) ||
235+
(targetTriple.isWatchOS && targetTriple.version(
236+
for: .watchOS(targetTriple._isSimulatorEnvironment ? .simulator : .device)) < Triple.Version(11, 0, 0)) ||
237+
(targetTriple.isVisionOS && targetTriple.version(
238+
for: .visionOS(targetTriple._isSimulatorEnvironment ? .simulator : .device)) < Triple.Version(2, 0, 0)){
239+
return 4
240+
}
241+
return 5
229242
}
230243

231244
func validateDeploymentTarget(_ parsedOptions: inout ParsedOptions,

Tests/SwiftDriverTests/SwiftDriverTests.swift

Lines changed: 29 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -661,15 +661,35 @@ final class SwiftDriverTests: XCTestCase {
661661
XCTAssertTrue(jobs[0].commandLine.contains(.flag("-dwarf-version=4")))
662662
}
663663

664-
// TODO: Enable once compiler support lands
665-
// try assertNoDriverDiagnostics(args: "swiftc", "foo.swift", "-g", "-c", "-target", "arm64-apple-xros1.0-simulator") { driver in
666-
// let jobs = try driver.planBuild()
667-
// XCTAssertTrue(jobs[0].commandLine.contains(.flag("-dwarf-version=4")))
668-
// }
669-
// try assertNoDriverDiagnostics(args: "swiftc", "foo.swift", "-g", "-c", "-target", "arm64-apple-xros1.0") { driver in
670-
// let jobs = try driver.planBuild()
671-
// XCTAssertTrue(jobs[0].commandLine.contains(.flag("-dwarf-version=4")))
672-
// }
664+
try assertNoDriverDiagnostics(args: "swiftc", "foo.swift", "-g", "-c", "-target", "x86_64-apple-macosx15") { driver in
665+
let jobs = try driver.planBuild()
666+
XCTAssertTrue(jobs[0].commandLine.contains(.flag("-dwarf-version=5")))
667+
}
668+
try assertNoDriverDiagnostics(args: "swiftc", "foo.swift", "-g", "-c", "-target", "arm64-apple-ios18.0") { driver in
669+
let jobs = try driver.planBuild()
670+
XCTAssertTrue(jobs[0].commandLine.contains(.flag("-dwarf-version=5")))
671+
}
672+
try assertNoDriverDiagnostics(args: "swiftc", "foo.swift", "-g", "-c", "-target", "arm64_32-apple-watchos11") { driver in
673+
let jobs = try driver.planBuild()
674+
XCTAssertTrue(jobs[0].commandLine.contains(.flag("-dwarf-version=5")))
675+
}
676+
try assertNoDriverDiagnostics(args: "swiftc", "foo.swift", "-g", "-c", "-target", "arm64-apple-tvos18") { driver in
677+
let jobs = try driver.planBuild()
678+
XCTAssertTrue(jobs[0].commandLine.contains(.flag("-dwarf-version=5")))
679+
}
680+
try assertNoDriverDiagnostics(args: "swiftc", "foo.swift", "-g", "-c", "-target", "arm64-apple-xros1.0-simulator") { driver in
681+
let jobs = try driver.planBuild()
682+
XCTAssertTrue(jobs[0].commandLine.contains(.flag("-dwarf-version=4")))
683+
}
684+
try assertNoDriverDiagnostics(args: "swiftc", "foo.swift", "-g", "-c", "-target", "arm64-apple-xros2.0") { driver in
685+
let jobs = try driver.planBuild()
686+
XCTAssertTrue(jobs[0].commandLine.contains(.flag("-dwarf-version=5")))
687+
}
688+
689+
try assertNoDriverDiagnostics(args: "swiftc", "foo.swift", "-c", "-file-compilation-dir", ".") { driver in
690+
let jobs = try driver.planBuild()
691+
XCTAssertFalse(jobs[0].commandLine.contains(.flag("-file-compilation-dir")))
692+
}
673693
}
674694

675695
func testCoverageSettings() throws {

0 commit comments

Comments
 (0)