mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-12-22 21:53:32 +00:00
27 lines
1.1 KiB
Diff
27 lines
1.1 KiB
Diff
Patch paths to use the separate 'lib' output. One of the things this patch
|
|
fixes is the output of `swift -frontend -print-target-info`, which swiftpm uses
|
|
to set rpath on Linux.
|
|
|
|
The check if the executable path starts with 'out' is necessary for
|
|
bootstrapping, or the compiler will fail when run from the build directory.
|
|
|
|
--- a/lib/Frontend/CompilerInvocation.cpp
|
|
+++ b/lib/Frontend/CompilerInvocation.cpp
|
|
@@ -49,11 +49,16 @@ swift::CompilerInvocation::CompilerInvocation() {
|
|
void CompilerInvocation::computeRuntimeResourcePathFromExecutablePath(
|
|
StringRef mainExecutablePath, bool shared,
|
|
llvm::SmallVectorImpl<char> &runtimeResourcePath) {
|
|
+ if (mainExecutablePath.startswith("@storeDir@")) {
|
|
+ auto libPath = StringRef("@lib@");
|
|
+ runtimeResourcePath.append(libPath.begin(), libPath.end());
|
|
+ } else {
|
|
runtimeResourcePath.append(mainExecutablePath.begin(),
|
|
mainExecutablePath.end());
|
|
|
|
llvm::sys::path::remove_filename(runtimeResourcePath); // Remove /swift
|
|
llvm::sys::path::remove_filename(runtimeResourcePath); // Remove /bin
|
|
+ }
|
|
appendSwiftLibDir(runtimeResourcePath, shared);
|
|
}
|
|
|