summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorChuck Atkins <chuck.atkins@kitware.com>2010-02-15 16:22:36 (GMT)
committerBrad King <brad.king@kitware.com>2010-03-26 13:33:28 (GMT)
commite750761857fa2e35ad9630b13606570c561ae829 (patch)
tree9baea65512a386950c970a08374a74d96235dd1c /Source
parenta8abb30c38443dbd5063df05bcdceb233c9678ff (diff)
downloadCMake-e750761857fa2e35ad9630b13606570c561ae829.zip
CMake-e750761857fa2e35ad9630b13606570c561ae829.tar.gz
CMake-e750761857fa2e35ad9630b13606570c561ae829.tar.bz2
OpenBSD: Work-around static/runtime linker inconsistency
Detect the runtime linker's search path and add to the compile time linker's search path. This is needed because OpenBSD's static linker does not search for shared library dependencies in the same places as the runtime linker.
Diffstat (limited to 'Source')
-rw-r--r--Source/cmComputeLinkInformation.cxx10
-rw-r--r--Source/cmComputeLinkInformation.h3
2 files changed, 13 insertions, 0 deletions
diff --git a/Source/cmComputeLinkInformation.cxx b/Source/cmComputeLinkInformation.cxx
index 69a4d22..d84da52 100644
--- a/Source/cmComputeLinkInformation.cxx
+++ b/Source/cmComputeLinkInformation.cxx
@@ -376,6 +376,8 @@ cmComputeLinkInformation
{
this->OrderDependentRPath
->SetImplicitDirectories(this->ImplicitLinkDirs);
+ this->OrderDependentRPath
+ ->AddLanguageDirectories(this->RuntimeLinkDirs);
}
// Decide whether to enable compatible library search path mode.
@@ -1642,6 +1644,14 @@ void cmComputeLinkInformation::LoadImplicitLinkInfo()
this->ImplicitLinkLibs.insert(item);
}
}
+
+ // Get platform specific rpath link directories
+ if(const char *rpathDirs =
+ (this->Makefile->GetDefinition
+ ("CMAKE_PLATFORM_RUNTIME_PATH")))
+ {
+ cmSystemTools::ExpandListArgument(rpathDirs, this->RuntimeLinkDirs);
+ }
}
//----------------------------------------------------------------------------
diff --git a/Source/cmComputeLinkInformation.h b/Source/cmComputeLinkInformation.h
index ad2026b..bbeed68 100644
--- a/Source/cmComputeLinkInformation.h
+++ b/Source/cmComputeLinkInformation.h
@@ -163,6 +163,9 @@ private:
std::set<cmStdString> ImplicitLinkDirs;
std::set<cmStdString> ImplicitLinkLibs;
+ // Additional paths configured by the runtime linker
+ std::vector<std::string> RuntimeLinkDirs;
+
// Linker search path compatibility mode.
std::set<cmStdString> OldLinkDirMask;
std::vector<std::string> OldLinkDirItems;