about summary refs log tree commit diff
path: root/pkgs/development/compilers/llvm/16/llvm/gnu-install-dirs.patch
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/compilers/llvm/16/llvm/gnu-install-dirs.patch')
-rw-r--r--pkgs/development/compilers/llvm/16/llvm/gnu-install-dirs.patch161
1 files changed, 0 insertions, 161 deletions
diff --git a/pkgs/development/compilers/llvm/16/llvm/gnu-install-dirs.patch b/pkgs/development/compilers/llvm/16/llvm/gnu-install-dirs.patch
deleted file mode 100644
index 1c2d52d59ef2..000000000000
--- a/pkgs/development/compilers/llvm/16/llvm/gnu-install-dirs.patch
+++ /dev/null
@@ -1,161 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 7e25e0407db2..72f031a82b75 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -995,7 +995,7 @@ if (NOT TENSORFLOW_AOT_PATH STREQUAL "")
-   add_subdirectory(${TENSORFLOW_AOT_PATH}/xla_aot_runtime_src
-     ${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}/tf_runtime)
-   install(TARGETS tf_xla_runtime EXPORT LLVMExports
--    ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT tf_xla_runtime)
-+    ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX} COMPONENT tf_xla_runtime)
-   set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS tf_xla_runtime)
-   # Once we add more modules, we should handle this more automatically.
-   if (DEFINED LLVM_OVERRIDE_MODEL_HEADER_INLINERSIZEMODEL)
-diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake
-index 93e6d67551de..8d367457af5a 100644
---- a/cmake/modules/AddLLVM.cmake
-+++ b/cmake/modules/AddLLVM.cmake
-@@ -874,8 +874,8 @@ macro(add_llvm_library name)
-       get_target_export_arg(${name} LLVM export_to_llvmexports ${umbrella})
-       install(TARGETS ${name}
-               ${export_to_llvmexports}
--              LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT ${name}
--              ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT ${name}
-+              LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" COMPONENT ${name}
-+              ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" COMPONENT ${name}
-               RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT ${name})
- 
-       if (NOT LLVM_ENABLE_IDE)
-@@ -2043,7 +2043,7 @@ function(llvm_install_library_symlink name dest type)
-   set(full_name ${CMAKE_${type}_LIBRARY_PREFIX}${name}${CMAKE_${type}_LIBRARY_SUFFIX})
-   set(full_dest ${CMAKE_${type}_LIBRARY_PREFIX}${dest}${CMAKE_${type}_LIBRARY_SUFFIX})
- 
--  set(output_dir lib${LLVM_LIBDIR_SUFFIX})
-+  set(output_dir ${CMAKE_INSTALL_FULL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
-   if(WIN32 AND "${type}" STREQUAL "SHARED")
-     set(output_dir "${CMAKE_INSTALL_BINDIR}")
-   endif()
-@@ -2312,16 +2312,37 @@ function(llvm_setup_rpath name)
- 
-   if (APPLE)
-     set(_install_name_dir INSTALL_NAME_DIR "@rpath")
--    set(_install_rpath "@loader_path/../lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
-+    set(_install_rpath "@loader_path/../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
-   elseif(${CMAKE_SYSTEM_NAME} MATCHES "AIX" AND BUILD_SHARED_LIBS)
-     # $ORIGIN is not interpreted at link time by aix ld.
-     # Since BUILD_SHARED_LIBS is only recommended for use by developers,
-     # hardcode the rpath to build/install lib dir first in this mode.
-     # FIXME: update this when there is better solution.
--    set(_install_rpath "${LLVM_LIBRARY_OUTPUT_INTDIR}" "${CMAKE_INSTALL_PREFIX}/lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
-+    set(_install_rpath "${LLVM_LIBRARY_OUTPUT_INTDIR}" "${CMAKE_INSTALL_FULL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
-   elseif(UNIX)
--    set(_build_rpath "\$ORIGIN/../lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
--    set(_install_rpath "\$ORIGIN/../lib${LLVM_LIBDIR_SUFFIX}")
-+    # Note that we add `extra_libdir` (aka `LLVM_LIBRARY_DIR` in our case) back
-+    # to `_install_rpath` here.
-+    #
-+    # In nixpkgs we do not build and install LLVM alongside rdeps of LLVM (i.e.
-+    # clang); instead LLVM is its own package and thus lands at its own nix
-+    # store path. This makes it so that the default relative rpath (`../lib/`)
-+    # does not point at the LLVM shared objects.
-+    #
-+    # More discussion here:
-+    #   - https://github.com/NixOS/nixpkgs/pull/235624#discussion_r1220150329
-+    #   - https://reviews.llvm.org/D146918 (16.0.5+)
-+    #
-+    # Note that we leave `extra_libdir` in `_build_rpath`: without FHS there is
-+    # no potential that this will result in us pulling in the "wrong" LLVM.
-+    # Adding this to the build rpath means we aren't forced to use
-+    # `installCheckPhase` instead of `checkPhase` (i.e. binaries in the build
-+    # dir, pre-install, will have the right rpath for LLVM).
-+    #
-+    # As noted in the differential above, an alternative solution is to have
-+    # all rdeps of nixpkgs' LLVM (that use the AddLLVM.cmake machinery) set
-+    # `CMAKE_INSTALL_RPATH`.
-+    set(_build_rpath "\$ORIGIN/../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
-+    set(_install_rpath "\$ORIGIN/../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
-     if(${CMAKE_SYSTEM_NAME} MATCHES "(FreeBSD|DragonFly)")
-       set_property(TARGET ${name} APPEND_STRING PROPERTY
-                    LINK_FLAGS " -Wl,-z,origin ")
-diff --git a/cmake/modules/AddOCaml.cmake b/cmake/modules/AddOCaml.cmake
-index 891c9e6d618c..8d963f3b0069 100644
---- a/cmake/modules/AddOCaml.cmake
-+++ b/cmake/modules/AddOCaml.cmake
-@@ -147,9 +147,9 @@ function(add_ocaml_library name)
-   endforeach()
- 
-   if( APPLE )
--    set(ocaml_rpath "@executable_path/../../../lib${LLVM_LIBDIR_SUFFIX}")
-+    set(ocaml_rpath "@executable_path/../../../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}")
-   elseif( UNIX )
--    set(ocaml_rpath "\\$ORIGIN/../../../lib${LLVM_LIBDIR_SUFFIX}")
-+    set(ocaml_rpath "\\$ORIGIN/../../../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}")
-   endif()
-   list(APPEND ocaml_flags "-ldopt" "-Wl,-rpath,${ocaml_rpath}")
- 
-diff --git a/cmake/modules/CMakeLists.txt b/cmake/modules/CMakeLists.txt
-index d99af79aa38e..21e794224b99 100644
---- a/cmake/modules/CMakeLists.txt
-+++ b/cmake/modules/CMakeLists.txt
-@@ -127,7 +127,7 @@ set(LLVM_CONFIG_INCLUDE_DIRS
-   )
- list(REMOVE_DUPLICATES LLVM_CONFIG_INCLUDE_DIRS)
- 
--extend_path(LLVM_CONFIG_LIBRARY_DIR "\${LLVM_INSTALL_PREFIX}" "lib\${LLVM_LIBDIR_SUFFIX}")
-+extend_path(LLVM_CONFIG_LIBRARY_DIR "\${LLVM_INSTALL_PREFIX}" "${CMAKE_INSTALL_LIBDIR}\${LLVM_LIBDIR_SUFFIX}")
- set(LLVM_CONFIG_LIBRARY_DIRS
-   "${LLVM_CONFIG_LIBRARY_DIR}"
-   # FIXME: Should there be other entries here?
-diff --git a/docs/CMake.rst b/docs/CMake.rst
-index 7926de258ec8..5ae01adc3905 100644
---- a/docs/CMake.rst
-+++ b/docs/CMake.rst
-@@ -250,7 +250,7 @@ description is in `LLVM-related variables`_ below.
- **LLVM_LIBDIR_SUFFIX**:STRING
-   Extra suffix to append to the directory where libraries are to be
-   installed. On a 64-bit architecture, one could use ``-DLLVM_LIBDIR_SUFFIX=64``
--  to install libraries to ``/usr/lib64``.
-+  to install libraries to ``/usr/lib64``. See also ``CMAKE_INSTALL_LIBDIR``.
- 
- **LLVM_PARALLEL_{COMPILE,LINK}_JOBS**:STRING
-   Building the llvm toolchain can use a lot of resources, particularly
-@@ -284,6 +284,10 @@ manual, or execute ``cmake --help-variable VARIABLE_NAME``.
-   The path to install executables, relative to the *CMAKE_INSTALL_PREFIX*.
-   Defaults to "bin".
- 
-+**CMAKE_INSTALL_LIBDIR**:PATH
-+  The path to install libraries, relative to the *CMAKE_INSTALL_PREFIX*.
-+  Defaults to "lib".
-+
- **CMAKE_INSTALL_INCLUDEDIR**:PATH
-   The path to install header files, relative to the *CMAKE_INSTALL_PREFIX*.
-   Defaults to "include".
-diff --git a/tools/llvm-config/BuildVariables.inc.in b/tools/llvm-config/BuildVariables.inc.in
-index 370005cd8d7d..7e790bc52111 100644
---- a/tools/llvm-config/BuildVariables.inc.in
-+++ b/tools/llvm-config/BuildVariables.inc.in
-@@ -23,6 +23,7 @@
- #define LLVM_CXXFLAGS "@LLVM_CXXFLAGS@"
- #define LLVM_BUILDMODE "@LLVM_BUILDMODE@"
- #define LLVM_LIBDIR_SUFFIX "@LLVM_LIBDIR_SUFFIX@"
-+#define LLVM_INSTALL_LIBDIR "@CMAKE_INSTALL_LIBDIR@"
- #define LLVM_INSTALL_INCLUDEDIR "@CMAKE_INSTALL_INCLUDEDIR@"
- #define LLVM_INSTALL_PACKAGE_DIR "@LLVM_INSTALL_PACKAGE_DIR@"
- #define LLVM_TARGETS_BUILT "@LLVM_TARGETS_BUILT@"
-diff --git a/tools/llvm-config/llvm-config.cpp b/tools/llvm-config/llvm-config.cpp
-index b1d795a0a349..de6cb1514f05 100644
---- a/tools/llvm-config/llvm-config.cpp
-+++ b/tools/llvm-config/llvm-config.cpp
-@@ -366,7 +366,11 @@ int main(int argc, char **argv) {
-       sys::fs::make_absolute(ActivePrefix, Path);
-       ActiveBinDir = std::string(Path.str());
-     }
--    ActiveLibDir = ActivePrefix + "/lib" + LLVM_LIBDIR_SUFFIX;
-+    {
-+      SmallString<256> Path(LLVM_INSTALL_LIBDIR LLVM_LIBDIR_SUFFIX);
-+      sys::fs::make_absolute(ActivePrefix, Path);
-+      ActiveLibDir = std::string(Path.str());
-+    }
-     {
-       SmallString<256> Path(LLVM_INSTALL_PACKAGE_DIR);
-       sys::fs::make_absolute(ActivePrefix, Path);