llvmPackages_12: drop

Emily 9b8a66c3 d49413f1

+2
doc/release-notes/rl-2511.section.md
···
- GCC 9, 10, 11, and 12 have been removed, as they have reached end‐of‐life upstream and are no longer supported.
- GHCJS 8.10, exposed via `haskell.compiler.ghcjs` and `haskell.compiler.ghcjs810`, has been removed. Downstream users should migrate their projects to the new JavaScript backend of GHC proper which can be used via `pkgsCross.ghcjs` from Nixpkgs. Haskell packaging code, like `haskellPackages.mkDerivation`, `ghcWithPackages` and `hoogleWithPackages`, also no longer supports GHCJS.
- GHC 8.6, 8.10, 9.0, 9.2, and their package sets have been removed.
···
- GCC 9, 10, 11, and 12 have been removed, as they have reached end‐of‐life upstream and are no longer supported.
+
- LLVM 12 has been removed, as it has reached end‐of‐life upstream and is no longer supported.
+
- GHCJS 8.10, exposed via `haskell.compiler.ghcjs` and `haskell.compiler.ghcjs810`, has been removed. Downstream users should migrate their projects to the new JavaScript backend of GHC proper which can be used via `pkgsCross.ghcjs` from Nixpkgs. Haskell packaging code, like `haskellPackages.mkDerivation`, `ghcWithPackages` and `hoogleWithPackages`, also no longer supports GHCJS.
- GHC 8.6, 8.10, 9.0, 9.2, and their package sets have been removed.
pkgs/development/compilers/llvm/12/clang/gnu-install-dirs.patch pkgs/development/compilers/llvm/13/clang/gnu-install-dirs.patch
pkgs/development/compilers/llvm/12/clang/purity.patch pkgs/development/compilers/llvm/13/clang/purity.patch
pkgs/development/compilers/llvm/12/compiler-rt/X86-support-extension.patch pkgs/development/compilers/llvm/13/compiler-rt/X86-support-extension.patch
-32
pkgs/development/compilers/llvm/12/compiler-rt/armv7l.patch
···
-
diff -ur compiler-rt-10.0.0.src/cmake/builtin-config-ix.cmake compiler-rt-10.0.0.src-patched/cmake/builtin-config-ix.cmake
-
--- compiler-rt-10.0.0.src/cmake/builtin-config-ix.cmake 2020-03-24 00:01:02.000000000 +0900
-
+++ compiler-rt-10.0.0.src-patched/cmake/builtin-config-ix.cmake 2020-05-10 03:42:00.883450706 +0900
-
@@ -24,7 +24,7 @@
-
-
-
set(ARM64 aarch64)
-
-set(ARM32 arm armhf armv6m armv7m armv7em armv7 armv7s armv7k)
-
+set(ARM32 arm armhf armv6m armv7m armv7em armv7 armv7s armv7k armv7l)
-
set(HEXAGON hexagon)
-
set(X86 i386)
-
set(X86_64 x86_64)
-
diff -ur compiler-rt-10.0.0.src/lib/builtins/CMakeLists.txt compiler-rt-10.0.0.src-patched/lib/builtins/CMakeLists.txt
-
--- compiler-rt-10.0.0.src/lib/builtins/CMakeLists.txt 2020-03-24 00:01:02.000000000 +0900
-
+++ compiler-rt-10.0.0.src-patched/lib/builtins/CMakeLists.txt 2020-05-10 03:44:49.468579650 +0900
-
@@ -474,6 +474,7 @@
-
set(armv7_SOURCES ${arm_SOURCES})
-
set(armv7s_SOURCES ${arm_SOURCES})
-
set(armv7k_SOURCES ${arm_SOURCES})
-
+set(armv7l_SOURCES ${arm_SOURCES})
-
set(arm64_SOURCES ${aarch64_SOURCES})
-
-
# macho_embedded archs
-
@@ -595,7 +596,7 @@
-
foreach (arch ${BUILTIN_SUPPORTED_ARCH})
-
if (CAN_TARGET_${arch})
-
# For ARM archs, exclude any VFP builtins if VFP is not supported
-
- if (${arch} MATCHES "^(arm|armhf|armv7|armv7s|armv7k|armv7m|armv7em)$")
-
+ if (${arch} MATCHES "^(arm|armhf|armv7|armv7s|armv7k|armv7l|armv7m|armv7em)$")
-
string(REPLACE ";" " " _TARGET_${arch}_CFLAGS "${TARGET_${arch}_CFLAGS}")
-
check_compile_definition(__VFP_FP__ "${CMAKE_C_FLAGS} ${_TARGET_${arch}_CFLAGS}" COMPILER_RT_HAS_${arch}_VFP)
-
if(NOT COMPILER_RT_HAS_${arch}_VFP)
···
-33
pkgs/development/compilers/llvm/12/compiler-rt/codesign.patch
···
-
From 3dec5f3475a26aeb4678627795c4b67c6b7b4785 Mon Sep 17 00:00:00 2001
-
From: Will Dietz <w@wdtz.org>
-
Date: Tue, 19 Sep 2017 13:13:06 -0500
-
Subject: [PATCH] remove codesign use on Apple, disable ios sim testing that
-
needs it
-
-
---
-
cmake/Modules/AddCompilerRT.cmake | 8 ------
-
test/asan/CMakeLists.txt | 52 ---------------------------------------
-
test/tsan/CMakeLists.txt | 47 -----------------------------------
-
3 files changed, 107 deletions(-)
-
-
diff --git a/cmake/Modules/AddCompilerRT.cmake b/cmake/Modules/AddCompilerRT.cmake
-
index bc5fb9ff7..b64eb4246 100644
-
--- a/cmake/Modules/AddCompilerRT.cmake
-
+++ b/cmake/Modules/AddCompilerRT.cmake
-
@@ -210,14 +210,6 @@ function(add_compiler_rt_runtime name type)
-
set_target_properties(${libname} PROPERTIES IMPORT_PREFIX "")
-
set_target_properties(${libname} PROPERTIES IMPORT_SUFFIX ".lib")
-
endif()
-
- if(APPLE)
-
- # Ad-hoc sign the dylibs
-
- add_custom_command(TARGET ${libname}
-
- POST_BUILD
-
- COMMAND codesign --sign - $<TARGET_FILE:${libname}>
-
- WORKING_DIRECTORY ${COMPILER_RT_LIBRARY_OUTPUT_DIR}
-
- )
-
- endif()
-
endif()
-
install(TARGETS ${libname}
-
ARCHIVE DESTINATION ${COMPILER_RT_LIBRARY_INSTALL_DIR}
-
2.14.1
-
···
pkgs/development/compilers/llvm/12/compiler-rt/gnu-install-dirs.patch pkgs/development/compilers/llvm/13/compiler-rt/gnu-install-dirs.patch
pkgs/development/compilers/llvm/12/compiler-rt/normalize-var.patch pkgs/development/compilers/llvm/13/compiler-rt/normalize-var.patch
-34
pkgs/development/compilers/llvm/12/libunwind/gnu-install-dirs.patch
···
-
diff --git a/CMakeLists.txt b/CMakeLists.txt
-
index 48cb8e004e08..fec8144fb95a 100644
-
--- a/CMakeLists.txt
-
+++ b/CMakeLists.txt
-
@@ -23,6 +23,8 @@ set(LIBUNWIND_LIBCXX_PATH "${CMAKE_CURRENT_LIST_DIR}/../libcxx" CACHE PATH
-
if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR OR LIBUNWIND_STANDALONE_BUILD)
-
project(libunwind LANGUAGES C CXX ASM)
-
-
+ include(GNUInstallDirs)
-
+
-
set(PACKAGE_NAME libunwind)
-
set(PACKAGE_VERSION 12.0.0)
-
set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
-
@@ -115,17 +117,17 @@ set(CMAKE_MODULE_PATH
-
-
if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE)
-
set(LIBUNWIND_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
-
- set(LIBUNWIND_INSTALL_LIBRARY_DIR lib${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
-
+ set(LIBUNWIND_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
-
if(LIBCXX_LIBDIR_SUBDIR)
-
string(APPEND LIBUNWIND_LIBRARY_DIR /${LIBUNWIND_LIBDIR_SUBDIR})
-
string(APPEND LIBUNWIND_INSTALL_LIBRARY_DIR /${LIBUNWIND_LIBDIR_SUBDIR})
-
endif()
-
elseif(LLVM_LIBRARY_OUTPUT_INTDIR)
-
set(LIBUNWIND_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR})
-
- set(LIBUNWIND_INSTALL_LIBRARY_DIR lib${LIBUNWIND_LIBDIR_SUFFIX})
-
+ set(LIBUNWIND_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBUNWIND_LIBDIR_SUFFIX})
-
else()
-
set(LIBUNWIND_LIBRARY_DIR ${CMAKE_BINARY_DIR}/lib${LIBUNWIND_LIBDIR_SUFFIX})
-
- set(LIBUNWIND_INSTALL_LIBRARY_DIR lib${LIBUNWIND_LIBDIR_SUFFIX})
-
+ set(LIBUNWIND_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBUNWIND_LIBDIR_SUFFIX})
-
endif()
-
-
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${LIBUNWIND_LIBRARY_DIR})
···
pkgs/development/compilers/llvm/12/lld/gnu-install-dirs.patch pkgs/development/compilers/llvm/13/lld/gnu-install-dirs.patch
-110
pkgs/development/compilers/llvm/12/lldb/gnu-install-dirs.patch
···
-
diff --git a/CMakeLists.txt b/CMakeLists.txt
-
index b5633e21c56a..f2f1035e9238 100644
-
--- a/CMakeLists.txt
-
+++ b/CMakeLists.txt
-
@@ -10,6 +10,8 @@ set(CMAKE_MODULE_PATH
-
# If we are not building as part of LLVM, build LLDB as a standalone project,
-
# using LLVM as an external library.
-
if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
-
+ include(GNUInstallDirs)
-
+
-
project(lldb)
-
include(LLDBStandalone)
-
-
diff --git a/cmake/modules/AddLLDB.cmake b/cmake/modules/AddLLDB.cmake
-
index 4ed5c647c5d2..89f96e710d55 100644
-
--- a/cmake/modules/AddLLDB.cmake
-
+++ b/cmake/modules/AddLLDB.cmake
-
@@ -107,13 +107,13 @@ function(add_lldb_library name)
-
endif()
-
-
if(PARAM_SHARED)
-
- set(install_dest lib${LLVM_LIBDIR_SUFFIX})
-
+ set(install_dest ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
-
if(PARAM_INSTALL_PREFIX)
-
set(install_dest ${PARAM_INSTALL_PREFIX})
-
endif()
-
# RUNTIME is relevant for DLL platforms, FRAMEWORK for macOS
-
install(TARGETS ${name} COMPONENT ${name}
-
- RUNTIME DESTINATION bin
-
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
-
LIBRARY DESTINATION ${install_dest}
-
ARCHIVE DESTINATION ${install_dest}
-
FRAMEWORK DESTINATION ${install_dest})
-
diff --git a/cmake/modules/LLDBConfig.cmake b/cmake/modules/LLDBConfig.cmake
-
index 2fdf1502d055..37364341ff8b 100644
-
--- a/cmake/modules/LLDBConfig.cmake
-
+++ b/cmake/modules/LLDBConfig.cmake
-
@@ -225,7 +225,7 @@ include_directories(BEFORE
-
if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
-
install(DIRECTORY include/
-
COMPONENT lldb-headers
-
- DESTINATION include
-
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
-
FILES_MATCHING
-
PATTERN "*.h"
-
PATTERN ".cmake" EXCLUDE
-
@@ -233,7 +233,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
-
-
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include/
-
COMPONENT lldb-headers
-
- DESTINATION include
-
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
-
FILES_MATCHING
-
PATTERN "*.h"
-
PATTERN ".cmake" EXCLUDE
-
diff --git a/tools/intel-features/CMakeLists.txt b/tools/intel-features/CMakeLists.txt
-
index 734167e51bc5..f95761b5df58 100644
-
--- a/tools/intel-features/CMakeLists.txt
-
+++ b/tools/intel-features/CMakeLists.txt
-
@@ -65,4 +65,4 @@ if (LLDB_ENABLE_PYTHON AND LLDB_BUILD_INTEL_PT)
-
endif()
-
-
install(TARGETS lldbIntelFeatures
-
- LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX})
-
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
-
diff --git a/cmake/modules/LLDBStandalone.cmake b/cmake/modules/LLDBStandalone.cmake
-
index 752113b..010f187 100644
-
--- a/cmake/modules/LLDBStandalone.cmake
-
+++ b/cmake/modules/LLDBStandalone.cmake
-
@@ -62,7 +62,7 @@ endif()
-
-
# They are used as destination of target generators.
-
set(LLVM_RUNTIME_OUTPUT_INTDIR ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin)
-
-set(LLVM_LIBRARY_OUTPUT_INTDIR ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX})
-
+set(LLVM_LIBRARY_OUTPUT_INTDIR ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
-
if(WIN32 OR CYGWIN)
-
# DLL platform -- put DLLs into bin.
-
set(LLVM_SHLIB_OUTPUT_INTDIR ${LLVM_RUNTIME_OUTPUT_INTDIR})
-
diff --git a/CMakeLists.txt b/CMakeLists.txt
-
index b5633e2..86e4738 100644
-
--- a/CMakeLists.txt
-
+++ b/CMakeLists.txt
-
@@ -79,7 +79,7 @@ if (LLDB_ENABLE_PYTHON)
-
if(LLDB_BUILD_FRAMEWORK)
-
set(lldb_python_target_dir "${LLDB_FRAMEWORK_ABSOLUTE_BUILD_DIR}/LLDB.framework/Resources/Python/lldb")
-
else()
-
- set(lldb_python_target_dir "${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${LLDB_PYTHON_RELATIVE_PATH}/lldb")
-
+ set(lldb_python_target_dir "${CMAKE_INSTALL_LIBDIR}/../${LLDB_PYTHON_RELATIVE_PATH}/lldb")
-
endif()
-
get_target_property(lldb_python_bindings_dir swig_wrapper_python BINARY_DIR)
-
finish_swig_python("lldb-python" "${lldb_python_bindings_dir}" "${lldb_python_target_dir}")
-
diff --git a/source/API/CMakeLists.txt b/source/API/CMakeLists.txt
-
index b5633e2..86e4738 100644
-
--- a/source/API/CMakeLists.txt 2024-05-30 19:08:14.241656491 -0700
-
+++ b/source/API/CMakeLists.txt 2024-05-30 19:08:48.218219667 -0700
-
@@ -113,14 +113,6 @@
-
${option_install_prefix}
-
)
-
-
-# lib/pythonX.Y/dist-packages/lldb/_lldb.so is a symlink to lib/liblldb.so,
-
-# which depends on lib/libLLVM*.so (BUILD_SHARED_LIBS) or lib/libLLVM-10git.so
-
-# (LLVM_LINK_LLVM_DYLIB). Add an additional rpath $ORIGIN/../../../../lib so
-
-# that _lldb.so can be loaded from Python.
-
-if(LLDB_ENABLE_PYTHON AND (BUILD_SHARED_LIBS OR LLVM_LINK_LLVM_DYLIB) AND UNIX AND NOT APPLE)
-
- set_property(TARGET liblldb APPEND PROPERTY INSTALL_RPATH "\$ORIGIN/../../../../lib${LLVM_LIBDIR_SUFFIX}")
-
-endif()
-
-
-
if(Python3_RPATH)
-
set_property(TARGET liblldb APPEND PROPERTY INSTALL_RPATH "${Python3_RPATH}")
-
set_property(TARGET liblldb APPEND PROPERTY BUILD_RPATH "${Python3_RPATH}")
···
pkgs/development/compilers/llvm/12/lldb/procfs.patch pkgs/development/compilers/llvm/13/lldb/procfs.patch
pkgs/development/compilers/llvm/12/lldb/resource-dir.patch pkgs/development/compilers/llvm/13/lldb/resource-dir.patch
-13
pkgs/development/compilers/llvm/12/llvm/fix-llvm-issue-49955.patch
···
-
diff --git a/lib/CodeGen/AsmPrinter/CMakeLists.txt b/lib/CodeGen/AsmPrinter/CMakeLists.txt
-
index eb924282..c77c140b 100644
-
--- a/lib/CodeGen/AsmPrinter/CMakeLists.txt
-
+++ b/lib/CodeGen/AsmPrinter/CMakeLists.txt
-
@@ -44,3 +44,8 @@ add_llvm_component_library(LLVMAsmPrinter
-
Support
-
Target
-
)
-
+
-
+if (CMAKE_COMPILER_IS_GNUCXX)
-
+ set_source_files_properties(DwarfCompileUnit.cpp PROPERTIES
-
+ COMPILE_FLAGS -fno-strict-aliasing)
-
+endif()
···
-105
pkgs/development/compilers/llvm/12/llvm/gnu-install-dirs-polly.patch
···
-
diff --git a/tools/polly/CMakeLists.txt b/tools/polly/CMakeLists.txt
-
index ca7c04c565bb..6ed5db5dd4f8 100644
-
--- a/tools/polly/CMakeLists.txt
-
+++ b/tools/polly/CMakeLists.txt
-
@@ -2,7 +2,11 @@
-
if (NOT DEFINED LLVM_MAIN_SRC_DIR)
-
project(Polly)
-
cmake_minimum_required(VERSION 3.13.4)
-
+endif()
-
+
-
+include(GNUInstallDirs)
-
-
+if (NOT DEFINED LLVM_MAIN_SRC_DIR)
-
# Where is LLVM installed?
-
find_package(LLVM CONFIG REQUIRED)
-
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${LLVM_CMAKE_DIR})
-
@@ -122,13 +126,13 @@ include_directories(
-
-
if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
-
install(DIRECTORY include/
-
- DESTINATION include
-
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
-
FILES_MATCHING
-
PATTERN "*.h"
-
)
-
-
install(DIRECTORY ${POLLY_BINARY_DIR}/include/
-
- DESTINATION include
-
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
-
FILES_MATCHING
-
PATTERN "*.h"
-
PATTERN "CMakeFiles" EXCLUDE
-
diff --git a/tools/polly/cmake/CMakeLists.txt b/tools/polly/cmake/CMakeLists.txt
-
index 7cc129ba2e90..137be25e4b80 100644
-
--- a/tools/polly/cmake/CMakeLists.txt
-
+++ b/tools/polly/cmake/CMakeLists.txt
-
@@ -79,18 +79,18 @@ file(GENERATE
-
-
# Generate PollyConfig.cmake for the install tree.
-
unset(POLLY_EXPORTS)
-
-set(POLLY_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
-
+set(POLLY_INSTALL_PREFIX "")
-
set(POLLY_CONFIG_LLVM_CMAKE_DIR "${LLVM_BINARY_DIR}/${LLVM_INSTALL_PACKAGE_DIR}")
-
-set(POLLY_CONFIG_CMAKE_DIR "${POLLY_INSTALL_PREFIX}/${POLLY_INSTALL_PACKAGE_DIR}")
-
-set(POLLY_CONFIG_LIBRARY_DIRS "${POLLY_INSTALL_PREFIX}/lib${LLVM_LIBDIR_SUFFIX}")
-
+set(POLLY_CONFIG_CMAKE_DIR "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_PREFIX}/${POLLY_INSTALL_PACKAGE_DIR}")
-
+set(POLLY_CONFIG_LIBRARY_DIRS "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_LIBDIR}${LLVM_LIBDIR_SUFFIX}")
-
if (POLLY_BUNDLED_ISL)
-
set(POLLY_CONFIG_INCLUDE_DIRS
-
- "${POLLY_INSTALL_PREFIX}/include"
-
- "${POLLY_INSTALL_PREFIX}/include/polly"
-
+ "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_LIBDIR}"
-
+ "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_LIBDIR}/polly"
-
)
-
else()
-
set(POLLY_CONFIG_INCLUDE_DIRS
-
- "${POLLY_INSTALL_PREFIX}/include"
-
+ "${POLLY_INSTALL_PREFIX}${CMAKE_INSTALL_FULL_INCLUDEDIR}"
-
${ISL_INCLUDE_DIRS}
-
)
-
endif()
-
@@ -100,12 +100,12 @@ endif()
-
foreach(tgt IN LISTS POLLY_CONFIG_EXPORTED_TARGETS)
-
get_target_property(tgt_type ${tgt} TYPE)
-
if (tgt_type STREQUAL "EXECUTABLE")
-
- set(tgt_prefix "bin/")
-
+ set(tgt_prefix "${CMAKE_INSTALL_BINDIR}/")
-
else()
-
- set(tgt_prefix "lib/")
-
+ set(tgt_prefix "${CMAKE_INSTALL_LIBDIR}/")
-
endif()
-
-
- set(tgt_path "${CMAKE_INSTALL_PREFIX}/${tgt_prefix}$<TARGET_FILE_NAME:${tgt}>")
-
+ set(tgt_path "${tgt_prefix}$<TARGET_FILE_NAME:${tgt}>")
-
file(RELATIVE_PATH tgt_path ${POLLY_CONFIG_CMAKE_DIR} ${tgt_path})
-
-
if (NOT tgt_type STREQUAL "INTERFACE_LIBRARY")
-
diff --git a/tools/polly/cmake/polly_macros.cmake b/tools/polly/cmake/polly_macros.cmake
-
index 518a09b45a42..bd9d6f5542ad 100644
-
--- a/tools/polly/cmake/polly_macros.cmake
-
+++ b/tools/polly/cmake/polly_macros.cmake
-
@@ -44,8 +44,8 @@ macro(add_polly_library name)
-
if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY OR ${name} STREQUAL "LLVMPolly")
-
install(TARGETS ${name}
-
EXPORT LLVMExports
-
- LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
-
- ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX})
-
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
-
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
-
endif()
-
set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${name})
-
endmacro(add_polly_library)
-
diff --git a/tools/polly/lib/External/CMakeLists.txt b/tools/polly/lib/External/CMakeLists.txt
-
index 8991094d92c7..178d8ad606bb 100644
-
--- a/tools/polly/lib/External/CMakeLists.txt
-
+++ b/tools/polly/lib/External/CMakeLists.txt
-
@@ -275,7 +275,7 @@ if (POLLY_BUNDLED_ISL)
-
install(DIRECTORY
-
${ISL_SOURCE_DIR}/include/
-
${ISL_BINARY_DIR}/include/
-
- DESTINATION include/polly
-
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/polly
-
FILES_MATCHING
-
PATTERN "*.h"
-
PATTERN "CMakeFiles" EXCLUDE
···
-417
pkgs/development/compilers/llvm/12/llvm/gnu-install-dirs.patch
···
-
diff --git a/CMakeLists.txt b/CMakeLists.txt
-
index 277d0fe54d7b..af69c8be8745 100644
-
--- a/CMakeLists.txt
-
+++ b/CMakeLists.txt
-
@@ -256,15 +256,21 @@ if (CMAKE_BUILD_TYPE AND
-
message(FATAL_ERROR "Invalid value for CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}")
-
endif()
-
-
+include(GNUInstallDirs)
-
+
-
set(LLVM_LIBDIR_SUFFIX "" CACHE STRING "Define suffix of library directory name (32/64)" )
-
-
-set(LLVM_TOOLS_INSTALL_DIR "bin" CACHE STRING "Path for binary subdirectory (defaults to 'bin')")
-
+set(LLVM_TOOLS_INSTALL_DIR "${CMAKE_INSTALL_BINDIR}" CACHE STRING
-
+ "Path for binary subdirectory (defaults to 'bin')")
-
mark_as_advanced(LLVM_TOOLS_INSTALL_DIR)
-
-
set(LLVM_UTILS_INSTALL_DIR "${LLVM_TOOLS_INSTALL_DIR}" CACHE STRING
-
"Path to install LLVM utilities (enabled by LLVM_INSTALL_UTILS=ON) (defaults to LLVM_TOOLS_INSTALL_DIR)")
-
mark_as_advanced(LLVM_UTILS_INSTALL_DIR)
-
-
+set(LLVM_INSTALL_CMAKE_DIR "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/cmake/llvm" CACHE STRING
-
+ "Path for CMake subdirectory (defaults to lib/cmake/llvm)" )
-
+
-
# They are used as destination of target generators.
-
set(LLVM_RUNTIME_OUTPUT_INTDIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin)
-
set(LLVM_LIBRARY_OUTPUT_INTDIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX})
-
@@ -567,9 +573,9 @@ option (LLVM_ENABLE_SPHINX "Use Sphinx to generate llvm documentation." OFF)
-
option (LLVM_ENABLE_OCAMLDOC "Build OCaml bindings documentation." ON)
-
option (LLVM_ENABLE_BINDINGS "Build bindings." ON)
-
-
-set(LLVM_INSTALL_DOXYGEN_HTML_DIR "share/doc/llvm/doxygen-html"
-
+set(LLVM_INSTALL_DOXYGEN_HTML_DIR "${CMAKE_INSTALL_DOCDIR}/${project}/doxygen-html"
-
CACHE STRING "Doxygen-generated HTML documentation install directory")
-
-set(LLVM_INSTALL_OCAMLDOC_HTML_DIR "share/doc/llvm/ocaml-html"
-
+set(LLVM_INSTALL_OCAMLDOC_HTML_DIR "${CMAKE_INSTALL_DOCDIR}/${project}/ocaml-html"
-
CACHE STRING "OCamldoc-generated HTML documentation install directory")
-
-
option (LLVM_BUILD_EXTERNAL_COMPILER_RT
-
@@ -1027,7 +1033,7 @@ endif()
-
-
if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
-
install(DIRECTORY include/llvm include/llvm-c
-
- DESTINATION include
-
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
-
COMPONENT llvm-headers
-
FILES_MATCHING
-
PATTERN "*.def"
-
@@ -1038,7 +1044,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
-
)
-
-
install(DIRECTORY ${LLVM_INCLUDE_DIR}/llvm ${LLVM_INCLUDE_DIR}/llvm-c
-
- DESTINATION include
-
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
-
COMPONENT llvm-headers
-
FILES_MATCHING
-
PATTERN "*.def"
-
@@ -1052,13 +1058,13 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
-
-
if (LLVM_INSTALL_MODULEMAPS)
-
install(DIRECTORY include/llvm include/llvm-c
-
- DESTINATION include
-
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
-
COMPONENT llvm-headers
-
FILES_MATCHING
-
PATTERN "module.modulemap"
-
)
-
install(FILES include/llvm/module.install.modulemap
-
- DESTINATION include/llvm
-
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/llvm
-
COMPONENT llvm-headers
-
RENAME "module.extern.modulemap"
-
)
-
diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake
-
index 97c9980c7de3..409e8b615f75 100644
-
--- a/cmake/modules/AddLLVM.cmake
-
+++ b/cmake/modules/AddLLVM.cmake
-
@@ -804,9 +804,9 @@ macro(add_llvm_library name)
-
-
install(TARGETS ${name}
-
${export_to_llvmexports}
-
- LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT ${name}
-
- ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT ${name}
-
- RUNTIME DESTINATION bin 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)
-
add_llvm_install_targets(install-${name}
-
@@ -1022,7 +1022,7 @@ function(process_llvm_pass_plugins)
-
"set(LLVM_STATIC_EXTENSIONS ${LLVM_STATIC_EXTENSIONS})")
-
install(FILES
-
${llvm_cmake_builddir}/LLVMConfigExtensions.cmake
-
- DESTINATION ${LLVM_INSTALL_PACKAGE_DIR}
-
+ DESTINATION ${LLVM_INSTALL_CMAKE_DIR}
-
COMPONENT cmake-exports)
-
-
set(ExtensionDef "${LLVM_BINARY_DIR}/include/llvm/Support/Extension.def")
-
@@ -1242,7 +1242,7 @@ macro(add_llvm_example name)
-
endif()
-
add_llvm_executable(${name} ${ARGN})
-
if( LLVM_BUILD_EXAMPLES )
-
- install(TARGETS ${name} RUNTIME DESTINATION examples)
-
+ install(TARGETS ${name} RUNTIME DESTINATION ${CMAKE_INSTALL_DOCDIR}/examples)
-
endif()
-
set_target_properties(${name} PROPERTIES FOLDER "Examples")
-
endmacro(add_llvm_example name)
-
@@ -1854,7 +1854,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 bin)
-
endif()
-
@@ -1871,7 +1871,7 @@ function(llvm_install_library_symlink name dest type)
-
endif()
-
endfunction()
-
-
-function(llvm_install_symlink name dest)
-
+function(llvm_install_symlink name dest output_dir)
-
cmake_parse_arguments(ARG "ALWAYS_GENERATE" "COMPONENT" "" ${ARGN})
-
foreach(path ${CMAKE_MODULE_PATH})
-
if(EXISTS ${path}/LLVMInstallSymlink.cmake)
-
@@ -1894,7 +1894,7 @@ function(llvm_install_symlink name dest)
-
set(full_dest ${dest}${CMAKE_EXECUTABLE_SUFFIX})
-
-
install(SCRIPT ${INSTALL_SYMLINK}
-
- CODE "install_symlink(${full_name} ${full_dest} ${LLVM_TOOLS_INSTALL_DIR})"
-
+ CODE "install_symlink(${full_name} ${full_dest} ${output_dir})"
-
COMPONENT ${component})
-
-
if (NOT LLVM_ENABLE_IDE AND NOT ARG_ALWAYS_GENERATE)
-
@@ -1977,7 +1977,8 @@ function(add_llvm_tool_symlink link_name target)
-
endif()
-
-
if ((TOOL_IS_TOOLCHAIN OR NOT LLVM_INSTALL_TOOLCHAIN_ONLY) AND LLVM_BUILD_TOOLS)
-
- llvm_install_symlink(${link_name} ${target})
-
+ GNUInstallDirs_get_absolute_install_dir(output_dir LLVM_TOOLS_INSTALL_DIR)
-
+ llvm_install_symlink(${link_name} ${target} ${output_dir})
-
endif()
-
endif()
-
endfunction()
-
@@ -2100,9 +2101,9 @@ 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(UNIX)
-
- set(_install_rpath "\$ORIGIN/../lib${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 554046b20edf..4d1ad980641e 100644
-
--- a/cmake/modules/AddOCaml.cmake
-
+++ b/cmake/modules/AddOCaml.cmake
-
@@ -144,9 +144,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/AddSphinxTarget.cmake b/cmake/modules/AddSphinxTarget.cmake
-
index e80c3b5c1cac..482f6d715ef5 100644
-
--- a/cmake/modules/AddSphinxTarget.cmake
-
+++ b/cmake/modules/AddSphinxTarget.cmake
-
@@ -90,7 +90,7 @@ function (add_sphinx_target builder project)
-
endif()
-
elseif (builder STREQUAL html)
-
string(TOUPPER "${project}" project_upper)
-
- set(${project_upper}_INSTALL_SPHINX_HTML_DIR "share/doc/${project}/html"
-
+ set(${project_upper}_INSTALL_SPHINX_HTML_DIR "${CMAKE_INSTALL_DOCDIR}/${project}/html"
-
CACHE STRING "HTML documentation install directory for ${project}")
-
-
# '/.' indicates: copy the contents of the directory directly into
-
diff --git a/cmake/modules/CMakeLists.txt b/cmake/modules/CMakeLists.txt
-
index 505dc9a29d70..36e6c63af3f4 100644
-
--- a/cmake/modules/CMakeLists.txt
-
+++ b/cmake/modules/CMakeLists.txt
-
@@ -1,4 +1,4 @@
-
-set(LLVM_INSTALL_PACKAGE_DIR lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm)
-
+set(LLVM_INSTALL_PACKAGE_DIR ${LLVM_INSTALL_CMAKE_DIR} CACHE STRING "Path for CMake subdirectory (defaults to 'cmake/llvm')")
-
set(llvm_cmake_builddir "${LLVM_BINARY_DIR}/${LLVM_INSTALL_PACKAGE_DIR}")
-
-
# First for users who use an installed LLVM, create the LLVMExports.cmake file.
-
@@ -107,13 +107,13 @@ foreach(p ${_count})
-
set(LLVM_CONFIG_CODE "${LLVM_CONFIG_CODE}
-
get_filename_component(LLVM_INSTALL_PREFIX \"\${LLVM_INSTALL_PREFIX}\" PATH)")
-
endforeach(p)
-
-set(LLVM_CONFIG_INCLUDE_DIRS "\${LLVM_INSTALL_PREFIX}/include")
-
+set(LLVM_CONFIG_INCLUDE_DIRS "\${LLVM_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}")
-
set(LLVM_CONFIG_INCLUDE_DIR "${LLVM_CONFIG_INCLUDE_DIRS}")
-
set(LLVM_CONFIG_MAIN_INCLUDE_DIR "${LLVM_CONFIG_INCLUDE_DIRS}")
-
-set(LLVM_CONFIG_LIBRARY_DIRS "\${LLVM_INSTALL_PREFIX}/lib\${LLVM_LIBDIR_SUFFIX}")
-
+set(LLVM_CONFIG_LIBRARY_DIRS "\${LLVM_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}\${LLVM_LIBDIR_SUFFIX}")
-
set(LLVM_CONFIG_CMAKE_DIR "\${LLVM_INSTALL_PREFIX}/${LLVM_INSTALL_PACKAGE_DIR}")
-
set(LLVM_CONFIG_BINARY_DIR "\${LLVM_INSTALL_PREFIX}")
-
-set(LLVM_CONFIG_TOOLS_BINARY_DIR "\${LLVM_INSTALL_PREFIX}/bin")
-
+set(LLVM_CONFIG_TOOLS_BINARY_DIR "\${LLVM_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}")
-
-
# Generate a default location for lit
-
if (LLVM_INSTALL_UTILS AND LLVM_BUILD_UTILS)
-
diff --git a/cmake/modules/LLVMInstallSymlink.cmake b/cmake/modules/LLVMInstallSymlink.cmake
-
index 09fed8085c23..aa79f192abf0 100644
-
--- a/cmake/modules/LLVMInstallSymlink.cmake
-
+++ b/cmake/modules/LLVMInstallSymlink.cmake
-
@@ -10,7 +10,7 @@ function(install_symlink name target outdir)
-
set(LINK_OR_COPY copy)
-
endif()
-
-
- set(bindir "${DESTDIR}${CMAKE_INSTALL_PREFIX}/${outdir}/")
-
+ set(bindir "${DESTDIR}${outdir}/")
-
-
message(STATUS "Creating ${name}")
-
-
diff --git a/docs/CMake.rst b/docs/CMake.rst
-
index bb821b417ad9..6a528f7c2ad3 100644
-
--- a/docs/CMake.rst
-
+++ b/docs/CMake.rst
-
@@ -196,7 +196,7 @@ CMake manual, or execute ``cmake --help-variable VARIABLE_NAME``.
-
**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``.
-
-
**CMAKE_C_FLAGS**:STRING
-
Extra flags to use when compiling C source files.
-
@@ -550,8 +550,8 @@ LLVM-specific variables
-
-
**LLVM_INSTALL_DOXYGEN_HTML_DIR**:STRING
-
The path to install Doxygen-generated HTML documentation to. This path can
-
- either be absolute or relative to the CMAKE_INSTALL_PREFIX. Defaults to
-
- `share/doc/llvm/doxygen-html`.
-
+ either be absolute or relative to the ``CMAKE_INSTALL_PREFIX``. Defaults to
-
+ `${CMAKE_INSTALL_DOCDIR}/${project}/doxygen-html`.
-
-
**LLVM_ENABLE_SPHINX**:BOOL
-
If specified, CMake will search for the ``sphinx-build`` executable and will make
-
@@ -582,13 +582,33 @@ LLVM-specific variables
-
-
**LLVM_INSTALL_SPHINX_HTML_DIR**:STRING
-
The path to install Sphinx-generated HTML documentation to. This path can
-
- either be absolute or relative to the CMAKE_INSTALL_PREFIX. Defaults to
-
- `share/doc/llvm/html`.
-
+ either be absolute or relative to the ``CMAKE_INSTALL_PREFIX``. Defaults to
-
+ `${CMAKE_INSTALL_DOCDIR}/${project}/html`.
-
-
**LLVM_INSTALL_OCAMLDOC_HTML_DIR**:STRING
-
The path to install OCamldoc-generated HTML documentation to. This path can
-
- either be absolute or relative to the CMAKE_INSTALL_PREFIX. Defaults to
-
- `share/doc/llvm/ocaml-html`.
-
+ either be absolute or relative to the ``CMAKE_INSTALL_PREFIX``. Defaults to
-
+ `${CMAKE_INSTALL_DOCDIR}/${project}/ocaml-html`.
-
+
-
+**CMAKE_INSTALL_BINDIR**:STRING
-
+ The path to install binary tools, relative to the ``CMAKE_INSTALL_PREFIX``.
-
+ Defaults to `bin`.
-
+
-
+**CMAKE_INSTALL_LIBDIR**:STRING
-
+ The path to install libraries, relative to the ``CMAKE_INSTALL_PREFIX``.
-
+ Defaults to `lib`.
-
+
-
+**CMAKE_INSTALL_INCLUDEDIR**:STRING
-
+ The path to install header files, relative to the ``CMAKE_INSTALL_PREFIX``.
-
+ Defaults to `include`.
-
+
-
+**CMAKE_INSTALL_DOCDIR**:STRING
-
+ The path to install documentation, relative to the ``CMAKE_INSTALL_PREFIX``.
-
+ Defaults to `share/doc`.
-
+
-
+**CMAKE_INSTALL_MANDIR**:STRING
-
+ The path to install manpage files, relative to the ``CMAKE_INSTALL_PREFIX``.
-
+ Defaults to `share/man`.
-
-
**LLVM_CREATE_XCODE_TOOLCHAIN**:BOOL
-
macOS Only: If enabled CMake will generate a target named
-
@@ -786,9 +806,11 @@ the ``cmake`` command or by setting it directly in ``ccmake`` or ``cmake-gui``).
-
-
This file is available in two different locations.
-
-
-* ``<INSTALL_PREFIX>/lib/cmake/llvm/LLVMConfig.cmake`` where
-
- ``<INSTALL_PREFIX>`` is the install prefix of an installed version of LLVM.
-
- On Linux typically this is ``/usr/lib/cmake/llvm/LLVMConfig.cmake``.
-
+* ``<LLVM_INSTALL_PACKAGE_DIR>LLVMConfig.cmake`` where
-
+ ``<LLVM_INSTALL_PACKAGE_DIR>`` is the location where LLVM CMake modules are
-
+ installed as part of an installed version of LLVM. This is typically
-
+ ``cmake/llvm/`` within the lib directory. On Linux, this is typically
-
+ ``/usr/lib/cmake/llvm/LLVMConfig.cmake``.
-
-
* ``<LLVM_BUILD_ROOT>/lib/cmake/llvm/LLVMConfig.cmake`` where
-
``<LLVM_BUILD_ROOT>`` is the root of the LLVM build tree. **Note: this is only
-
diff --git a/examples/Bye/CMakeLists.txt b/examples/Bye/CMakeLists.txt
-
index bb96edb4b4bf..678c22fb43c8 100644
-
--- a/examples/Bye/CMakeLists.txt
-
+++ b/examples/Bye/CMakeLists.txt
-
@@ -14,6 +14,6 @@ if (NOT WIN32)
-
BUILDTREE_ONLY
-
)
-
-
- install(TARGETS ${name} RUNTIME DESTINATION examples)
-
+ install(TARGETS ${name} RUNTIME DESTINATION ${CMAKE_INSTALL_DOCDIR}/examples)
-
set_target_properties(${name} PROPERTIES FOLDER "Examples")
-
endif()
-
diff --git a/include/llvm/CMakeLists.txt b/include/llvm/CMakeLists.txt
-
index b46319f24fc8..2feabd1954e4 100644
-
--- a/include/llvm/CMakeLists.txt
-
+++ b/include/llvm/CMakeLists.txt
-
@@ -5,5 +5,5 @@ add_subdirectory(Frontend)
-
# If we're doing an out-of-tree build, copy a module map for generated
-
# header files into the build area.
-
if (NOT "${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}")
-
- configure_file(module.modulemap.build module.modulemap COPYONLY)
-
+ configure_file(module.modulemap.build ${LLVM_INCLUDE_DIR}/module.modulemap COPYONLY)
-
endif (NOT "${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}")
-
diff --git a/tools/llvm-config/BuildVariables.inc.in b/tools/llvm-config/BuildVariables.inc.in
-
index ebe5b73a5c65..70c497be12f5 100644
-
--- a/tools/llvm-config/BuildVariables.inc.in
-
+++ b/tools/llvm-config/BuildVariables.inc.in
-
@@ -23,6 +23,10 @@
-
#define LLVM_CXXFLAGS "@LLVM_CXXFLAGS@"
-
#define LLVM_BUILDMODE "@LLVM_BUILDMODE@"
-
#define LLVM_LIBDIR_SUFFIX "@LLVM_LIBDIR_SUFFIX@"
-
+#define LLVM_INSTALL_BINDIR "@CMAKE_INSTALL_BINDIR@"
-
+#define LLVM_INSTALL_LIBDIR "@CMAKE_INSTALL_LIBDIR@"
-
+#define LLVM_INSTALL_INCLUDEDIR "@CMAKE_INSTALL_INCLUDEDIR@"
-
+#define LLVM_INSTALL_CMAKEDIR "@LLVM_INSTALL_CMAKE_DIR@"
-
#define LLVM_TARGETS_BUILT "@LLVM_TARGETS_BUILT@"
-
#define LLVM_SYSTEM_LIBS "@LLVM_SYSTEM_LIBS@"
-
#define LLVM_BUILD_SYSTEM "@LLVM_BUILD_SYSTEM@"
-
diff --git a/tools/llvm-config/llvm-config.cpp b/tools/llvm-config/llvm-config.cpp
-
index 1a2f04552d13..44fa7d3eec6b 100644
-
--- a/tools/llvm-config/llvm-config.cpp
-
+++ b/tools/llvm-config/llvm-config.cpp
-
@@ -357,12 +357,26 @@ int main(int argc, char **argv) {
-
("-I" + ActiveIncludeDir + " " + "-I" + ActiveObjRoot + "/include");
-
} else {
-
ActivePrefix = CurrentExecPrefix;
-
- ActiveIncludeDir = ActivePrefix + "/include";
-
- SmallString<256> path(StringRef(LLVM_TOOLS_INSTALL_DIR));
-
- sys::fs::make_absolute(ActivePrefix, path);
-
- ActiveBinDir = std::string(path.str());
-
- ActiveLibDir = ActivePrefix + "/lib" + LLVM_LIBDIR_SUFFIX;
-
- ActiveCMakeDir = ActiveLibDir + "/cmake/llvm";
-
+ {
-
+ SmallString<256> path(StringRef(LLVM_INSTALL_INCLUDEDIR));
-
+ sys::fs::make_absolute(ActivePrefix, path);
-
+ ActiveIncludeDir = std::string(path.str());
-
+ }
-
+ {
-
+ SmallString<256> path(StringRef(LLVM_INSTALL_BINDIR));
-
+ sys::fs::make_absolute(ActivePrefix, path);
-
+ ActiveBinDir = std::string(path.str());
-
+ }
-
+ {
-
+ SmallString<256> path(StringRef(LLVM_INSTALL_LIBDIR LLVM_LIBDIR_SUFFIX));
-
+ sys::fs::make_absolute(ActivePrefix, path);
-
+ ActiveLibDir = std::string(path.str());
-
+ }
-
+ {
-
+ SmallString<256> path(StringRef(LLVM_INSTALL_CMAKEDIR));
-
+ sys::fs::make_absolute(ActivePrefix, path);
-
+ ActiveCMakeDir = std::string(path.str());
-
+ }
-
ActiveIncludeOption = "-I" + ActiveIncludeDir;
-
}
-
-
diff --git a/tools/lto/CMakeLists.txt b/tools/lto/CMakeLists.txt
-
index 2963f97cad88..69d66c9c9ca1 100644
-
--- a/tools/lto/CMakeLists.txt
-
+++ b/tools/lto/CMakeLists.txt
-
@@ -25,7 +25,7 @@ add_llvm_library(LTO SHARED INSTALL_WITH_TOOLCHAIN ${SOURCES} DEPENDS
-
intrinsics_gen)
-
-
install(FILES ${LLVM_MAIN_INCLUDE_DIR}/llvm-c/lto.h
-
- DESTINATION include/llvm-c
-
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/llvm-c
-
COMPONENT LTO)
-
-
if (APPLE)
-
diff --git a/tools/opt-viewer/CMakeLists.txt b/tools/opt-viewer/CMakeLists.txt
-
index ead73ec13a8f..250362021f17 100644
-
--- a/tools/opt-viewer/CMakeLists.txt
-
+++ b/tools/opt-viewer/CMakeLists.txt
-
@@ -8,7 +8,7 @@ set (files
-
-
foreach (file ${files})
-
install(PROGRAMS ${file}
-
- DESTINATION share/opt-viewer
-
+ DESTINATION ${CMAKE_INSTALL_DATADIR}/opt-viewer
-
COMPONENT opt-viewer)
-
endforeach (file)
-
-
diff --git a/tools/remarks-shlib/CMakeLists.txt b/tools/remarks-shlib/CMakeLists.txt
-
index 865436247270..ce1daa62f6ab 100644
-
--- a/tools/remarks-shlib/CMakeLists.txt
-
+++ b/tools/remarks-shlib/CMakeLists.txt
-
@@ -19,7 +19,7 @@ if(LLVM_ENABLE_PIC)
-
endif()
-
-
install(FILES ${LLVM_MAIN_INCLUDE_DIR}/llvm-c/Remarks.h
-
- DESTINATION include/llvm-c
-
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/llvm-c
-
COMPONENT Remarks)
-
-
if (APPLE)
···
pkgs/development/compilers/llvm/12/llvm/no-pipes.patch pkgs/development/compilers/llvm/13/llvm/no-pipes.patch
+30 -34
pkgs/development/compilers/llvm/common/bintools.nix
···
inherit llvm lld;
};
}
-
(
-
''
-
mkdir -p $out/bin
-
for prog in ${lld}/bin/*; do
-
ln -s $prog $out/bin/${targetPrefix}$(basename $prog)
-
done
-
for prog in ${llvm}/bin/*; do
-
ln -sf $prog $out/bin/${targetPrefix}$(basename $prog)
-
done
-
llvmBin="${llvm}/bin"
-
ln -s $llvmBin/llvm-ar $out/bin/${targetPrefix}ar
-
ln -s $llvmBin/llvm-ar $out/bin/${targetPrefix}dlltool
-
ln -s $llvmBin/llvm-ar $out/bin/${targetPrefix}ranlib
-
ln -s $llvmBin/llvm-cxxfilt $out/bin/${targetPrefix}c++filt
-
ln -s $llvmBin/llvm-dwp $out/bin/${targetPrefix}dwp
-
ln -s $llvmBin/llvm-nm $out/bin/${targetPrefix}nm
-
ln -s $llvmBin/llvm-objcopy $out/bin/${targetPrefix}objcopy
-
ln -s $llvmBin/llvm-objcopy $out/bin/${targetPrefix}strip
-
ln -s $llvmBin/llvm-objdump $out/bin/${targetPrefix}objdump
-
ln -s $llvmBin/llvm-readobj $out/bin/${targetPrefix}readelf
-
ln -s $llvmBin/llvm-size $out/bin/${targetPrefix}size
-
ln -s $llvmBin/llvm-strings $out/bin/${targetPrefix}strings
-
ln -s $llvmBin/llvm-symbolizer $out/bin/${targetPrefix}addr2line
-
if [ -e "$llvmBin/llvm-debuginfod" ]; then
-
ln -s $llvmBin/llvm-debuginfod $out/bin/${targetPrefix}debuginfod
-
ln -s $llvmBin/llvm-debuginfod-find $out/bin/${targetPrefix}debuginfod-find
-
fi
-
ln -s ${lld}/bin/lld $out/bin/${targetPrefix}ld
-
# Only >=13 show GNU windres compatible in help
-
''
-
+ lib.optionalString (lib.versionAtLeast release_version "13") ''
-
ln -s $llvmBin/llvm-rc $out/bin/${targetPrefix}windres
-
''
-
)
···
inherit llvm lld;
};
}
+
''
+
mkdir -p $out/bin
+
for prog in ${lld}/bin/*; do
+
ln -s $prog $out/bin/${targetPrefix}$(basename $prog)
+
done
+
for prog in ${llvm}/bin/*; do
+
ln -sf $prog $out/bin/${targetPrefix}$(basename $prog)
+
done
+
llvmBin="${llvm}/bin"
+
ln -s $llvmBin/llvm-ar $out/bin/${targetPrefix}ar
+
ln -s $llvmBin/llvm-ar $out/bin/${targetPrefix}dlltool
+
ln -s $llvmBin/llvm-ar $out/bin/${targetPrefix}ranlib
+
ln -s $llvmBin/llvm-cxxfilt $out/bin/${targetPrefix}c++filt
+
ln -s $llvmBin/llvm-dwp $out/bin/${targetPrefix}dwp
+
ln -s $llvmBin/llvm-nm $out/bin/${targetPrefix}nm
+
ln -s $llvmBin/llvm-objcopy $out/bin/${targetPrefix}objcopy
+
ln -s $llvmBin/llvm-objcopy $out/bin/${targetPrefix}strip
+
ln -s $llvmBin/llvm-objdump $out/bin/${targetPrefix}objdump
+
ln -s $llvmBin/llvm-readobj $out/bin/${targetPrefix}readelf
+
ln -s $llvmBin/llvm-size $out/bin/${targetPrefix}size
+
ln -s $llvmBin/llvm-strings $out/bin/${targetPrefix}strings
+
ln -s $llvmBin/llvm-symbolizer $out/bin/${targetPrefix}addr2line
+
if [ -e "$llvmBin/llvm-debuginfod" ]; then
+
ln -s $llvmBin/llvm-debuginfod $out/bin/${targetPrefix}debuginfod
+
ln -s $llvmBin/llvm-debuginfod-find $out/bin/${targetPrefix}debuginfod-find
+
fi
+
ln -s ${lld}/bin/lld $out/bin/${targetPrefix}ld
+
# Only >=13 show GNU windres compatible in help
+
ln -s $llvmBin/llvm-rc $out/bin/${targetPrefix}windres
+
''
+21 -36
pkgs/development/compilers/llvm/common/compiler-rt/default.nix
···
# Fix build on armv6l
./armv6-no-ldrexd-strexd.patch
]
-
++ lib.optional (lib.versions.major release_version == "12") (fetchpatch {
-
# fixes the parallel build on aarch64 darwin
-
name = "fix-symlink-race-aarch64-darwin.patch";
-
url = "https://github.com/llvm/llvm-project/commit/b31080c596246bc26d2493cfd5e07f053cf9541c.patch";
-
relative = "compiler-rt";
-
hash = "sha256-Cv2NC8402yU7QaTR6TzdH+qyWRy+tTote7KKWtKRWFQ=";
})
-
++ lib.optional (
-
lib.versions.major release_version == "12"
-
|| (lib.versionAtLeast release_version "14" && lib.versionOlder release_version "18")
-
) (getVersionFile "compiler-rt/gnu-install-dirs.patch")
++
-
lib.optional (lib.versionAtLeast release_version "13" && lib.versionOlder release_version "18")
-
(fetchpatch {
-
name = "cfi_startproc-after-label.patch";
-
url = "https://github.com/llvm/llvm-project/commit/7939ce39dac0078fef7183d6198598b99c652c88.patch";
-
stripLen = 1;
-
hash = "sha256-tGqXsYvUllFrPa/r/dsKVlwx5IrcJGccuR1WAtUg7/o=";
-
})
-
++
-
lib.optional (lib.versionAtLeast release_version "13" && lib.versionOlder release_version "18")
# Prevent a compilation error on darwin
(getVersionFile "compiler-rt/darwin-targetconditionals.patch")
# TODO: make unconditional and remove in <15 section below. Causes rebuilds.
···
./armv6-mcr-dmb.patch
./armv6-sync-ops-no-thumb.patch
]
-
++
-
lib.optionals (lib.versionAtLeast release_version "13" && lib.versionOlder release_version "18")
-
[
-
# Fix build on armv6l
-
./armv6-scudo-no-yield.patch
-
]
-
++ lib.optionals (lib.versionAtLeast release_version "13") [
(getVersionFile "compiler-rt/armv6-scudo-libatomic.patch")
]
++ lib.optional (lib.versions.major release_version == "19") (fetchpatch {
···
''
)
)
-
+
-
lib.optionalString
-
(lib.versionAtLeast release_version "13" && lib.versionOlder release_version "14")
-
''
-
# https://github.com/llvm/llvm-project/blob/llvmorg-14.0.6/libcxx/utils/merge_archives.py
-
# Seems to only be used in v13 though it's present in v12 and v14, and dropped in v15.
-
substituteInPlace ../libcxx/utils/merge_archives.py \
-
--replace-fail "import distutils.spawn" "from shutil import which as find_executable" \
-
--replace-fail "distutils.spawn." ""
-
''
+
lib.optionalString (lib.versionAtLeast release_version "19")
# codesign in sigtool doesn't support the various options used by the build
···
# Fix build on armv6l
./armv6-no-ldrexd-strexd.patch
]
+
++ lib.optional (lib.versionAtLeast release_version "14" && lib.versionOlder release_version "18") (
+
getVersionFile "compiler-rt/gnu-install-dirs.patch"
+
)
+
++ lib.optional (lib.versionOlder release_version "18") (fetchpatch {
+
name = "cfi_startproc-after-label.patch";
+
url = "https://github.com/llvm/llvm-project/commit/7939ce39dac0078fef7183d6198598b99c652c88.patch";
+
stripLen = 1;
+
hash = "sha256-tGqXsYvUllFrPa/r/dsKVlwx5IrcJGccuR1WAtUg7/o=";
})
++
+
lib.optional (lib.versionOlder release_version "18")
# Prevent a compilation error on darwin
(getVersionFile "compiler-rt/darwin-targetconditionals.patch")
# TODO: make unconditional and remove in <15 section below. Causes rebuilds.
···
./armv6-mcr-dmb.patch
./armv6-sync-ops-no-thumb.patch
]
+
++ lib.optionals (lib.versionOlder release_version "18") [
+
# Fix build on armv6l
+
./armv6-scudo-no-yield.patch
+
]
+
++ [
(getVersionFile "compiler-rt/armv6-scudo-libatomic.patch")
]
++ lib.optional (lib.versions.major release_version == "19") (fetchpatch {
···
''
)
)
+
+ lib.optionalString (lib.versionOlder release_version "14") ''
+
# https://github.com/llvm/llvm-project/blob/llvmorg-14.0.6/libcxx/utils/merge_archives.py
+
# Seems to only be used in v13 though it's present in v12 and v14, and dropped in v15.
+
substituteInPlace ../libcxx/utils/merge_archives.py \
+
--replace-fail "import distutils.spawn" "from shutil import which as find_executable" \
+
--replace-fail "distutils.spawn." ""
+
''
+
lib.optionalString (lib.versionAtLeast release_version "19")
# codesign in sigtool doesn't support the various options used by the build
+1 -9
pkgs/development/compilers/llvm/common/libcxx/default.nix
···
cmakeFlags = [
(lib.cmakeFeature "LLVM_ENABLE_RUNTIMES" (lib.concatStringsSep ";" runtimes))
]
-
++
-
lib.optionals
-
(
-
stdenv.hostPlatform.isWasm
-
|| (lib.versions.major release_version == "12" && stdenv.hostPlatform.isDarwin)
-
)
-
[
-
(lib.cmakeBool "CMAKE_CXX_COMPILER_WORKS" true)
-
]
++ lib.optionals stdenv.hostPlatform.isWasm [
(lib.cmakeBool "CMAKE_C_COMPILER_WORKS" true)
(lib.cmakeBool "UNIX" true) # Required otherwise libc++ fails to detect the correct linker
]
···
cmakeFlags = [
(lib.cmakeFeature "LLVM_ENABLE_RUNTIMES" (lib.concatStringsSep ";" runtimes))
]
++ lib.optionals stdenv.hostPlatform.isWasm [
+
(lib.cmakeBool "CMAKE_CXX_COMPILER_WORKS" true)
(lib.cmakeBool "CMAKE_C_COMPILER_WORKS" true)
(lib.cmakeBool "UNIX" true) # Required otherwise libc++ fails to detect the correct linker
]
-3
pkgs/development/compilers/llvm/common/libunwind/default.nix
···
++ lib.optional (lib.versionAtLeast release_version "15") (
lib.cmakeFeature "LLVM_ENABLE_RUNTIMES" "libunwind"
)
-
++ lib.optionals (lib.versions.major release_version == "12" && stdenv.hostPlatform.isDarwin) [
-
(lib.cmakeBool "CMAKE_CXX_COMPILER_WORKS" true)
-
]
++ devExtraCmakeFlags;
prePatch =
···
++ lib.optional (lib.versionAtLeast release_version "15") (
lib.cmakeFeature "LLVM_ENABLE_RUNTIMES" "libunwind"
)
++ devExtraCmakeFlags;
prePatch =
+1 -1
pkgs/development/compilers/llvm/common/lldb/default.nix
···
"dev"
];
-
sourceRoot = lib.optional (lib.versionAtLeast release_version "13") "${finalAttrs.src.name}/lldb";
patches =
let
···
"dev"
];
+
sourceRoot = "${finalAttrs.src.name}/lldb";
patches =
let
+7 -63
pkgs/development/compilers/llvm/common/llvm/default.nix
···
# a native libLLVM.so (which would fail) we force llvm-config to be linked
# statically against the necessary LLVM components always.
./llvm-config-link-static.patch
-
++ lib.optionals (lib.versions.major release_version == "12") [
-
# Fix llvm being miscompiled by some gccs. See https://github.com/llvm/llvm-project/issues/49955
-
(getVersionFile "llvm/fix-llvm-issue-49955.patch")
-
-
# On older CPUs (e.g. Hydra/wendy) we'd be getting an error in this test.
-
(fetchpatch {
-
name = "uops-CMOV16rm-noreg.diff";
-
url = "https://github.com/llvm/llvm-project/commit/9e9f991ac033.diff";
-
sha256 = "sha256:12s8vr6ibri8b48h2z38f3afhwam10arfiqfy4yg37bmc054p5hi";
-
stripLen = 1;
-
})
-
]
# Support custom installation dirs
# Originally based off https://reviews.llvm.org/D99484
# Latest state: https://github.com/llvm/llvm-project/pull/125376
···
) ncurses)
++ [ zlib ];
postPatch =
optionalString stdenv.hostPlatform.isDarwin (
''
···
substituteInPlace unittests/IR/CMakeLists.txt \
--replace-fail "PassBuilderCallbacksTest.cpp" ""
rm unittests/IR/PassBuilderCallbacksTest.cpp
''
-
+ lib.optionalString (lib.versionAtLeast release_version "13") ''
-
rm test/tools/llvm-objcopy/ELF/mirror-permissions-unix.test
-
''
-
+ lib.optionalString (lib.versionOlder release_version "13") ''
-
# TODO: Fix failing tests:
-
rm test/DebugInfo/X86/vla-multi.ll
-
''
+
# Fails in the presence of anti-virus software or other intrusion-detection software that
# modifies the atime when run. See #284056.
···
''
+ ''
patchShebangs test/BugPoint/compile-custom.ll.py
-
''
-
+
-
# Tweak tests to ignore namespace part of type to support
-
# gcc-12: https://gcc.gnu.org/PR103598.
-
# The change below mangles strings like:
-
# CHECK-NEXT: Starting llvm::Function pass manager run.
-
# to:
-
# CHECK-NEXT: Starting {{.*}}Function pass manager run.
-
(lib.optionalString (lib.versionOlder release_version "13") (
-
''
-
for f in \
-
test/Other/new-pass-manager.ll \
-
test/Other/new-pm-O0-defaults.ll \
-
test/Other/new-pm-defaults.ll \
-
test/Other/new-pm-lto-defaults.ll \
-
test/Other/new-pm-thinlto-defaults.ll \
-
test/Other/pass-pipeline-parsing.ll \
-
test/Transforms/Inline/cgscc-incremental-invalidate.ll \
-
test/Transforms/Inline/clear-analyses.ll \
-
test/Transforms/LoopUnroll/unroll-loop-invalidation.ll \
-
test/Transforms/SCCP/ipsccp-preserve-analysis.ll \
-
test/Transforms/SCCP/preserve-analysis.ll \
-
test/Transforms/SROA/dead-inst.ll \
-
test/tools/gold/X86/new-pm.ll \
-
; do
-
echo "PATCH: $f"
-
substituteInPlace $f \
-
--replace-quiet 'Starting llvm::' 'Starting {{.*}}' \
-
--replace-quiet 'Finished llvm::' 'Finished {{.*}}'
-
done
-
''
-
+
-
# gcc-13 fix
-
''
-
sed -i '/#include <string>/i#include <cstdint>' \
-
include/llvm/DebugInfo/Symbolize/DIPrinter.h
-
''
-
));
# Workaround for configure flags that need to have spaces
preConfigure = ''
···
}
)
)
-
// lib.optionalAttrs (lib.versionAtLeast release_version "13") {
-
nativeCheckInputs = [
-
which
-
]
-
++ lib.optional (stdenv.hostPlatform.isDarwin && lib.versionAtLeast release_version "15") sysctl;
-
}
// lib.optionalAttrs (lib.versionOlder release_version "15") {
# hacky fix: created binaries need to be run before installation
preBuild = ''
···
# a native libLLVM.so (which would fail) we force llvm-config to be linked
# statically against the necessary LLVM components always.
./llvm-config-link-static.patch
# Support custom installation dirs
# Originally based off https://reviews.llvm.org/D99484
# Latest state: https://github.com/llvm/llvm-project/pull/125376
···
) ncurses)
++ [ zlib ];
+
nativeCheckInputs = [
+
which
+
]
+
++ lib.optional (stdenv.hostPlatform.isDarwin && lib.versionAtLeast release_version "15") sysctl;
+
postPatch =
optionalString stdenv.hostPlatform.isDarwin (
''
···
substituteInPlace unittests/IR/CMakeLists.txt \
--replace-fail "PassBuilderCallbacksTest.cpp" ""
rm unittests/IR/PassBuilderCallbacksTest.cpp
+
rm test/tools/llvm-objcopy/ELF/mirror-permissions-unix.test
''
+
# Fails in the presence of anti-virus software or other intrusion-detection software that
# modifies the atime when run. See #284056.
···
''
+ ''
patchShebangs test/BugPoint/compile-custom.ll.py
+
'';
# Workaround for configure flags that need to have spaces
preConfigure = ''
···
}
)
)
// lib.optionalAttrs (lib.versionOlder release_version "15") {
# hacky fix: created binaries need to be run before installation
preBuild = ''
+9 -13
pkgs/development/compilers/llvm/common/patches.nix
···
"clang/gnu-install-dirs.patch" = [
{
before = "14";
-
path = ../12;
}
{
after = "19";
···
}
{
before = "16";
-
path = ../12;
}
];
"clang/aarch64-tblgen.patch" = [
···
}
{
before = "14";
-
path = ../12;
}
];
"llvm/gnu-install-dirs.patch" = [
···
}
{
before = "15";
-
path = ../12;
}
];
"compiler-rt/armv6-scudo-libatomic.patch" = [
···
"compiler-rt/armv7l.patch" = [
{
before = "15";
-
after = "13";
path = ../13;
}
];
"compiler-rt/gnu-install-dirs.patch" = [
{
before = "14";
-
path = ../12;
}
{
-
after = "13";
before = "15";
path = ../14;
}
···
];
"compiler-rt/darwin-targetconditionals.patch" = [
{
-
after = "13";
path = ../13;
}
];
"compiler-rt/codesign.patch" = [
{
-
after = "13";
path = ../13;
}
];
···
}
{
before = "16";
-
path = ../12;
}
];
"lldb/procfs.patch" = [
···
}
{
before = "15";
-
path = ../12;
}
];
"lldb/resource-dir.patch" = [
{
before = "16";
-
path = ../12;
}
];
"llvm/no-pipes.patch" = [
{
before = "16";
-
path = ../12;
}
];
"openmp/fix-find-tool.patch" = [
···
"clang/gnu-install-dirs.patch" = [
{
before = "14";
+
path = ../13;
}
{
after = "19";
···
}
{
before = "16";
+
path = ../13;
}
];
"clang/aarch64-tblgen.patch" = [
···
}
{
before = "14";
+
path = ../13;
}
];
"llvm/gnu-install-dirs.patch" = [
···
}
{
before = "15";
+
path = ../13;
}
];
"compiler-rt/armv6-scudo-libatomic.patch" = [
···
"compiler-rt/armv7l.patch" = [
{
before = "15";
path = ../13;
}
];
"compiler-rt/gnu-install-dirs.patch" = [
{
before = "14";
+
path = ../13;
}
{
before = "15";
path = ../14;
}
···
];
"compiler-rt/darwin-targetconditionals.patch" = [
{
path = ../13;
}
];
"compiler-rt/codesign.patch" = [
{
path = ../13;
}
];
···
}
{
before = "16";
+
path = ../13;
}
];
"lldb/procfs.patch" = [
···
}
{
before = "15";
+
path = ../13;
}
];
"lldb/resource-dir.patch" = [
{
before = "16";
+
path = ../13;
}
];
"llvm/no-pipes.patch" = [
{
before = "16";
+
path = ../13;
}
];
"openmp/fix-find-tool.patch" = [
-1
pkgs/development/compilers/llvm/default.nix
···
}@packageSetArgs:
let
versions = {
-
"12.0.1".officialRelease.sha256 = "08s5w2db9imb2yaqsvxs6pg21csi1cf6wa35rf8x6q07mam7j8qv";
"13.0.1".officialRelease.sha256 = "06dv6h5dmvzdxbif2s8njki6h32796v368dyb5945x8gjj72xh7k";
"14.0.6".officialRelease.sha256 = "sha256-vffu4HilvYwtzwgq+NlS26m65DGbp6OSSne2aje1yJE=";
"15.0.7".officialRelease.sha256 = "sha256-wjuZQyXQ/jsmvy6y1aksCcEDXGBjuhpgngF3XQJ/T4s=";
···
}@packageSetArgs:
let
versions = {
"13.0.1".officialRelease.sha256 = "06dv6h5dmvzdxbif2s8njki6h32796v368dyb5945x8gjj72xh7k";
"14.0.6".officialRelease.sha256 = "sha256-vffu4HilvYwtzwgq+NlS26m65DGbp6OSSne2aje1yJE=";
"15.0.7".officialRelease.sha256 = "sha256-wjuZQyXQ/jsmvy6y1aksCcEDXGBjuhpgngF3XQJ/T4s=";
-14
pkgs/development/compilers/llvm/update.sh
···
readonly SOURCES=(
"llvm.monorepoSrc"
)
-
elif [ "$VERSION_MAJOR" -eq "13" ]; then
-
readonly SOURCES=(
-
"llvm.src"
-
)
else
readonly SOURCES=(
-
"clang-unwrapped.src"
-
"compiler-rt.src"
-
"clang-unwrapped.clang-tools-extra_src"
-
"libcxx.src"
-
"libcxxabi.src"
-
"libunwind.src"
-
"lld.src"
-
"lldb.src"
"llvm.src"
-
"llvm.polly_src"
-
"openmp.src"
)
fi
···
readonly SOURCES=(
"llvm.monorepoSrc"
)
else
readonly SOURCES=(
"llvm.src"
)
fi
+1
pkgs/test/default.nix
···
(filter (n: n != "llvmPackages_9"))
(filter (n: n != "llvmPackages_10"))
(filter (n: n != "llvmPackages_11"))
];
tests = lib.genAttrs pkgSets (
name:
···
(filter (n: n != "llvmPackages_9"))
(filter (n: n != "llvmPackages_10"))
(filter (n: n != "llvmPackages_11"))
+
(filter (n: n != "llvmPackages_12"))
];
tests = lib.genAttrs pkgSets (
name:
+13 -8
pkgs/top-level/aliases.nix
···
cyber = throw "cyber has been removed, as it does not build with supported Zig versions"; # Added 2025-08-09
# these are for convenience, not for backward compat., and shouldn't expire until the package is deprecated.
-
clang9Stdenv = throw "clang9Stdenv has been removed from nixpkgs"; # Added 2024-04-08
-
clang12Stdenv = lowPrio llvmPackages_12.stdenv; # preserve, reason: see above
clang13Stdenv = lowPrio llvmPackages_13.stdenv; # preserve, reason: see above
clang14Stdenv = lowPrio llvmPackages_14.stdenv; # preserve, reason: see above
clang15Stdenv = lowPrio llvmPackages_15.stdenv; # preserve, reason: see above
···
clang18Stdenv = lowPrio llvmPackages_18.stdenv; # preserve, reason: see above
clang19Stdenv = lowPrio llvmPackages_19.stdenv; # preserve, reason: see above
-
clang-tools_9 = throw "clang-tools_9 has been removed from nixpkgs"; # Added 2024-04-08
-
clang_9 = throw "clang_9 has been removed from nixpkgs"; # Added 2024-04-08
-
-
clang-tools_12 = llvmPackages_12.clang-tools; # Added 2024-04-22
clang-tools_13 = llvmPackages_13.clang-tools; # Added 2024-04-22
clang-tools_14 = llvmPackages_14.clang-tools; # Added 2024-04-22
clang-tools_15 = llvmPackages_15.clang-tools; # Added 2024-04-22
···
llvmPackages_git = (callPackages ../development/compilers/llvm { }).git; # Added 2024-08-02
lld_9 = throw "lld_9 has been removed from nixpkgs"; # Added 2024-04-08
lldb_9 = throw "lldb_9 has been removed from nixpkgs"; # Added 2024-04-08
-
llvmPackages_9 = throw "llvmPackages_9 has been removed from nixpkgs"; # Added 2024-04-08
-
llvm_9 = throw "llvm_9 has been removed from nixpkgs"; # Added 2024-04-08
lobster-two = throw "'lobster-two' has been renamed to/replaced by 'google-fonts'"; # Converted to throw 2024-10-17
loc = throw "'loc' has been removed due to lack of upstream maintenance. Consider 'tokei' as an alternative."; # Added 2025-01-25
···
cyber = throw "cyber has been removed, as it does not build with supported Zig versions"; # Added 2025-08-09
# these are for convenience, not for backward compat., and shouldn't expire until the package is deprecated.
clang13Stdenv = lowPrio llvmPackages_13.stdenv; # preserve, reason: see above
clang14Stdenv = lowPrio llvmPackages_14.stdenv; # preserve, reason: see above
clang15Stdenv = lowPrio llvmPackages_15.stdenv; # preserve, reason: see above
···
clang18Stdenv = lowPrio llvmPackages_18.stdenv; # preserve, reason: see above
clang19Stdenv = lowPrio llvmPackages_19.stdenv; # preserve, reason: see above
clang-tools_13 = llvmPackages_13.clang-tools; # Added 2024-04-22
clang-tools_14 = llvmPackages_14.clang-tools; # Added 2024-04-22
clang-tools_15 = llvmPackages_15.clang-tools; # Added 2024-04-22
···
llvmPackages_git = (callPackages ../development/compilers/llvm { }).git; # Added 2024-08-02
+
llvmPackages_9 = throw "llvmPackages_9 has been removed from nixpkgs"; # Added 2024-04-08
+
llvm_9 = throw "llvm_9 has been removed from nixpkgs"; # Added 2024-04-08
lld_9 = throw "lld_9 has been removed from nixpkgs"; # Added 2024-04-08
lldb_9 = throw "lldb_9 has been removed from nixpkgs"; # Added 2024-04-08
+
clang_9 = throw "clang_9 has been removed from nixpkgs"; # Added 2024-04-08
+
clang9Stdenv = throw "clang9Stdenv has been removed from nixpkgs"; # Added 2024-04-08
+
clang-tools_9 = throw "clang-tools_9 has been removed from nixpkgs"; # Added 2024-04-08
+
+
llvmPackages_12 = throw "llvmPackages_12 has been removed, as it is unmaintained and obsolete"; # Added 2025-08-10
+
llvm_12 = throw "llvm_12 has been removed, as it is unmaintained and obsolete"; # Added 2025-08-10
+
lld_12 = throw "lld_12 has been removed, as it is unmaintained and obsolete"; # Added 2025-08-10
+
lldb_12 = throw "lldb_12 has been removed, as it is unmaintained and obsolete"; # Added 2025-08-10
+
clang_12 = throw "clang_12 has been removed, as it is unmaintained and obsolete"; # Added 2025-08-10
+
clang12Stdenv = throw "clang12Stdenv has been removed, as it is unmaintained and obsolete"; # Added 2025-08-10
+
clang-tools_12 = throw "clang-tools_12 has been removed, as it is unmaintained and obsolete"; # Added 2025-08-10
lobster-two = throw "'lobster-two' has been renamed to/replaced by 'google-fonts'"; # Converted to throw 2024-10-17
loc = throw "'loc' has been removed due to lack of upstream maintenance. Consider 'tokei' as an alternative."; # Added 2025-01-25
-6
pkgs/top-level/all-packages.nix
···
clang-manpages = llvmPackages.clang-manpages;
clang = llvmPackages.clang;
-
clang_12 = llvmPackages_12.clang;
clang_13 = llvmPackages_13.clang;
clang_14 = llvmPackages_14.clang;
clang_15 = llvmPackages_15.clang;
···
};
lld = llvmPackages.lld;
-
lld_12 = llvmPackages_12.lld;
lld_13 = llvmPackages_13.lld;
lld_14 = llvmPackages_14.lld;
lld_15 = llvmPackages_15.lld;
···
lld_17 = llvmPackages_17.lld;
lldb = llvmPackages.lldb;
-
lldb_12 = llvmPackages_12.lldb;
lldb_13 = llvmPackages_13.lldb;
lldb_14 = llvmPackages_14.lldb;
lldb_15 = llvmPackages_15.lldb;
···
lldb_17 = llvmPackages_17.lldb;
llvm = llvmPackages.llvm;
-
llvm_12 = llvmPackages_12.llvm;
llvm_13 = llvmPackages_13.llvm;
llvm_14 = llvmPackages_14.llvm;
llvm_15 = llvmPackages_15.llvm;
···
(rec {
llvmPackagesSet = recurseIntoAttrs (callPackages ../development/compilers/llvm { });
-
llvmPackages_12 = llvmPackagesSet."12";
llvmPackages_13 = llvmPackagesSet."13";
llvmPackages_14 = llvmPackagesSet."14";
llvmPackages_15 = llvmPackagesSet."15";
···
mkLLVMPackages = llvmPackagesSet.mkPackage;
})
-
llvmPackages_12
llvmPackages_13
llvmPackages_14
llvmPackages_15
···
clang-manpages = llvmPackages.clang-manpages;
clang = llvmPackages.clang;
clang_13 = llvmPackages_13.clang;
clang_14 = llvmPackages_14.clang;
clang_15 = llvmPackages_15.clang;
···
};
lld = llvmPackages.lld;
lld_13 = llvmPackages_13.lld;
lld_14 = llvmPackages_14.lld;
lld_15 = llvmPackages_15.lld;
···
lld_17 = llvmPackages_17.lld;
lldb = llvmPackages.lldb;
lldb_13 = llvmPackages_13.lldb;
lldb_14 = llvmPackages_14.lldb;
lldb_15 = llvmPackages_15.lldb;
···
lldb_17 = llvmPackages_17.lldb;
llvm = llvmPackages.llvm;
llvm_13 = llvmPackages_13.llvm;
llvm_14 = llvmPackages_14.llvm;
llvm_15 = llvmPackages_15.llvm;
···
(rec {
llvmPackagesSet = recurseIntoAttrs (callPackages ../development/compilers/llvm { });
llvmPackages_13 = llvmPackagesSet."13";
llvmPackages_14 = llvmPackagesSet."14";
llvmPackages_15 = llvmPackagesSet."15";
···
mkLLVMPackages = llvmPackagesSet.mkPackage;
})
llvmPackages_13
llvmPackages_14
llvmPackages_15