diff --git a/Sources/SwiftDriver/Jobs/GenericUnixToolchain+LinkerSupport.swift b/Sources/SwiftDriver/Jobs/GenericUnixToolchain+LinkerSupport.swift index 35e50abb9..4959eebbf 100644 --- a/Sources/SwiftDriver/Jobs/GenericUnixToolchain+LinkerSupport.swift +++ b/Sources/SwiftDriver/Jobs/GenericUnixToolchain+LinkerSupport.swift @@ -217,14 +217,14 @@ extension GenericUnixToolchain { commandLine.appendPath(try VirtualPath(path: opt.argument.asSingle)) } - if targetTriple.environment == .android { - if let sysroot = parsedOptions.getLastArgument(.sysroot)?.asSingle { - commandLine.appendFlag("--sysroot") - try commandLine.appendPath(VirtualPath(path: sysroot)) - } else if let sysroot = AndroidNDK.getDefaultSysrootPath(in: self.env) { - commandLine.appendFlag("--sysroot") - try commandLine.appendPath(VirtualPath(path: sysroot.pathString)) - } + if let sysroot = parsedOptions.getLastArgument(.sysroot)?.asSingle { + commandLine.appendFlag("--sysroot") + try commandLine.appendPath(VirtualPath(path: sysroot)) + } else if targetTriple.environment == .android, + let sysroot = AndroidNDK.getDefaultSysrootPath(in: self.env) + { + commandLine.appendFlag("--sysroot") + try commandLine.appendPath(VirtualPath(path: sysroot.pathString)) } else if let path = targetInfo.sdkPath?.path { commandLine.appendFlag("--sysroot") commandLine.appendPath(VirtualPath.lookup(path)) diff --git a/Sources/SwiftDriver/Toolchains/GenericUnixToolchain.swift b/Sources/SwiftDriver/Toolchains/GenericUnixToolchain.swift index 6f143b525..11efe7c3e 100644 --- a/Sources/SwiftDriver/Toolchains/GenericUnixToolchain.swift +++ b/Sources/SwiftDriver/Toolchains/GenericUnixToolchain.swift @@ -152,17 +152,16 @@ public final class GenericUnixToolchain: Toolchain { frontendTargetInfo: FrontendTargetInfo, driver: inout Driver ) throws { - if driver.targetTriple.environment == .android { - if let sysroot = driver.parsedOptions.getLastArgument(.sysroot)?.asSingle { - commandLine.appendFlag("-sysroot") - try commandLine.appendPath(VirtualPath(path: sysroot)) - } else if let sysroot = AndroidNDK.getDefaultSysrootPath(in: self.env) { - commandLine.appendFlag("-sysroot") - try commandLine.appendPath(VirtualPath(path: sysroot.pathString)) - } + if let sysroot = driver.parsedOptions.getLastArgument(.sysroot)?.asSingle { + commandLine.appendFlag("-sysroot") + try commandLine.appendPath(VirtualPath(path: sysroot)) + } else if driver.targetTriple.environment == .android, + let sysroot = AndroidNDK.getDefaultSysrootPath(in: self.env) + { + commandLine.appendFlag("-sysroot") + try commandLine.appendPath(VirtualPath(path: sysroot.pathString)) } - if driver.targetTriple.os == .openbsd && driver.targetTriple.arch == .aarch64 { commandLine.appendFlag(.Xcc) commandLine.appendFlag("-Xclang=-msign-return-address=non-leaf") diff --git a/Tests/SwiftDriverTests/SwiftDriverTests.swift b/Tests/SwiftDriverTests/SwiftDriverTests.swift index 3652fe70c..2d7724f56 100644 --- a/Tests/SwiftDriverTests/SwiftDriverTests.swift +++ b/Tests/SwiftDriverTests/SwiftDriverTests.swift @@ -7908,7 +7908,7 @@ final class SwiftDriverTests: XCTestCase { do { let sysroot = path.appending(component: "sysroot") var driver = try Driver(args: [ - "swiftc", "-target", "aarch64-unknown-linux-android", "-sysroot", sysroot.pathString, #file + "swiftc", "-target", "aarch64-unknown-linux-gnu", "-sysroot", sysroot.pathString, #file ], env: env) let jobs = try driver.planBuild().removingAutolinkExtractJobs() let frontend = try XCTUnwrap(jobs.first)