From 0d31c3aafb2db4d40b5ed96a3b47f431c9bb9e77 Mon Sep 17 00:00:00 2001 From: Brad King Date: Thu, 11 Jun 2009 14:57:47 -0400 Subject: [PATCH] BUG: Do not create empty build-tree RPATH The fix for issue #9130 appends ':' to the end of the build-tree RPATH unconditionally. This changes the fix to add ':' only when the RPATH is not empty so that we do not create a build-tree RPATH with just ':'. An empty RPATH produces no string at all, so there is no chance of merging with a symbol name anyway. --- Source/cmComputeLinkInformation.cxx | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/Source/cmComputeLinkInformation.cxx b/Source/cmComputeLinkInformation.cxx index cd3ca5775..03b85711f 100644 --- a/Source/cmComputeLinkInformation.cxx +++ b/Source/cmComputeLinkInformation.cxx @@ -1708,10 +1708,13 @@ std::string cmComputeLinkInformation::GetRPathString(bool for_install) // If the rpath will be replaced at install time, prepare space. if(!for_install && this->RuntimeUseChrpath) { - // Always add one trailing separator so the linker does not re-use - // the rpath .dynstr entry for a symbol name that happens to match - // the end of the rpath string. - rpath += this->GetRuntimeSep(); + if(!rpath.empty()) + { + // Add one trailing separator so the linker does not re-use the + // rpath .dynstr entry for a symbol name that happens to match + // the end of the rpath string. + rpath += this->GetRuntimeSep(); + } // Make sure it is long enough to hold the replacement value. std::string::size_type minLength = this->GetChrpathString().length();