summaryrefslogtreecommitdiffstats
path: root/Source/cmBinUtilsLinuxELFLinker.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'Source/cmBinUtilsLinuxELFLinker.cxx')
-rw-r--r--Source/cmBinUtilsLinuxELFLinker.cxx9
1 files changed, 7 insertions, 2 deletions
diff --git a/Source/cmBinUtilsLinuxELFLinker.cxx b/Source/cmBinUtilsLinuxELFLinker.cxx
index a69c00d..5972202 100644
--- a/Source/cmBinUtilsLinuxELFLinker.cxx
+++ b/Source/cmBinUtilsLinuxELFLinker.cxx
@@ -154,8 +154,13 @@ bool cmBinUtilsLinuxELFLinker::ScanDependencies(
if (!this->Archive->IsPostExcluded(path)) {
bool unique;
this->Archive->AddResolvedPath(dep, path, unique);
- if (unique && !this->ScanDependencies(path, rpaths)) {
- return false;
+ if (unique) {
+ std::vector<std::string> combinedParentRpaths = parentRpaths;
+ combinedParentRpaths.insert(combinedParentRpaths.end(),
+ rpaths.begin(), rpaths.end());
+ if (!this->ScanDependencies(path, combinedParentRpaths)) {
+ return false;
+ }
}
}
} else {