about summary refs log tree commit diff
path: root/pkgs/development/tools/misc/ycmd/2-ycm-cmake.patch
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/tools/misc/ycmd/2-ycm-cmake.patch')
-rw-r--r--pkgs/development/tools/misc/ycmd/2-ycm-cmake.patch40
1 files changed, 40 insertions, 0 deletions
diff --git a/pkgs/development/tools/misc/ycmd/2-ycm-cmake.patch b/pkgs/development/tools/misc/ycmd/2-ycm-cmake.patch
new file mode 100644
index 000000000000..76b996ec2cca
--- /dev/null
+++ b/pkgs/development/tools/misc/ycmd/2-ycm-cmake.patch
@@ -0,0 +1,40 @@
+diff --git a/cpp/ycm/CMakeLists.txt b/cpp/ycm/CMakeLists.txt
+index 2074c58e..9ecd6e57 100644
+--- a/cpp/ycm/CMakeLists.txt
++++ b/cpp/ycm/CMakeLists.txt
+@@ -366,35 +366,6 @@ if( LIBCLANG_TARGET )
+       POST_BUILD
+       COMMAND ${CMAKE_COMMAND} -E copy "${LIBCLANG_TARGET}" "$<TARGET_FILE_DIR:${PROJECT_NAME}>"
+     )
+-
+-    if( APPLE )
+-      # In OS X El Capitan, Apple introduced System Integrity Protection.
+-      # Amongst other things, this introduces features to the dynamic loader
+-      # (dyld) which cause it to "sanitise" (and complain about) embedded
+-      # LC_RPATH entries which contain @executable_path when then are loaded
+-      # into "restricted" binaries.  For our purposes, "restricted" here means
+-      # "supplied by Apple" and includes the system versions of python.  For
+-      # unknown reasons, the libclang.dylib that comes from llvm.org includes an
+-      # LC_RPATH entry '@executable_path/../lib' which causes the OS X dynamic
+-      # loader to print a cryptic warning to stderr of the form:
+-      #
+-      #    dyld: warning, LC_RPATH @executable_path/../lib in
+-      #    /path/to/ycmd/libclang.dylib being ignored in restricted program
+-      #    because of @executable_path
+-      #
+-      # In order to prevent this harmless and annoying message appearing, we
+-      # simply strip the rpath entry from the dylib.  There's no way any
+-      # @executable_path that python might have could be in any way useful to
+-      # libclang.dylib, so this seems perfectly safe.
+-      get_filename_component( LIBCLANG_TAIL ${LIBCLANG_TARGET} NAME )
+-      add_custom_command( TARGET ${PROJECT_NAME}
+-                          POST_BUILD
+-                          COMMAND install_name_tool
+-                          "-delete_rpath"
+-                          "@executable_path/../lib"
+-                          "$<TARGET_FILE_DIR:${PROJECT_NAME}>/${LIBCLANG_TAIL}"
+-                        )
+-    endif()
+   endif()
+ endif()
+