Skip to content

Commit e96e7cc

Browse files
committed
Driver: look for the runtime object in the SDK
The runtime object is for the host, and is part of the SDK. If `-sdk` is passed, look for the runtime support object relative to the SDK root.
1 parent 504e12c commit e96e7cc

File tree

2 files changed

+9
-3
lines changed

2 files changed

+9
-3
lines changed

lib/Driver/ToolChains.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1168,6 +1168,11 @@ void ToolChain::getResourceDirPath(SmallVectorImpl<char> &resourceDirPath,
11681168
if (const Arg *A = args.getLastArg(options::OPT_resource_dir)) {
11691169
StringRef value = A->getValue();
11701170
resourceDirPath.append(value.begin(), value.end());
1171+
} else if (!getTriple().isOSDarwin() && args.hasArg(options::OPT_sdk)) {
1172+
StringRef value = args.getLastArg(options::OPT_sdk)->getValue();
1173+
resourceDirPath.append(value.begin(), value.end());
1174+
llvm::sys::path::append(resourceDirPath, "usr", "lib",
1175+
shared ? "swift" : "swift_static");
11711176
} else {
11721177
auto programPath = getDriver().getSwiftProgramPath();
11731178
resourceDirPath.append(programPath.begin(), programPath.end());

test/Driver/sdk.swift

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// RUN: %swiftc_driver -driver-print-jobs -target x86_64-apple-macosx10.9 -g -sdk %S/../Inputs/clang-importer-sdk %s 2>&1 | %FileCheck %s --check-prefix OSX
2-
// RUN: %swiftc_driver -driver-print-jobs -target x86_64-unknown-linux-gnu -g -sdk %S/../Inputs/clang-importer-sdk %s 2>&1 | %FileCheck %s --check-prefix LINUX
2+
// RUN: %swiftc_driver -driver-print-jobs -target x86_64-unknown-linux-gnu -g -sdk %S/../Inputs/clang-importer-sdk %s 2>&1 | %FileCheck %s --check-prefix LINUX
33
// RUN: %swiftc_driver -driver-print-jobs -target x86_64-unknown-freebsd -g -sdk %S/../Inputs/clang-importer-sdk %s 2>&1 | %FileCheck %s --check-prefix FREEBSD
4-
// RUN: %swiftc_driver -driver-print-jobs -target x86_64-unknown-windows-msvc -g -sdk %S/../Inputs/clang-importer-sdk %s 2>&1 | %FileCheck %s --check-prefix WINDOWS
4+
// RUN: %swiftc_driver -driver-print-jobs -target x86_64-unknown-windows-msvc -g -sdk %S/../Inputs/clang-importer-sdk %s 2>&1 | %FileCheck %s --check-prefix WINDOWS
55

66
// RUN: env SDKROOT=%S/../Inputs/clang-importer-sdk %swiftc_driver_plain -target x86_64-apple-macosx10.9 -g -driver-print-jobs %s 2>&1 | %FileCheck %s --check-prefix OSX
77
// RUN: env SDKROOT=%S/../Inputs/clang-importer-sdk %swiftc_driver_plain -target x86_64-unknown-linux-gnu -g -driver-print-jobs %s 2>&1 | %FileCheck %s --check-prefix LINUX
@@ -42,7 +42,7 @@
4242
// WINDOWS: -sdk {{.*}}/Inputs/clang-importer-sdk
4343
// WINDOWS-NEXT: bin{{/|\\\\}}swift
4444
// WINDOWS: -sdk {{.*}}/Inputs/clang-importer-sdk
45-
// WINDOWS: {{.*}}swiftrt.o
45+
// WINDOWS: {{.*}}Inputs/clang-importer-sdk{{.*}}swiftrt.o
4646
// WINDOWS: {{-I}} {{.*}}/Inputs/clang-importer-sdk
4747

4848
// RUN: %swift_driver -driver-print-jobs -repl -sdk %S/Inputs/nonexistent-sdk 2>&1 | %FileCheck %s --check-prefix=SDKWARNING
@@ -55,3 +55,4 @@
5555
// RUN: %swiftc_driver -driver-print-jobs -typecheck -sdk %S/../Inputs/clang-importer-sdk -module-cache-path /path/to/cache %s 2>&1 | %FileCheck %s --check-prefix=CACHE-PATH
5656

5757
// CACHE-PATH: -module-cache-path /path/to/cache
58+

0 commit comments

Comments
 (0)