Skip to content

Commit 9f8f6c6

Browse files
authored
Merge pull request #669 from compnerd/static-dsym
Driver: do not create a dSYM bundle for static archives
2 parents 4b61dc4 + 917c66d commit 9f8f6c6

File tree

2 files changed

+30
-2
lines changed

2 files changed

+30
-2
lines changed

Sources/SwiftDriver/Jobs/Planning.swift

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -472,8 +472,18 @@ extension Driver {
472472

473473
let linkJ = try linkJob(inputs: linkerInputs)
474474
addJob(linkJ)
475-
guard targetTriple.isDarwin, debugInfo.level != nil
476-
else {return }
475+
guard targetTriple.isDarwin
476+
else { return }
477+
478+
switch linkerOutputType {
479+
case .none, .some(.staticLibrary):
480+
// Cannot generate a dSYM bundle for a non-image target.
481+
return
482+
483+
case .some(.dynamicLibrary), .some(.executable):
484+
guard debugInfo.level != nil
485+
else { return }
486+
}
477487

478488
let dsymJob = try generateDSYMJob(inputs: linkJ.outputs)
479489
addJob(dsymJob)

Tests/SwiftDriverTests/SwiftDriverTests.swift

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3078,6 +3078,24 @@ final class SwiftDriverTests: XCTestCase {
30783078
XCTAssertFalse(plannedJobs.contains { $0.kind == .generateDSYM })
30793079
}
30803080

3081+
do {
3082+
var env = ProcessEnv.vars
3083+
// As per Unix conventions, /var/empty is expected to exist and be empty.
3084+
// This gives us a non-existent path that we can use for libtool which
3085+
// allows us to run this this on non-Darwin platforms.
3086+
env["SWIFT_DRIVER_LIBTOOL_EXEC"] = "/var/empty/libtool"
3087+
3088+
// No dSYM generation (-g -emit-library -static)
3089+
var driver = try Driver(args: [
3090+
"swiftc", "-target", "x86_64-apple-macosx10.15", "-g", "-emit-library",
3091+
"-static", "-o", "library.a", "library.swift"
3092+
], env: env)
3093+
let jobs = try driver.planBuild()
3094+
3095+
XCTAssertEqual(jobs.count, 3)
3096+
XCTAssertFalse(jobs.contains { $0.kind == .generateDSYM })
3097+
}
3098+
30813099
do {
30823100
// dSYM generation (-g)
30833101
var driver = try Driver(args: commonArgs + ["-g"])

0 commit comments

Comments
 (0)