Skip to content

Commit bd99648

Browse files
committed
Pass -enable-experimental-feature Embedded to -print-target-info
This is needed to get the proper runtime library paths. Fixes issue #80570 / rdar://148705734.
1 parent 1c78d00 commit bd99648

File tree

3 files changed

+27
-2
lines changed

3 files changed

+27
-2
lines changed

Sources/SwiftDriver/Jobs/Planning.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -715,7 +715,8 @@ extension Driver {
715715
resourceDirPath: resourceDirPath,
716716
requiresInPlaceExecution: true,
717717
useStaticResourceDir: useStaticResourceDir,
718-
swiftCompilerPrefixArgs: swiftCompilerPrefixArgs)
718+
swiftCompilerPrefixArgs: swiftCompilerPrefixArgs,
719+
isEmbedded: parsedOptions.isEmbeddedEnabled)
719720
}
720721

721722
if parsedOptions.hasArgument(.printSupportedFeatures) {

Sources/SwiftDriver/Jobs/PrintTargetInfoJob.swift

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,9 @@ extension Toolchain {
134134
runtimeCompatibilityVersion: String? = nil,
135135
requiresInPlaceExecution: Bool = false,
136136
useStaticResourceDir: Bool = false,
137-
swiftCompilerPrefixArgs: [String]) throws -> Job {
137+
swiftCompilerPrefixArgs: [String],
138+
isEmbedded: Bool = false
139+
) throws -> Job {
138140
var commandLine: [Job.ArgTemplate] = swiftCompilerPrefixArgs.map { Job.ArgTemplate.flag($0) }
139141
commandLine.append(contentsOf: [.flag("-frontend"),
140142
.flag("-print-target-info")])
@@ -168,6 +170,13 @@ extension Toolchain {
168170
commandLine += [.flag("-use-static-resource-dir")]
169171
}
170172

173+
if isEmbedded {
174+
commandLine += [
175+
.flag("-enable-experimental-feature"),
176+
.flag("Embedded")
177+
]
178+
}
179+
171180
return Job(
172181
moduleName: "",
173182
kind: .printTargetInfo,

Tests/SwiftDriverTests/SwiftDriverTests.swift

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6949,6 +6949,21 @@ final class SwiftDriverTests: XCTestCase {
69496949
XCTAssertFalse(linkJob.commandLine.joinedUnresolvedArguments.contains("swiftrt.o"))
69506950
}
69516951

6952+
// Printing target info needs to pass through the experimental flag.
6953+
do {
6954+
var driver = try Driver(args: [
6955+
"swiftc",
6956+
"-target",
6957+
"aarch64-none-none-elf",
6958+
"-enable-experimental-feature", "Embedded",
6959+
"-print-target-info"
6960+
], env: env)
6961+
6962+
let jobs = try driver.planBuild()
6963+
let targetInfoJob = try jobs.findJob(.printTargetInfo)
6964+
XCTAssertTrue(targetInfoJob.commandLine.contains(.flag("Embedded")))
6965+
}
6966+
69526967
// Embedded Wasm compile job
69536968
do {
69546969
var driver = try Driver(args: ["swiftc", "-target", "wasm32-none-none-wasm", "test.swift", "-enable-experimental-feature", "Embedded", "-wmo", "-o", "a.wasm"], env: env)

0 commit comments

Comments
 (0)