[Cmake-commits] CMake branch, next, updated. v2.8.4-1513-gd608907

Brad King brad.king at kitware.com
Tue May 10 11:30:06 EDT 2011


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".

The branch, next has been updated
       via  d6089073826bf1423eafadf98f50a78ff73463a6 (commit)
       via  8fc3baba7c11c83d9b12fdeb724570df830a1de3 (commit)
       via  2f97fcc84b0048c83be3e2706046a9ed68435614 (commit)
      from  c47d25f36901e42e8dac310ed7cc4efc7f45adfd (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d6089073826bf1423eafadf98f50a78ff73463a6
commit d6089073826bf1423eafadf98f50a78ff73463a6
Merge: c47d25f 8fc3bab
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Tue May 10 11:30:02 2011 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Tue May 10 11:30:02 2011 -0400

    Merge topic 'irix-install-RPATH-issue-12173' into next
    
    8fc3bab IRIX: Work around trailing separator removal in RPATH (#12173)
    2f97fcc IRIX: Edit RPATH during install instead of relinking (#12173)


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=8fc3baba7c11c83d9b12fdeb724570df830a1de3
commit 8fc3baba7c11c83d9b12fdeb724570df830a1de3
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Tue May 10 11:24:04 2011 -0400
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Tue May 10 11:24:04 2011 -0400

    IRIX: Work around trailing separator removal in RPATH (#12173)
    
    At least one version of "ld" on this platform removes one trailing
    separator from the end of the -rpath value.  This interferes with
    CMake's RPATH placeholder generation needed to rewrite the RPATH during
    installation.  Work around the problem by appending one '/' to the end
    of the build-tree copy of the RPATH so it will not be truncated.

diff --git a/Modules/Platform/IRIX.cmake b/Modules/Platform/IRIX.cmake
index 9bf159a..bbed246 100644
--- a/Modules/Platform/IRIX.cmake
+++ b/Modules/Platform/IRIX.cmake
@@ -2,6 +2,7 @@ SET(CMAKE_DL_LIBS "")
 SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-shared -rdata_shared")
 SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,")       # -rpath
 SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP ":")   # : or empty
+SET(CMAKE_PLATFORM_RPATH_PLACEHOLDER_END "/")
 IF(NOT CMAKE_COMPILER_IS_GNUCXX)
   SET(CMAKE_CXX_CREATE_STATIC_LIBRARY
       "<CMAKE_CXX_COMPILER> -ar -o <TARGET> <OBJECTS>")
diff --git a/Modules/Platform/IRIX64.cmake b/Modules/Platform/IRIX64.cmake
index c13cf4e..c254c94 100644
--- a/Modules/Platform/IRIX64.cmake
+++ b/Modules/Platform/IRIX64.cmake
@@ -2,6 +2,7 @@ SET(CMAKE_DL_LIBS "")
 SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-shared -rdata_shared")
 SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,")       # -rpath
 SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP ":")   # : or empty
+SET(CMAKE_PLATFORM_RPATH_PLACEHOLDER_END "/")
 SET(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-Wl,-soname,")
 IF(NOT CMAKE_COMPILER_IS_GNUCC)
   # Set default flags init.
diff --git a/Source/cmComputeLinkInformation.cxx b/Source/cmComputeLinkInformation.cxx
index e3c33a2..25c6bfc 100644
--- a/Source/cmComputeLinkInformation.cxx
+++ b/Source/cmComputeLinkInformation.cxx
@@ -307,6 +307,9 @@ cmComputeLinkInformation
     std::string rtSepVar = rtVar + "_SEP";
     this->RuntimeFlag = this->Makefile->GetSafeDefinition(rtVar.c_str());
     this->RuntimeSep = this->Makefile->GetSafeDefinition(rtSepVar.c_str());
+    this->RuntimeEnd =
+      (this->Makefile->
+       GetSafeDefinition("CMAKE_PLATFORM_RPATH_PLACEHOLDER_END"));
     this->RuntimeAlways =
       (this->Makefile->
        GetSafeDefinition("CMAKE_PLATFORM_REQUIRED_RUNTIME_PATH"));
@@ -1824,6 +1827,10 @@ std::string cmComputeLinkInformation::GetRPathString(bool for_install)
       {
       rpath += this->GetRuntimeSep();
       }
+
+    // Some linkers (e.g. SGI ld 7.44) remove one trailing separator
+    // so we may add a bogus trailing path.
+    rpath += this->RuntimeEnd;
     }
 
   return rpath;
diff --git a/Source/cmComputeLinkInformation.h b/Source/cmComputeLinkInformation.h
index bbeed68..5f9d6c2 100644
--- a/Source/cmComputeLinkInformation.h
+++ b/Source/cmComputeLinkInformation.h
@@ -100,6 +100,7 @@ private:
   std::string LibLinkSuffix;
   std::string RuntimeFlag;
   std::string RuntimeSep;
+  std::string RuntimeEnd;
   std::string RuntimeAlways;
   bool RuntimeUseChrpath;
   bool NoSONameUsesPath;
diff --git a/Source/cmDocumentVariables.cxx b/Source/cmDocumentVariables.cxx
index f2431e6..8cd75cb 100644
--- a/Source/cmDocumentVariables.cxx
+++ b/Source/cmDocumentVariables.cxx
@@ -1525,6 +1525,8 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
                      cmProperty::VARIABLE,0,0);
   cm->DefineProperty("CMAKE_EXECUTABLE_RPATH_LINK_<LANG>_FLAG",
                      cmProperty::VARIABLE,0,0);
+  cm->DefineProperty("CMAKE_PLATFORM_RPATH_PLACEHOLDER_END",
+                     cmProperty::VARIABLE,0,0);
   cm->DefineProperty("CMAKE_PLATFORM_REQUIRED_RUNTIME_PATH",
                      cmProperty::VARIABLE,0,0);
   cm->DefineProperty("CMAKE_SHARED_MODULE_CREATE_<LANG>_FLAGS",

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=2f97fcc84b0048c83be3e2706046a9ed68435614
commit 2f97fcc84b0048c83be3e2706046a9ed68435614
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Tue May 10 11:11:46 2011 -0400
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Tue May 10 11:19:36 2011 -0400

    IRIX: Edit RPATH during install instead of relinking (#12173)
    
    Currently when CMake relinks binaries before installation to edit their
    RPATH it does not link the relinked binaries to each other but instead
    to the original build-tree copies.  This is problematic on IRIX as
    noted by "man ld":
    
      Note that the DT_RPATHs of any dependent DSOs are implicitly included
      in the DT_RPATH of the executable or DSO being created and that any
      library paths added with -rpath are appended to this initial list.
    
    IRIX uses ELF binaries so CMake knows how to edit the RPATH during
    installation.  The linker now supports ':' to separate path entries on
    the command line, so set the _RUNTIME_*_FLAG_SEP variable.  This also
    activates CMake's ELF editing capabilities and disables relinking.
    
    Reported-by: Peter O'Gorman <pogma at thewrittenword.com>

diff --git a/Modules/Platform/IRIX.cmake b/Modules/Platform/IRIX.cmake
index fac941f..9bf159a 100644
--- a/Modules/Platform/IRIX.cmake
+++ b/Modules/Platform/IRIX.cmake
@@ -1,7 +1,7 @@
 SET(CMAKE_DL_LIBS "")
 SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-shared -rdata_shared")
 SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,")       # -rpath
-SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP "")   # : or empty
+SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP ":")   # : or empty
 IF(NOT CMAKE_COMPILER_IS_GNUCXX)
   SET(CMAKE_CXX_CREATE_STATIC_LIBRARY
       "<CMAKE_CXX_COMPILER> -ar -o <TARGET> <OBJECTS>")
diff --git a/Modules/Platform/IRIX64.cmake b/Modules/Platform/IRIX64.cmake
index b60a7f2..c13cf4e 100644
--- a/Modules/Platform/IRIX64.cmake
+++ b/Modules/Platform/IRIX64.cmake
@@ -1,7 +1,7 @@
 SET(CMAKE_DL_LIBS "")
 SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-shared -rdata_shared")
 SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,")       # -rpath
-SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP "")   # : or empty
+SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP ":")   # : or empty
 SET(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-Wl,-soname,")
 IF(NOT CMAKE_COMPILER_IS_GNUCC)
   # Set default flags init.

-----------------------------------------------------------------------

Summary of changes:
 Modules/Platform/IRIX.cmake         |    3 ++-
 Modules/Platform/IRIX64.cmake       |    3 ++-
 Source/cmComputeLinkInformation.cxx |    7 +++++++
 Source/cmComputeLinkInformation.h   |    1 +
 Source/cmDocumentVariables.cxx      |    2 ++
 5 files changed, 14 insertions(+), 2 deletions(-)


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list