[CMake] CMake Error: RPATH_CHANGE
    Marcel Loose 
    loose at astron.nl
       
    Mon Nov  9 11:26:15 EST 2009
    
    
  
Hi all,
I encountered the following problem when trying to 'make install' a
statically linked executable on a ppc64 platform. 
CMake Error at cmake_install.cmake:47 (FILE):
  file RPATH_CHANGE could not write new RPATH:
    /tmp/loose/cmake/cmake-rpath/install/lib
  to the file:
    /tmp/loose/cmake/cmake-rpath/install/bin/greetings
  No valid ELF RPATH or RUNPATH entry exists in the file;
I could not reproduce this on a x86_64 platform. It seems that the
generated file cmake_install.cmake is the culprit. Diff-ing the file
generated on the ppc64 system with that generated on the x86_64 system
yields:
@@ -37,8 +37,17 @@
 ENDIF(NOT CMAKE_INSTALL_COMPONENT OR "${CMAKE_INSTALL_COMPONENT}"
MATCHES "^(Unspecified)$")
 IF(NOT CMAKE_INSTALL_COMPONENT OR "${CMAKE_INSTALL_COMPONENT}" MATCHES
"^(Unspecified)$")
-  FILE(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE
EXECUTABLE FILES
"/tmp/loose/cmake/cmake-rpath/build/CMakeFiles/CMakeRelink.dir/greetings")
   IF(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/greetings")
+    FILE(RPATH_CHECK
+         FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/greetings"
+         RPATH "/tmp/loose/cmake/cmake-rpath/install/lib")
+  ENDIF(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/greetings")
+  FILE(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/bin" TYPE
EXECUTABLE FILES "/tmp/loose/cmake/cmake-rpath/build/greetings")
+  IF(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/greetings")
+    FILE(RPATH_CHANGE
+         FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/greetings"
+         OLD_RPATH "::::::::::::::::::::::::::::::::::::::::"
+         NEW_RPATH "/tmp/loose/cmake/cmake-rpath/install/lib")
     IF(CMAKE_INSTALL_DO_STRIP)
       EXECUTE_PROCESS(COMMAND "/usr/bin/strip"
"$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/greetings")
     ENDIF(CMAKE_INSTALL_DO_STRIP)
Both cmake 2.6.4 and 2.8.0-rc5 show this behaviour, which looks like a
bug to me.
Best regards,
Marcel Loose.
    
    
More information about the CMake
mailing list