Work around FreeBSD rtld rpath $ORIGIN limitation
authorEd Maste <emaste@freebsd.org>
Sun, 9 Mar 2014 18:48:45 +0000 (18:48 +0000)
committerEd Maste <emaste@freebsd.org>
Sun, 9 Mar 2014 18:48:45 +0000 (18:48 +0000)
FreeBSD's rtld requires the DF_ORIGIN flag set in order to process
$ORIGIN in rpath.

FreeBSD bug http://bugs.freebsd.org/187114

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@203419 91177308-0d34-0410-b5e6-96231b3b80d8

CMakeLists.txt

index f3a09dd9f52213ab635758fb9673ccf541e689da..7c315cbe4b0bf4963fca4112219356dc67dc0787 100644 (file)
@@ -445,6 +445,9 @@ if (APPLE)
 else(UNIX)
   if(NOT DEFINED CMAKE_INSTALL_RPATH)
     set(CMAKE_INSTALL_RPATH "\$ORIGIN/../lib")
+    if (${CMAKE_SYSTEM_NAME} MATCHES FreeBSD)
+      set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-z,origin")
+    endif()
   endif(NOT DEFINED CMAKE_INSTALL_RPATH)
 endif()