llvmPackages_16: drop
This commit is contained in:
@@ -26,7 +26,7 @@
|
||||
|
||||
- GCC 9, 10, 11, and 12 have been removed, as they have reached end‐of‐life upstream and are no longer supported.
|
||||
|
||||
- LLVM 12, 13, 14, and 15 have been removed, as they have reached end‐of‐life upstream and are no longer supported.
|
||||
- LLVM 12, 13, 14, 15, and 16 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.
|
||||
|
||||
|
||||
@@ -1,109 +0,0 @@
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 090cfa352078..624b7c9f3400 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -38,12 +38,26 @@ if(CLANG_BUILT_STANDALONE)
|
||||
find_package(LLVM REQUIRED HINTS "${LLVM_CMAKE_DIR}")
|
||||
list(APPEND CMAKE_MODULE_PATH "${LLVM_DIR}")
|
||||
|
||||
- # Turn into CACHE PATHs for overwritting
|
||||
- set(LLVM_INCLUDE_DIRS ${LLVM_INCLUDE_DIRS} CACHE PATH "Path to llvm/include and any other header dirs needed")
|
||||
- set(LLVM_BINARY_DIR "${LLVM_BINARY_DIR}" CACHE PATH "Path to LLVM build tree")
|
||||
- set(LLVM_MAIN_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../llvm" CACHE PATH "Path to LLVM source tree")
|
||||
- set(LLVM_TOOLS_BINARY_DIR "${LLVM_TOOLS_BINARY_DIR}" CACHE PATH "Path to llvm/bin")
|
||||
- set(LLVM_LIBRARY_DIR "${LLVM_LIBRARY_DIR}" CACHE PATH "Path to llvm/lib")
|
||||
+ # We can't check LLVM_CONFIG here, because find_package(LLVM ...) also sets
|
||||
+ # LLVM_CONFIG.
|
||||
+ if (NOT LLVM_CONFIG_FOUND)
|
||||
+ # Pull values from LLVMConfig.cmake. We can drop this once the llvm-config
|
||||
+ # path is removed.
|
||||
+ set(INCLUDE_DIRS ${LLVM_INCLUDE_DIRS})
|
||||
+ set(LLVM_OBJ_DIR "${LLVM_BINARY_DIR}")
|
||||
+ # N.B. this is just a default value, the CACHE PATHs below can be overriden.
|
||||
+ set(MAIN_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../llvm")
|
||||
+ set(TOOLS_BINARY_DIR "${LLVM_TOOLS_BINARY_DIR}")
|
||||
+ set(LIBRARY_DIR "${LLVM_LIBRARY_DIR}")
|
||||
+ else()
|
||||
+ set(INCLUDE_DIRS "${LLVM_BINARY_DIR}/include" "${MAIN_INCLUDE_DIR}")
|
||||
+ endif()
|
||||
+
|
||||
+ set(LLVM_INCLUDE_DIRS ${INCLUDE_DIRS} CACHE PATH "Path to llvm/include and any other header dirs needed")
|
||||
+ set(LLVM_BINARY_DIR "${LLVM_OBJ_ROOT}" CACHE PATH "Path to LLVM build tree")
|
||||
+ set(LLVM_MAIN_SRC_DIR "${MAIN_SRC_DIR}" CACHE PATH "Path to LLVM source tree")
|
||||
+ set(LLVM_TOOLS_BINARY_DIR "${TOOLS_BINARY_DIR}" CACHE PATH "Path to llvm/bin")
|
||||
+ set(LLVM_LIBRARY_DIR "${LIBRARY_DIR}" CACHE PATH "Path to llvm/lib")
|
||||
|
||||
find_program(LLVM_TABLEGEN_EXE "llvm-tblgen" ${LLVM_TOOLS_BINARY_DIR}
|
||||
NO_DEFAULT_PATH)
|
||||
diff --git a/cmake/modules/AddClang.cmake b/cmake/modules/AddClang.cmake
|
||||
index 75b0080f6715..c895b884cd27 100644
|
||||
--- a/cmake/modules/AddClang.cmake
|
||||
+++ b/cmake/modules/AddClang.cmake
|
||||
@@ -119,8 +119,8 @@ macro(add_clang_library name)
|
||||
install(TARGETS ${lib}
|
||||
COMPONENT ${lib}
|
||||
${export_to_clangtargets}
|
||||
- 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}"
|
||||
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
|
||||
|
||||
if (NOT LLVM_ENABLE_IDE)
|
||||
diff --git a/lib/Headers/CMakeLists.txt b/lib/Headers/CMakeLists.txt
|
||||
index bb9a11eabbef..e2de91c65fbb 100644
|
||||
--- a/lib/Headers/CMakeLists.txt
|
||||
+++ b/lib/Headers/CMakeLists.txt
|
||||
@@ -437,7 +437,7 @@ add_header_target("openmp-resource-headers" ${openmp_wrapper_files})
|
||||
add_header_target("windows-resource-headers" ${windows_only_files})
|
||||
add_header_target("utility-resource-headers" ${utility_files})
|
||||
|
||||
-set(header_install_dir lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION_MAJOR}/include)
|
||||
+set(header_install_dir ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION_MAJOR}/include)
|
||||
|
||||
#############################################################
|
||||
# Install rules for the catch-all clang-resource-headers target
|
||||
diff --git a/tools/libclang/CMakeLists.txt b/tools/libclang/CMakeLists.txt
|
||||
index 4f23065a2472..6a0f55991e24 100644
|
||||
--- a/tools/libclang/CMakeLists.txt
|
||||
+++ b/tools/libclang/CMakeLists.txt
|
||||
@@ -234,7 +234,7 @@ foreach(PythonVersion ${CLANG_PYTHON_BINDINGS_VERSIONS})
|
||||
COMPONENT
|
||||
libclang-python-bindings
|
||||
DESTINATION
|
||||
- "lib${LLVM_LIBDIR_SUFFIX}/python${PythonVersion}/site-packages")
|
||||
+ "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/python${PythonVersion}/site-packages")
|
||||
endforeach()
|
||||
if(NOT LLVM_ENABLE_IDE)
|
||||
add_custom_target(libclang-python-bindings)
|
||||
diff --git a/tools/scan-build-py/CMakeLists.txt b/tools/scan-build-py/CMakeLists.txt
|
||||
index 3aca22c0b0a8..3115353e3fe3 100644
|
||||
--- a/tools/scan-build-py/CMakeLists.txt
|
||||
+++ b/tools/scan-build-py/CMakeLists.txt
|
||||
@@ -88,7 +88,7 @@ foreach(lib ${LibScanbuild})
|
||||
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/lib/libscanbuild/${lib})
|
||||
list(APPEND Depends ${CMAKE_BINARY_DIR}/lib/libscanbuild/${lib})
|
||||
install(FILES lib/libscanbuild/${lib}
|
||||
- DESTINATION lib${CLANG_LIBDIR_SUFFIX}/libscanbuild
|
||||
+ DESTINATION "${CMAKE_INSTALL_LIBDIR}/libscanbuild"
|
||||
COMPONENT scan-build-py)
|
||||
endforeach()
|
||||
|
||||
@@ -106,7 +106,7 @@ foreach(resource ${LibScanbuildResources})
|
||||
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/lib/libscanbuild/resources/${resource})
|
||||
list(APPEND Depends ${CMAKE_BINARY_DIR}/lib/libscanbuild/resources/${resource})
|
||||
install(FILES lib/libscanbuild/resources/${resource}
|
||||
- DESTINATION lib${CLANG_LIBDIR_SUFFIX}/libscanbuild/resources
|
||||
+ DESTINATION "${CMAKE_INSTALL_LIBDIR}/libscanbuild/resources"
|
||||
COMPONENT scan-build-py)
|
||||
endforeach()
|
||||
|
||||
@@ -122,7 +122,7 @@ foreach(lib ${LibEar})
|
||||
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/lib/libear/${lib})
|
||||
list(APPEND Depends ${CMAKE_BINARY_DIR}/lib/libear/${lib})
|
||||
install(FILES lib/libear/${lib}
|
||||
- DESTINATION lib${CLANG_LIBDIR_SUFFIX}/libear
|
||||
+ DESTINATION "${CMAKE_INSTALL_LIBDIR}/libear"
|
||||
COMPONENT scan-build-py)
|
||||
endforeach()
|
||||
|
||||
@@ -1,29 +0,0 @@
|
||||
From 4add81bba40dcec62c4ea4481be8e35ac53e89d8 Mon Sep 17 00:00:00 2001
|
||||
From: Will Dietz <w@wdtz.org>
|
||||
Date: Thu, 18 May 2017 11:56:12 -0500
|
||||
Subject: [PATCH] "purity" patch for 5.0
|
||||
|
||||
---
|
||||
lib/Driver/ToolChains/Gnu.cpp | 7 -------
|
||||
1 file changed, 7 deletions(-)
|
||||
|
||||
diff --git a/lib/Driver/ToolChains/Gnu.cpp b/lib/Driver/ToolChains/Gnu.cpp
|
||||
index fe3c0191bb..c6a482bece 100644
|
||||
--- a/lib/Driver/ToolChains/Gnu.cpp
|
||||
+++ b/lib/Driver/ToolChains/Gnu.cpp
|
||||
@@ -487,13 +487,7 @@ void tools::gnutools::Linker::ConstructJob(Compilation &C, const JobAction &JA,
|
||||
} else {
|
||||
if (Args.hasArg(options::OPT_rdynamic))
|
||||
CmdArgs.push_back("-export-dynamic");
|
||||
|
||||
- if (!Args.hasArg(options::OPT_shared) && !IsStaticPIE &&
|
||||
- !Args.hasArg(options::OPT_r)) {
|
||||
- CmdArgs.push_back("-dynamic-linker");
|
||||
- CmdArgs.push_back(Args.MakeArgString(Twine(D.DyldPrefix) +
|
||||
- ToolChain.getDynamicLinker(Args)));
|
||||
- }
|
||||
}
|
||||
|
||||
CmdArgs.push_back("-o");
|
||||
--
|
||||
2.11.0
|
||||
@@ -1,11 +0,0 @@
|
||||
--- a/lib/asan/CMakeLists.txt 2022-06-22 16:46:24.000000000 +0000
|
||||
+++ b/lib/asan/CMakeLists.txt
|
||||
@@ -46,7 +46,7 @@ set(ASAN_STATIC_SOURCES
|
||||
asan_rtl_static.cpp
|
||||
)
|
||||
|
||||
-if (NOT WIN32 AND NOT APPLE)
|
||||
+if (LINUX)
|
||||
list(APPEND ASAN_STATIC_SOURCES
|
||||
asan_rtl_x86_64.S
|
||||
)
|
||||
@@ -1,21 +0,0 @@
|
||||
--- a/lib/builtins/fp_lib.h 1969-12-31 16:00:01.000000000 -0800
|
||||
+++ b/lib/builtins/fp_lib.h 2023-12-21 23:39:36.066927293 -0800
|
||||
@@ -26,18 +26,6 @@
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
|
||||
-// x86_64 FreeBSD prior v9.3 define fixed-width types incorrectly in
|
||||
-// 32-bit mode.
|
||||
-#if defined(__FreeBSD__) && defined(__i386__)
|
||||
-#include <sys/param.h>
|
||||
-#if __FreeBSD_version < 903000 // v9.3
|
||||
-#define uint64_t unsigned long long
|
||||
-#define int64_t long long
|
||||
-#undef UINT64_C
|
||||
-#define UINT64_C(c) (c##ULL)
|
||||
-#endif
|
||||
-#endif
|
||||
-
|
||||
#if defined SINGLE_PRECISION
|
||||
|
||||
typedef uint16_t half_rep_t;
|
||||
@@ -1,20 +0,0 @@
|
||||
diff --git a/cmake/base-config-ix.cmake b/cmake/base-config-ix.cmake
|
||||
index 8a6219568b3f..30ee68a47ccf 100644
|
||||
--- a/cmake/base-config-ix.cmake
|
||||
+++ b/cmake/base-config-ix.cmake
|
||||
@@ -100,13 +100,13 @@ endif()
|
||||
if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE)
|
||||
set(COMPILER_RT_OUTPUT_LIBRARY_DIR
|
||||
${COMPILER_RT_OUTPUT_DIR}/lib)
|
||||
- extend_path(default_install_path "${COMPILER_RT_INSTALL_PATH}" lib)
|
||||
+ extend_path(default_install_path "${COMPILER_RT_INSTALL_PATH}" "${CMAKE_INSTALL_LIBDIR}")
|
||||
set(COMPILER_RT_INSTALL_LIBRARY_DIR "${default_install_path}" CACHE PATH
|
||||
"Path where built compiler-rt libraries should be installed.")
|
||||
else(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE)
|
||||
set(COMPILER_RT_OUTPUT_LIBRARY_DIR
|
||||
${COMPILER_RT_OUTPUT_DIR}/lib/${COMPILER_RT_OS_DIR})
|
||||
- extend_path(default_install_path "${COMPILER_RT_INSTALL_PATH}" "lib/${COMPILER_RT_OS_DIR}")
|
||||
+ extend_path(default_install_path "${COMPILER_RT_INSTALL_PATH}" "${CMAKE_INSTALL_LIBDIR}/${COMPILER_RT_OS_DIR}")
|
||||
set(COMPILER_RT_INSTALL_LIBRARY_DIR "${default_install_path}" CACHE PATH
|
||||
"Path where built compiler-rt libraries should be installed.")
|
||||
endif()
|
||||
@@ -1,22 +0,0 @@
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 5a06805f05f1..86a50329e6a8 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -117,7 +117,7 @@ set(LIBUNWIND_INSTALL_RUNTIME_DIR "${CMAKE_INSTALL_BINDIR}" CACHE PATH
|
||||
|
||||
if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE)
|
||||
set(LIBUNWIND_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/${LLVM_DEFAULT_TARGET_TRIPLE})
|
||||
- set(LIBUNWIND_INSTALL_LIBRARY_DIR lib${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE} CACHE PATH
|
||||
+ set(LIBUNWIND_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE} CACHE PATH
|
||||
"Path where built libunwind libraries should be installed.")
|
||||
if(LIBCXX_LIBDIR_SUBDIR)
|
||||
string(APPEND LIBUNWIND_LIBRARY_DIR /${LIBUNWIND_LIBDIR_SUBDIR})
|
||||
@@ -129,7 +129,7 @@ else()
|
||||
else()
|
||||
set(LIBUNWIND_LIBRARY_DIR ${CMAKE_BINARY_DIR}/lib${LIBUNWIND_LIBDIR_SUFFIX})
|
||||
endif()
|
||||
- set(LIBUNWIND_INSTALL_LIBRARY_DIR lib${LIBUNWIND_LIBDIR_SUFFIX} CACHE PATH
|
||||
+ set(LIBUNWIND_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBUNWIND_LIBDIR_SUFFIX} CACHE PATH
|
||||
"Path where built libunwind libraries should be installed.")
|
||||
endif()
|
||||
|
||||
@@ -1,46 +0,0 @@
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 3d6225646fe6..9b5d0b15af13 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -33,10 +33,22 @@ if(LLD_BUILT_STANDALONE)
|
||||
find_package(LLVM REQUIRED HINTS "${LLVM_CMAKE_DIR}")
|
||||
list(APPEND CMAKE_MODULE_PATH "${LLVM_DIR}")
|
||||
|
||||
- # Turn into CACHE PATHs for overwriting
|
||||
- set(LLVM_INCLUDE_DIRS ${LLVM_INCLUDE_DIRS} CACHE PATH "Path to llvm/include and any other header dirs needed")
|
||||
- set(LLVM_BINARY_DIR "${LLVM_BINARY_DIR}" CACHE PATH "Path to LLVM build tree")
|
||||
- set(LLVM_MAIN_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../llvm" CACHE PATH "Path to LLVM source tree")
|
||||
+ # We can't check LLVM_CONFIG here, because find_package(LLVM ...) also sets
|
||||
+ # LLVM_CONFIG.
|
||||
+ if (NOT LLVM_CONFIG_FOUND)
|
||||
+ # Pull values from LLVMConfig.cmake. We can drop this once the llvm-config
|
||||
+ # path is removed.
|
||||
+ set(INCLUDE_DIRS ${LLVM_INCLUDE_DIRS})
|
||||
+ set(LLVM_OBJ_DIR "${LLVM_BINARY_DIR}")
|
||||
+ # N.B. this is just a default value, the CACHE PATHs below can be overridden.
|
||||
+ set(MAIN_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../llvm")
|
||||
+ else()
|
||||
+ set(INCLUDE_DIRS "${LLVM_BINARY_DIR}/include" "${MAIN_INCLUDE_DIR}")
|
||||
+ endif()
|
||||
+
|
||||
+ set(LLVM_INCLUDE_DIRS ${INCLUDE_DIRS} CACHE PATH "Path to llvm/include and any other header dirs needed")
|
||||
+ set(LLVM_BINARY_DIR "${LLVM_OBJ_ROOT}" CACHE PATH "Path to LLVM build tree")
|
||||
+ set(LLVM_MAIN_SRC_DIR "${MAIN_SRC_DIR}" CACHE PATH "Path to LLVM source tree")
|
||||
|
||||
find_program(LLVM_TABLEGEN_EXE "llvm-tblgen" ${LLVM_TOOLS_BINARY_DIR}
|
||||
NO_DEFAULT_PATH)
|
||||
diff --git a/cmake/modules/AddLLD.cmake b/cmake/modules/AddLLD.cmake
|
||||
index d3924f7243d4..42a7cd62281c 100644
|
||||
--- a/cmake/modules/AddLLD.cmake
|
||||
+++ b/cmake/modules/AddLLD.cmake
|
||||
@@ -18,8 +18,8 @@ macro(add_lld_library name)
|
||||
install(TARGETS ${name}
|
||||
COMPONENT ${name}
|
||||
${export_to_lldtargets}
|
||||
- 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}"
|
||||
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
|
||||
|
||||
if (${ARG_SHARED} AND NOT CMAKE_CONFIGURATION_TYPES)
|
||||
@@ -1,14 +0,0 @@
|
||||
diff --git a/cmake/modules/LLDBConfig.cmake b/cmake/modules/LLDBConfig.cmake
|
||||
index ec06ba285f27..286162f098fb 100644
|
||||
--- a/cmake/modules/LLDBConfig.cmake
|
||||
+++ b/cmake/modules/LLDBConfig.cmake
|
||||
@@ -290,7 +290,8 @@ if (NOT TARGET clang-resource-headers)
|
||||
# could be and pick the first that exists.
|
||||
foreach(CANDIDATE "${Clang_DIR}/../.." "${LLVM_DIR}" "${LLVM_LIBRARY_DIRS}"
|
||||
"${LLVM_BUILD_LIBRARY_DIR}"
|
||||
- "${LLVM_LIBRARY_DIR}")
|
||||
+ "${LLVM_LIBRARY_DIR}"
|
||||
+ "@clangLibDir@")
|
||||
# Build the resource directory path by appending 'clang/<version number>'.
|
||||
set(CANDIDATE_RESOURCE_DIR "${CANDIDATE}/clang/${LLDB_CLANG_RESOURCE_DIR_NAME}")
|
||||
if (IS_DIRECTORY "${CANDIDATE_RESOURCE_DIR}")
|
||||
@@ -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);
|
||||
@@ -1,79 +0,0 @@
|
||||
diff --git a/test/Unit/lit.cfg.py b/test/Unit/lit.cfg.py
|
||||
index 81e8dc04acea..479ff95681e2 100644
|
||||
--- a/test/Unit/lit.cfg.py
|
||||
+++ b/test/Unit/lit.cfg.py
|
||||
@@ -3,6 +3,7 @@
|
||||
# Configuration file for the 'lit' test runner.
|
||||
|
||||
import os
|
||||
+import platform
|
||||
import subprocess
|
||||
|
||||
import lit.formats
|
||||
@@ -55,3 +56,26 @@ if sys.platform in ['win32', 'cygwin'] and os.path.isdir(config.shlibdir):
|
||||
# Win32 may use %SYSTEMDRIVE% during file system shell operations, so propogate.
|
||||
if sys.platform == 'win32' and 'SYSTEMDRIVE' in os.environ:
|
||||
config.environment['SYSTEMDRIVE'] = os.environ['SYSTEMDRIVE']
|
||||
+
|
||||
+# Add the LLVM dynamic libs to the platform-specific loader search path env var:
|
||||
+#
|
||||
+# TODO: this is copied from `clang`'s `lit.cfg.py`; should unify..
|
||||
+def find_shlibpath_var():
|
||||
+ if platform.system() in ['Linux', 'FreeBSD', 'NetBSD', 'OpenBSD', 'SunOS']:
|
||||
+ yield 'LD_LIBRARY_PATH'
|
||||
+ elif platform.system() == 'Darwin':
|
||||
+ yield 'DYLD_LIBRARY_PATH'
|
||||
+ elif platform.system() == 'Windows':
|
||||
+ yield 'PATH'
|
||||
+ elif platform.system() == 'AIX':
|
||||
+ yield 'LIBPATH'
|
||||
+
|
||||
+for shlibpath_var in find_shlibpath_var():
|
||||
+ shlibpath = os.path.pathsep.join(
|
||||
+ (config.shlibdir,
|
||||
+ config.environment.get(shlibpath_var, '')))
|
||||
+ config.environment[shlibpath_var] = shlibpath
|
||||
+ break
|
||||
+else:
|
||||
+ lit_config.warning("unable to inject shared library path on '{}'"
|
||||
+ .format(platform.system()))
|
||||
diff --git a/test/lit.cfg.py b/test/lit.cfg.py
|
||||
index 75a38b4c5dad..856fc75c9d74 100644
|
||||
--- a/test/lit.cfg.py
|
||||
+++ b/test/lit.cfg.py
|
||||
@@ -42,6 +42,26 @@ llvm_config.with_environment('PATH', config.llvm_tools_dir, append_path=True)
|
||||
llvm_config.with_system_environment(
|
||||
['HOME', 'INCLUDE', 'LIB', 'TMP', 'TEMP'])
|
||||
|
||||
+# Add the LLVM dynamic libs to the platform-specific loader search path env var:
|
||||
+#
|
||||
+# TODO: this is copied from `clang`'s `lit.cfg.py`; should unify..
|
||||
+def find_shlibpath_var():
|
||||
+ if platform.system() in ['Linux', 'FreeBSD', 'NetBSD', 'OpenBSD', 'SunOS']:
|
||||
+ yield 'LD_LIBRARY_PATH'
|
||||
+ elif platform.system() == 'Darwin':
|
||||
+ yield 'DYLD_LIBRARY_PATH'
|
||||
+ elif platform.system() == 'Windows':
|
||||
+ yield 'PATH'
|
||||
+ elif platform.system() == 'AIX':
|
||||
+ yield 'LIBPATH'
|
||||
+
|
||||
+for shlibpath_var in find_shlibpath_var():
|
||||
+ shlibpath = config.llvm_shlib_dir
|
||||
+ llvm_config.with_environment(shlibpath_var, shlibpath, append_path = True)
|
||||
+ break
|
||||
+else:
|
||||
+ lit_config.warning("unable to inject shared library path on '{}'"
|
||||
+ .format(platform.system()))
|
||||
|
||||
# Set up OCAMLPATH to include newly built OCaml libraries.
|
||||
top_ocaml_lib = os.path.join(config.llvm_lib_dir, 'ocaml')
|
||||
@@ -318,7 +338,7 @@ def have_cxx_shared_library():
|
||||
|
||||
try:
|
||||
readobj_cmd = subprocess.Popen(
|
||||
- [readobj_exe, '--needed-libs', readobj_exe], stdout=subprocess.PIPE)
|
||||
+ [readobj_exe, '--needed-libs', readobj_exe], stdout=subprocess.PIPE, env=config.environment)
|
||||
except OSError:
|
||||
print('could not exec llvm-readobj')
|
||||
return False
|
||||
@@ -1,21 +0,0 @@
|
||||
diff --git a/libomptarget/DeviceRTL/CMakeLists.txt b/libomptarget/DeviceRTL/CMakeLists.txt
|
||||
index 49b398c9f765..6f1dd1340010 100644
|
||||
--- a/libomptarget/DeviceRTL/CMakeLists.txt
|
||||
+++ b/libomptarget/DeviceRTL/CMakeLists.txt
|
||||
@@ -27,11 +27,11 @@ endif()
|
||||
if (LLVM_DIR)
|
||||
# Builds that use pre-installed LLVM have LLVM_DIR set.
|
||||
# A standalone or LLVM_ENABLE_RUNTIMES=openmp build takes this route
|
||||
- find_program(CLANG_TOOL clang PATHS ${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH)
|
||||
- find_program(PACKAGER_TOOL clang-offload-packager PATHS ${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH)
|
||||
- find_program(LINK_TOOL llvm-link PATHS ${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH)
|
||||
- find_program(OPT_TOOL opt PATHS ${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH)
|
||||
- find_program(EXTRACT_TOOL llvm-extract PATHS ${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH)
|
||||
+ find_program(CLANG_TOOL clang PATHS ${LLVM_TOOLS_BINARY_DIR})
|
||||
+ find_program(PACKAGER_TOOL clang-offload-packager PATHS ${LLVM_TOOLS_BINARY_DIR})
|
||||
+ find_program(LINK_TOOL llvm-link PATHS ${LLVM_TOOLS_BINARY_DIR})
|
||||
+ find_program(OPT_TOOL opt PATHS ${LLVM_TOOLS_BINARY_DIR})
|
||||
+ find_program(EXTRACT_TOOL llvm-extract PATHS ${LLVM_TOOLS_BINARY_DIR})
|
||||
if ((NOT CLANG_TOOL) OR (NOT LINK_TOOL) OR (NOT OPT_TOOL) OR (NOT EXTRACT_TOOL) OR (NOT PACKAGER_TOOL))
|
||||
libomptarget_say("Not building DeviceRTL. Missing clang: ${CLANG_TOOL}, llvm-link: ${LINK_TOOL}, opt: ${OPT_TOOL}, llvm-extract: ${EXTRACT_TOOL}, or clang-offload-packager: ${PACKAGER_TOOL}")
|
||||
return()
|
||||
@@ -1,22 +0,0 @@
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index b6ddbe90516d..311ab1d50e7f 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -29,7 +29,7 @@ if (OPENMP_STANDALONE_BUILD)
|
||||
set(OPENMP_LIBDIR_SUFFIX "" CACHE STRING
|
||||
"Suffix of lib installation directory, e.g. 64 => lib64")
|
||||
# Do not use OPENMP_LIBDIR_SUFFIX directly, use OPENMP_INSTALL_LIBDIR.
|
||||
- set(OPENMP_INSTALL_LIBDIR "lib${OPENMP_LIBDIR_SUFFIX}")
|
||||
+ set(OPENMP_INSTALL_LIBDIR "${CMAKE_INSTALL_LIBDIR}${OPENMP_LIBDIR_SUFFIX}")
|
||||
|
||||
# Group test settings.
|
||||
set(OPENMP_TEST_C_COMPILER ${CMAKE_C_COMPILER} CACHE STRING
|
||||
@@ -40,7 +40,7 @@ if (OPENMP_STANDALONE_BUILD)
|
||||
else()
|
||||
set(OPENMP_ENABLE_WERROR ${LLVM_ENABLE_WERROR})
|
||||
# If building in tree, we honor the same install suffix LLVM uses.
|
||||
- set(OPENMP_INSTALL_LIBDIR "lib${LLVM_LIBDIR_SUFFIX}")
|
||||
+ set(OPENMP_INSTALL_LIBDIR "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}")
|
||||
|
||||
if (NOT MSVC)
|
||||
set(OPENMP_TEST_C_COMPILER ${LLVM_RUNTIME_OUTPUT_INTDIR}/clang)
|
||||
@@ -52,27 +52,12 @@ stdenv.mkDerivation (
|
||||
# libraries. eg: `clang -munsupported hello.c -lc`
|
||||
./clang-unsupported-option.patch
|
||||
]
|
||||
++ lib.optional (lib.versionOlder release_version "17") (fetchpatch {
|
||||
name = "ignore-nostd-link.patch";
|
||||
url = "https://github.com/llvm/llvm-project/commit/5b77e752dcd073846b89559d6c0e1a7699e58615.patch";
|
||||
relative = "clang";
|
||||
hash = "sha256-qzSAmoGY+7POkDhcGgQRPaNQ3+7PIcIc9cZuiE/eLkc=";
|
||||
})
|
||||
# Pass the correct path to libllvm
|
||||
++ [
|
||||
(replaceVars ./clang-at-least-16-LLVMgold-path.patch {
|
||||
libllvmLibdir = "${libllvm.lib}/lib";
|
||||
})
|
||||
]
|
||||
# Backport `__ENVIRONMENT_OS_VERSION_MIN_REQUIRED__` support from Clang 17.
|
||||
# This is needed by newer SDKs (14+).
|
||||
++ lib.optional (lib.versionOlder (lib.versions.major release_version) "17") (fetchpatch {
|
||||
name = "clang-darwin-An-OS-version-preprocessor-define.patch";
|
||||
url = "https://github.com/llvm/llvm-project/commit/c8e2dd8c6f490b68e41fe663b44535a8a21dfeab.patch?full_index=1";
|
||||
includes = [ "lib/Basic/Targets/OSTargets.cpp" ];
|
||||
stripLen = 1;
|
||||
hash = "sha256-Vs32kql7N6qtLqc12FtZHURcbenA7+N3E/nRRX3jdig=";
|
||||
})
|
||||
# Fixes a bunch of lambda-related crashes
|
||||
# https://github.com/llvm/llvm-project/pull/93206
|
||||
++ lib.optional (lib.versions.major release_version == "18") (fetchpatch {
|
||||
@@ -116,7 +101,8 @@ stdenv.mkDerivation (
|
||||
++ lib.optionals (lib.versionAtLeast release_version "21") [
|
||||
(lib.cmakeFeature "CLANG_RESOURCE_DIR" "${placeholder "lib"}/lib/clang/${lib.versions.major release_version}")
|
||||
]
|
||||
++ lib.optionals (lib.versionAtLeast release_version "17") [
|
||||
# TODO: Clean up on `staging`.
|
||||
++ [
|
||||
(lib.cmakeBool "LLVM_INCLUDE_TESTS" false)
|
||||
]
|
||||
++ lib.optionals enableManpages [
|
||||
|
||||
@@ -238,20 +238,7 @@ let
|
||||
lib.recurseIntoAttrs { llef = callPackage ./lldb-plugins/llef.nix { }; }
|
||||
);
|
||||
|
||||
lldb = callPackage ./lldb (
|
||||
{
|
||||
}
|
||||
// lib.optionalAttrs (lib.versions.major metadata.release_version == "16") {
|
||||
src = callPackage (
|
||||
{ runCommand }:
|
||||
runCommand "lldb-src-${metadata.version}" { } ''
|
||||
mkdir -p "$out"
|
||||
cp -r ${monorepoSrc}/cmake "$out"
|
||||
cp -r ${monorepoSrc}/lldb "$out"
|
||||
''
|
||||
) { };
|
||||
}
|
||||
);
|
||||
lldb = callPackage ./lldb { };
|
||||
|
||||
lldb-manpages = lowPrio (
|
||||
tools.lldb.override {
|
||||
|
||||
@@ -121,126 +121,116 @@ let
|
||||
|
||||
in
|
||||
|
||||
stdenv.mkDerivation (
|
||||
finalAttrs:
|
||||
{
|
||||
pname = "libcxx";
|
||||
inherit version cmakeFlags;
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "libcxx";
|
||||
inherit version cmakeFlags;
|
||||
|
||||
src =
|
||||
if monorepoSrc != null then
|
||||
runCommand "libcxx-src-${version}" { inherit (monorepoSrc) passthru; } (
|
||||
''
|
||||
mkdir -p "$out/llvm"
|
||||
cp -r ${monorepoSrc}/cmake "$out"
|
||||
cp -r ${monorepoSrc}/libcxx "$out"
|
||||
cp -r ${monorepoSrc}/llvm/cmake "$out/llvm"
|
||||
cp -r ${monorepoSrc}/llvm/utils "$out/llvm"
|
||||
cp -r ${monorepoSrc}/third-party "$out"
|
||||
''
|
||||
+ (lib.optionalString (lib.versionAtLeast release_version "20") ''
|
||||
cp -r ${monorepoSrc}/libc "$out"
|
||||
'')
|
||||
+ ''
|
||||
cp -r ${monorepoSrc}/runtimes "$out"
|
||||
''
|
||||
+ (lib.optionalString (cxxabi == null) ''
|
||||
cp -r ${monorepoSrc}/libcxxabi "$out"
|
||||
'')
|
||||
)
|
||||
else
|
||||
src;
|
||||
src =
|
||||
if monorepoSrc != null then
|
||||
runCommand "libcxx-src-${version}" { inherit (monorepoSrc) passthru; } (
|
||||
''
|
||||
mkdir -p "$out/llvm"
|
||||
cp -r ${monorepoSrc}/cmake "$out"
|
||||
cp -r ${monorepoSrc}/libcxx "$out"
|
||||
cp -r ${monorepoSrc}/llvm/cmake "$out/llvm"
|
||||
cp -r ${monorepoSrc}/llvm/utils "$out/llvm"
|
||||
cp -r ${monorepoSrc}/third-party "$out"
|
||||
''
|
||||
+ (lib.optionalString (lib.versionAtLeast release_version "20") ''
|
||||
cp -r ${monorepoSrc}/libc "$out"
|
||||
'')
|
||||
+ ''
|
||||
cp -r ${monorepoSrc}/runtimes "$out"
|
||||
''
|
||||
+ (lib.optionalString (cxxabi == null) ''
|
||||
cp -r ${monorepoSrc}/libcxxabi "$out"
|
||||
'')
|
||||
)
|
||||
else
|
||||
src;
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
"dev"
|
||||
];
|
||||
outputs = [
|
||||
"out"
|
||||
"dev"
|
||||
];
|
||||
|
||||
preConfigure = lib.optionalString stdenv.hostPlatform.isMusl ''
|
||||
patchShebangs utils/cat_files.py
|
||||
preConfigure = lib.optionalString stdenv.hostPlatform.isMusl ''
|
||||
patchShebangs utils/cat_files.py
|
||||
'';
|
||||
|
||||
# TODO: Remove on `staging`.
|
||||
patches = [ ];
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
ninja
|
||||
python3
|
||||
]
|
||||
++ lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames
|
||||
++ lib.optional (cxxabi != null) lndir;
|
||||
|
||||
buildInputs = [
|
||||
cxxabi
|
||||
]
|
||||
++ lib.optionals (useLLVM && !stdenv.hostPlatform.isWasm && !stdenv.hostPlatform.isFreeBSD) [
|
||||
libunwind
|
||||
];
|
||||
|
||||
# TODO: Possibly move back to `sourceRoot` on `staging`?
|
||||
postPatch = ''
|
||||
cd runtimes
|
||||
'';
|
||||
|
||||
# libc++.so is a linker script which expands to multiple libraries,
|
||||
# libc++.so.1 and libc++abi.so or the external cxxabi. ld-wrapper doesn't
|
||||
# support linker scripts so the external cxxabi needs to be symlinked in
|
||||
postInstall =
|
||||
lib.optionalString (cxxabi != null) ''
|
||||
lndir ${lib.getDev cxxabi}/include $dev/include/c++/v1
|
||||
lndir ${lib.getLib cxxabi}/lib $out/lib
|
||||
libcxxabi=$out/lib/lib${cxxabi.libName}.a
|
||||
''
|
||||
# LIBCXX_STATICALLY_LINK_ABI_IN_STATIC_LIBRARY=ON doesn't work for
|
||||
# external cxxabi libraries so merge libc++abi.a into libc++.a ourselves.
|
||||
|
||||
# GNU binutils emits objects in LIFO order in MRI scripts so after the merge
|
||||
# the objects are in reversed order so a second MRI script is required so the
|
||||
# objects in the archive are listed in proper order (libc++.a, libc++abi.a)
|
||||
+ lib.optionalString (cxxabi != null) ''
|
||||
libcxxabi=''${libcxxabi-$out/lib/libc++abi.a}
|
||||
if [[ -f $out/lib/libc++.a && -e $libcxxabi ]]; then
|
||||
$AR -M <<MRI
|
||||
create $out/lib/libc++.a
|
||||
addlib $out/lib/libc++.a
|
||||
addlib $libcxxabi
|
||||
save
|
||||
end
|
||||
MRI
|
||||
$AR -M <<MRI
|
||||
create $out/lib/libc++.a
|
||||
addlib $out/lib/libc++.a
|
||||
save
|
||||
end
|
||||
MRI
|
||||
fi
|
||||
'';
|
||||
|
||||
# TODO: Remove on `staging`.
|
||||
patches = [ ];
|
||||
passthru = {
|
||||
isLLVM = true;
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
ninja
|
||||
python3
|
||||
]
|
||||
++ lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames
|
||||
++ lib.optional (cxxabi != null) lndir;
|
||||
|
||||
buildInputs = [
|
||||
cxxabi
|
||||
]
|
||||
++ lib.optionals (useLLVM && !stdenv.hostPlatform.isWasm && !stdenv.hostPlatform.isFreeBSD) [
|
||||
libunwind
|
||||
meta = llvm_meta // {
|
||||
homepage = "https://libcxx.llvm.org/";
|
||||
description = "C++ standard library";
|
||||
longDescription = ''
|
||||
libc++ is an implementation of the C++ standard library, targeting C++11,
|
||||
C++14 and above.
|
||||
'';
|
||||
# "All of the code in libc++ is dual licensed under the MIT license and the
|
||||
# UIUC License (a BSD-like license)":
|
||||
license = with lib.licenses; [
|
||||
mit
|
||||
ncsa
|
||||
];
|
||||
|
||||
# libc++.so is a linker script which expands to multiple libraries,
|
||||
# libc++.so.1 and libc++abi.so or the external cxxabi. ld-wrapper doesn't
|
||||
# support linker scripts so the external cxxabi needs to be symlinked in
|
||||
postInstall =
|
||||
lib.optionalString (cxxabi != null) ''
|
||||
lndir ${lib.getDev cxxabi}/include $dev/include/c++/v1
|
||||
lndir ${lib.getLib cxxabi}/lib $out/lib
|
||||
libcxxabi=$out/lib/lib${cxxabi.libName}.a
|
||||
''
|
||||
# LIBCXX_STATICALLY_LINK_ABI_IN_STATIC_LIBRARY=ON doesn't work for
|
||||
# external cxxabi libraries so merge libc++abi.a into libc++.a ourselves.
|
||||
|
||||
# GNU binutils emits objects in LIFO order in MRI scripts so after the merge
|
||||
# the objects are in reversed order so a second MRI script is required so the
|
||||
# objects in the archive are listed in proper order (libc++.a, libc++abi.a)
|
||||
+ lib.optionalString (cxxabi != null) ''
|
||||
libcxxabi=''${libcxxabi-$out/lib/libc++abi.a}
|
||||
if [[ -f $out/lib/libc++.a && -e $libcxxabi ]]; then
|
||||
$AR -M <<MRI
|
||||
create $out/lib/libc++.a
|
||||
addlib $out/lib/libc++.a
|
||||
addlib $libcxxabi
|
||||
save
|
||||
end
|
||||
MRI
|
||||
$AR -M <<MRI
|
||||
create $out/lib/libc++.a
|
||||
addlib $out/lib/libc++.a
|
||||
save
|
||||
end
|
||||
MRI
|
||||
fi
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
isLLVM = true;
|
||||
};
|
||||
|
||||
meta = llvm_meta // {
|
||||
homepage = "https://libcxx.llvm.org/";
|
||||
description = "C++ standard library";
|
||||
longDescription = ''
|
||||
libc++ is an implementation of the C++ standard library, targeting C++11,
|
||||
C++14 and above.
|
||||
'';
|
||||
# "All of the code in libc++ is dual licensed under the MIT license and the
|
||||
# UIUC License (a BSD-like license)":
|
||||
license = with lib.licenses; [
|
||||
mit
|
||||
ncsa
|
||||
];
|
||||
};
|
||||
}
|
||||
// (
|
||||
if lib.versionAtLeast release_version "17" then
|
||||
{
|
||||
postPatch = ''
|
||||
cd runtimes
|
||||
'';
|
||||
}
|
||||
else
|
||||
{
|
||||
sourceRoot = "${finalAttrs.src.name}/runtimes";
|
||||
}
|
||||
)
|
||||
)
|
||||
};
|
||||
})
|
||||
|
||||
@@ -16,92 +16,85 @@
|
||||
devExtraCmakeFlags ? [ ],
|
||||
getVersionFile,
|
||||
}:
|
||||
stdenv.mkDerivation (
|
||||
finalAttrs:
|
||||
let
|
||||
hasPatches = builtins.length finalAttrs.patches > 0;
|
||||
in
|
||||
{
|
||||
pname = "libunwind";
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "libunwind";
|
||||
|
||||
inherit version;
|
||||
inherit version;
|
||||
|
||||
patches = lib.optional (lib.versionOlder release_version "17") (
|
||||
getVersionFile "libunwind/gnu-install-dirs.patch"
|
||||
);
|
||||
# TODO: Remove on `staging`.
|
||||
patches = [ ];
|
||||
|
||||
src =
|
||||
if monorepoSrc != null then
|
||||
runCommand "libunwind-src-${version}" { inherit (monorepoSrc) passthru; } ''
|
||||
mkdir -p "$out"
|
||||
cp -r ${monorepoSrc}/cmake "$out"
|
||||
cp -r ${monorepoSrc}/libunwind "$out"
|
||||
mkdir -p "$out/libcxx"
|
||||
cp -r ${monorepoSrc}/libcxx/cmake "$out/libcxx"
|
||||
cp -r ${monorepoSrc}/libcxx/utils "$out/libcxx"
|
||||
mkdir -p "$out/llvm"
|
||||
cp -r ${monorepoSrc}/llvm/cmake "$out/llvm"
|
||||
cp -r ${monorepoSrc}/llvm/utils "$out/llvm"
|
||||
cp -r ${monorepoSrc}/runtimes "$out"
|
||||
''
|
||||
else
|
||||
src;
|
||||
src =
|
||||
if monorepoSrc != null then
|
||||
runCommand "libunwind-src-${version}" { inherit (monorepoSrc) passthru; } ''
|
||||
mkdir -p "$out"
|
||||
cp -r ${monorepoSrc}/cmake "$out"
|
||||
cp -r ${monorepoSrc}/libunwind "$out"
|
||||
mkdir -p "$out/libcxx"
|
||||
cp -r ${monorepoSrc}/libcxx/cmake "$out/libcxx"
|
||||
cp -r ${monorepoSrc}/libcxx/utils "$out/libcxx"
|
||||
mkdir -p "$out/llvm"
|
||||
cp -r ${monorepoSrc}/llvm/cmake "$out/llvm"
|
||||
cp -r ${monorepoSrc}/llvm/utils "$out/llvm"
|
||||
cp -r ${monorepoSrc}/runtimes "$out"
|
||||
''
|
||||
else
|
||||
src;
|
||||
|
||||
sourceRoot = "${finalAttrs.src.name}/runtimes";
|
||||
sourceRoot = "${finalAttrs.src.name}/runtimes";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
"dev"
|
||||
];
|
||||
outputs = [
|
||||
"out"
|
||||
"dev"
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
ninja
|
||||
python3
|
||||
];
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
ninja
|
||||
python3
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
(lib.cmakeBool "LIBUNWIND_ENABLE_SHARED" enableShared)
|
||||
(lib.cmakeFeature "LLVM_ENABLE_RUNTIMES" "libunwind")
|
||||
]
|
||||
++ devExtraCmakeFlags;
|
||||
cmakeFlags = [
|
||||
(lib.cmakeBool "LIBUNWIND_ENABLE_SHARED" enableShared)
|
||||
(lib.cmakeFeature "LLVM_ENABLE_RUNTIMES" "libunwind")
|
||||
]
|
||||
++ devExtraCmakeFlags;
|
||||
|
||||
prePatch = lib.optionalString (hasPatches || lib.versionOlder release_version "18") ''
|
||||
cd ../libunwind
|
||||
chmod -R u+w .
|
||||
prePatch = lib.optionalString (lib.versionOlder release_version "18") ''
|
||||
cd ../libunwind
|
||||
chmod -R u+w .
|
||||
'';
|
||||
|
||||
postPatch = lib.optionalString (lib.versionOlder release_version "18") ''
|
||||
cd ../runtimes
|
||||
'';
|
||||
|
||||
postInstall =
|
||||
lib.optionalString (enableShared && !stdenv.hostPlatform.isDarwin && !stdenv.hostPlatform.isWindows)
|
||||
''
|
||||
# libcxxabi wants to link to libunwind_shared.so (?).
|
||||
ln -s $out/lib/libunwind.so $out/lib/libunwind_shared.so
|
||||
''
|
||||
+ lib.optionalString (enableShared && stdenv.hostPlatform.isWindows) ''
|
||||
ln -s $out/lib/libunwind.dll.a $out/lib/libunwind_shared.dll.a
|
||||
''
|
||||
+ lib.optionalString (doFakeLibgcc && !stdenv.hostPlatform.isWindows) ''
|
||||
ln -s $out/lib/libunwind.so $out/lib/libgcc_s.so
|
||||
ln -s $out/lib/libunwind.so $out/lib/libgcc_s.so.1
|
||||
''
|
||||
+ lib.optionalString (doFakeLibgcc && stdenv.hostPlatform.isWindows) ''
|
||||
ln -s $out/lib/libunwind.dll.a $out/lib/libgcc_s.dll.a
|
||||
'';
|
||||
|
||||
postPatch = lib.optionalString (hasPatches || lib.versionOlder release_version "18") ''
|
||||
cd ../runtimes
|
||||
meta = llvm_meta // {
|
||||
# Details: https://github.com/llvm/llvm-project/blob/main/libunwind/docs/index.rst
|
||||
homepage = "https://clang.llvm.org/docs/Toolchain.html#unwind-library";
|
||||
description = "LLVM's unwinder library";
|
||||
longDescription = ''
|
||||
The unwind library provides a family of _Unwind_* functions implementing
|
||||
the language-neutral stack unwinding portion of the Itanium C++ ABI (Level
|
||||
I). It is a dependency of the C++ ABI library, and sometimes is a
|
||||
dependency of other runtimes.
|
||||
'';
|
||||
|
||||
postInstall =
|
||||
lib.optionalString (enableShared && !stdenv.hostPlatform.isDarwin && !stdenv.hostPlatform.isWindows)
|
||||
''
|
||||
# libcxxabi wants to link to libunwind_shared.so (?).
|
||||
ln -s $out/lib/libunwind.so $out/lib/libunwind_shared.so
|
||||
''
|
||||
+ lib.optionalString (enableShared && stdenv.hostPlatform.isWindows) ''
|
||||
ln -s $out/lib/libunwind.dll.a $out/lib/libunwind_shared.dll.a
|
||||
''
|
||||
+ lib.optionalString (doFakeLibgcc && !stdenv.hostPlatform.isWindows) ''
|
||||
ln -s $out/lib/libunwind.so $out/lib/libgcc_s.so
|
||||
ln -s $out/lib/libunwind.so $out/lib/libgcc_s.so.1
|
||||
''
|
||||
+ lib.optionalString (doFakeLibgcc && stdenv.hostPlatform.isWindows) ''
|
||||
ln -s $out/lib/libunwind.dll.a $out/lib/libgcc_s.dll.a
|
||||
'';
|
||||
|
||||
meta = llvm_meta // {
|
||||
# Details: https://github.com/llvm/llvm-project/blob/main/libunwind/docs/index.rst
|
||||
homepage = "https://clang.llvm.org/docs/Toolchain.html#unwind-library";
|
||||
description = "LLVM's unwinder library";
|
||||
longDescription = ''
|
||||
The unwind library provides a family of _Unwind_* functions implementing
|
||||
the language-neutral stack unwinding portion of the Itanium C++ ABI (Level
|
||||
I). It is a dependency of the C++ ABI library, and sometimes is a
|
||||
dependency of other runtimes.
|
||||
'';
|
||||
};
|
||||
}
|
||||
)
|
||||
};
|
||||
})
|
||||
|
||||
@@ -71,28 +71,12 @@ stdenv.mkDerivation (
|
||||
sourceRoot = "${finalAttrs.src.name}/lldb";
|
||||
|
||||
patches =
|
||||
let
|
||||
resourceDirPatch =
|
||||
(replaceVars (getVersionFile "lldb/resource-dir.patch") {
|
||||
clangLibDir = "${lib.getLib libclang}/lib";
|
||||
}).overrideAttrs
|
||||
(_: _: { name = "resource-dir.patch"; });
|
||||
in
|
||||
lib.optional (lib.versionOlder release_version "18") (fetchpatch {
|
||||
name = "libcxx-19-char_traits.patch";
|
||||
url = "https://github.com/llvm/llvm-project/commit/68744ffbdd7daac41da274eef9ac0d191e11c16d.patch";
|
||||
stripLen = 1;
|
||||
hash = "sha256-QCGhsL/mi7610ZNb5SqxjRGjwJeK2rwtsFVGeG3PUGc=";
|
||||
})
|
||||
++ lib.optionals (lib.versionOlder release_version "17") [
|
||||
resourceDirPatch
|
||||
(fetchpatch {
|
||||
name = "add-cstdio.patch";
|
||||
url = "https://github.com/llvm/llvm-project/commit/73e15b5edb4fa4a77e68c299a6e3b21e610d351f.patch";
|
||||
stripLen = 1;
|
||||
hash = "sha256-eFcvxZaAuBsY/bda1h9212QevrXyvCHw8Cr9ngetDr0=";
|
||||
})
|
||||
]
|
||||
++ [ ./gnu-install-dirs.patch ];
|
||||
|
||||
nativeBuildInputs = [
|
||||
@@ -147,7 +131,8 @@ stdenv.mkDerivation (
|
||||
++ lib.optionals (!stdenv.hostPlatform.isDarwin) [
|
||||
(lib.cmakeFeature "LLDB_CODESIGN_IDENTITY" "") # codesigning makes nondeterministic
|
||||
]
|
||||
++ lib.optionals (lib.versionAtLeast release_version "17") [
|
||||
# TODO: Clean up on `staging`.
|
||||
++ [
|
||||
(lib.cmakeFeature "CLANG_RESOURCE_DIR" "../../../../${lib.getLib libclang}")
|
||||
]
|
||||
++ lib.optionals enableManpages [
|
||||
|
||||
@@ -178,15 +178,6 @@ stdenv.mkDerivation (
|
||||
stripLen = 1;
|
||||
}
|
||||
)
|
||||
++ lib.optionals (lib.versionOlder (lib.versions.major release_version) "17") [
|
||||
# fix RuntimeDyld usage on aarch64-linux (e.g. python312Packages.numba tests)
|
||||
# See also: https://github.com/numba/numba/issues/9109
|
||||
(fetchpatch {
|
||||
url = "https://github.com/llvm/llvm-project/commit/2e1b838a889f9793d4bcd5dbfe10db9796b77143.patch";
|
||||
relative = "llvm";
|
||||
hash = "sha256-Ot45P/iwaR4hkcM3xtLwfryQNgHI6pv6ADjv98tgdZA=";
|
||||
})
|
||||
]
|
||||
++
|
||||
lib.optional (lib.versions.major release_version == "17")
|
||||
# Fixes a crash with -fzero-call-used-regs=used-gpr
|
||||
@@ -216,16 +207,14 @@ stdenv.mkDerivation (
|
||||
hash = "sha256-fqw5gTSEOGs3kAguR4tINFG7Xja1RAje+q67HJt2nGg=";
|
||||
})
|
||||
]
|
||||
++
|
||||
lib.optionals (lib.versionAtLeast release_version "17" && lib.versionOlder release_version "19")
|
||||
[
|
||||
# Fixes test-suite on glibc 2.40 (https://github.com/llvm/llvm-project/pull/100804)
|
||||
(fetchpatch {
|
||||
url = "https://github.com/llvm/llvm-project/commit/1e8df9e85a1ff213e5868bd822877695f27504ad.patch";
|
||||
hash = "sha256-mvBlG2RxpZPFnPI7jvCMz+Fc8JuM15Ye3th1FVZMizE=";
|
||||
stripLen = 1;
|
||||
})
|
||||
]
|
||||
++ lib.optionals (lib.versionOlder release_version "19") [
|
||||
# Fixes test-suite on glibc 2.40 (https://github.com/llvm/llvm-project/pull/100804)
|
||||
(fetchpatch {
|
||||
url = "https://github.com/llvm/llvm-project/commit/1e8df9e85a1ff213e5868bd822877695f27504ad.patch";
|
||||
hash = "sha256-mvBlG2RxpZPFnPI7jvCMz+Fc8JuM15Ye3th1FVZMizE=";
|
||||
stripLen = 1;
|
||||
})
|
||||
]
|
||||
++ lib.optionals enablePolly [
|
||||
# Just like the `gnu-install-dirs` patch, but for `polly`.
|
||||
(getVersionFile "llvm/gnu-install-dirs-polly.patch")
|
||||
@@ -392,12 +381,6 @@ stdenv.mkDerivation (
|
||||
''
|
||||
rm test/tools/llvm-objcopy/ELF/strip-preserve-atime.test
|
||||
''
|
||||
+
|
||||
# timing-based tests are trouble
|
||||
lib.optionalString (lib.versionOlder release_version "17") ''
|
||||
|
||||
rm utils/lit/tests/googletest-timeout.py
|
||||
''
|
||||
+
|
||||
# valgrind unhappy with musl or glibc, but fails w/musl only
|
||||
optionalString stdenv.hostPlatform.isMusl ''
|
||||
|
||||
@@ -10,21 +10,16 @@
|
||||
after = "18";
|
||||
path = ../18;
|
||||
}
|
||||
{
|
||||
before = "17";
|
||||
path = ../16;
|
||||
}
|
||||
];
|
||||
"clang/aarch64-tblgen.patch" = [
|
||||
{
|
||||
after = "17";
|
||||
before = "18";
|
||||
path = ../17;
|
||||
}
|
||||
];
|
||||
"lld/add-table-base.patch" = [
|
||||
{
|
||||
path = ../16;
|
||||
path = ../17;
|
||||
}
|
||||
];
|
||||
"lld/gnu-install-dirs.patch" = [
|
||||
@@ -66,16 +61,11 @@
|
||||
}
|
||||
{
|
||||
before = "18";
|
||||
path = ../16;
|
||||
path = ../17;
|
||||
}
|
||||
];
|
||||
"llvm/llvm-lit-cfg-add-libs-to-dylib-path.patch" = [
|
||||
{
|
||||
before = "17";
|
||||
path = ../16;
|
||||
}
|
||||
{
|
||||
after = "17";
|
||||
path = ../17;
|
||||
}
|
||||
];
|
||||
@@ -86,23 +76,17 @@
|
||||
}
|
||||
{
|
||||
before = "18";
|
||||
path = ../16;
|
||||
path = ../17;
|
||||
}
|
||||
];
|
||||
"llvm/polly-lit-cfg-add-libs-to-dylib-path.patch" = [
|
||||
{
|
||||
path = ../16;
|
||||
}
|
||||
];
|
||||
"libunwind/gnu-install-dirs.patch" = [
|
||||
{
|
||||
before = "17";
|
||||
path = ../16;
|
||||
path = ../17;
|
||||
}
|
||||
];
|
||||
"compiler-rt/X86-support-extension.patch" = [
|
||||
{
|
||||
path = ../16;
|
||||
path = ../17;
|
||||
}
|
||||
];
|
||||
"compiler-rt/armv6-scudo-libatomic.patch" = [
|
||||
@@ -112,38 +96,33 @@
|
||||
}
|
||||
{
|
||||
before = "19";
|
||||
path = ../16;
|
||||
path = ../17;
|
||||
}
|
||||
];
|
||||
"compiler-rt/gnu-install-dirs.patch" = [
|
||||
{
|
||||
before = "17";
|
||||
path = ../16;
|
||||
}
|
||||
{
|
||||
path = ../17;
|
||||
}
|
||||
];
|
||||
"compiler-rt/darwin-targetconditionals.patch" = [
|
||||
{
|
||||
path = ../16;
|
||||
path = ../17;
|
||||
}
|
||||
];
|
||||
"compiler-rt/normalize-var.patch" = [
|
||||
{
|
||||
path = ../16;
|
||||
path = ../17;
|
||||
}
|
||||
];
|
||||
"openmp/fix-find-tool.patch" = [
|
||||
{
|
||||
after = "17";
|
||||
before = "19";
|
||||
path = ../17;
|
||||
}
|
||||
];
|
||||
"openmp/run-lit-directly.patch" = [
|
||||
{
|
||||
path = ../16;
|
||||
path = ../17;
|
||||
}
|
||||
];
|
||||
"libclc/use-default-paths.patch" = [
|
||||
@@ -160,7 +139,7 @@
|
||||
"libclc/gnu-install-dirs.patch" = [
|
||||
{
|
||||
before = "21";
|
||||
path = ../16;
|
||||
path = ../17;
|
||||
}
|
||||
{
|
||||
after = "21";
|
||||
|
||||
@@ -22,7 +22,6 @@
|
||||
}@packageSetArgs:
|
||||
let
|
||||
versions = {
|
||||
"16.0.6".officialRelease.sha256 = "sha256-fspqSReX+VD+Nl/Cfq+tDcdPtnQPV1IRopNDfd5VtUs=";
|
||||
"17.0.6".officialRelease.sha256 = "sha256-8MEDLLhocshmxoEBRSKlJ/GzJ8nfuzQ8qn0X/vLA+ag=";
|
||||
"18.1.8".officialRelease.sha256 = "sha256-iiZKMRo/WxJaBXct9GdAcAT3cz9d9pnAcO1mmR6oPNE=";
|
||||
"19.1.7".officialRelease.sha256 = "sha256-cZAB5vZjeTsXt9QHbP5xluWNQnAHByHtHnAhVDV0E6I=";
|
||||
|
||||
@@ -20,6 +20,7 @@ with pkgs;
|
||||
(filter (n: n != "llvmPackages_13"))
|
||||
(filter (n: n != "llvmPackages_14"))
|
||||
(filter (n: n != "llvmPackages_15"))
|
||||
(filter (n: n != "llvmPackages_16"))
|
||||
];
|
||||
tests = lib.genAttrs pkgSets (
|
||||
name:
|
||||
|
||||
@@ -698,12 +698,10 @@ mapAliases {
|
||||
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.
|
||||
clang16Stdenv = lowPrio llvmPackages_16.stdenv; # preserve, reason: see above
|
||||
clang17Stdenv = lowPrio llvmPackages_17.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_16 = llvmPackages_16.clang-tools; # Added 2024-04-22
|
||||
clang-tools_17 = llvmPackages_17.clang-tools; # Added 2024-04-22
|
||||
clang-tools_18 = llvmPackages_18.clang-tools; # Added 2024-04-22
|
||||
clang-tools_19 = llvmPackages_19.clang-tools; # Added 2024-08-21
|
||||
@@ -1513,6 +1511,15 @@ mapAliases {
|
||||
clang15Stdenv = throw "clang15Stdenv has been removed, as it is unmaintained and obsolete"; # Added 2025-08-12
|
||||
clang-tools_15 = throw "clang-tools_15 has been removed, as it is unmaintained and obsolete"; # Added 2025-08-12
|
||||
|
||||
llvmPackages_16 = throw "llvmPackages_16 has been removed, as it is unmaintained and obsolete"; # Added 2025-08-09
|
||||
llvm_16 = throw "llvm_16 has been removed, as it is unmaintained and obsolete"; # Added 2025-08-09
|
||||
lld_16 = throw "lld_16 has been removed, as it is unmaintained and obsolete"; # Added 2025-08-09
|
||||
lldb_16 = throw "lldb_16 has been removed, as it is unmaintained and obsolete"; # Added 2025-08-09
|
||||
mlir_16 = throw "mlir_16 has been removed, as it is unmaintained and obsolete"; # Added 2025-08-09
|
||||
clang_16 = throw "clang_16 has been removed, as it is unmaintained and obsolete"; # Added 2025-08-09
|
||||
clang16Stdenv = throw "clang16Stdenv has been removed, as it is unmaintained and obsolete"; # Added 2025-08-09
|
||||
clang-tools_16 = throw "clang-tools_16 has been removed, as it is unmaintained and obsolete"; # Added 2025-08-09
|
||||
|
||||
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
|
||||
loco-cli = loco; # Added 2025-02-24
|
||||
|
||||
@@ -4633,7 +4633,6 @@ with pkgs;
|
||||
clang-manpages = llvmPackages.clang-manpages;
|
||||
|
||||
clang = llvmPackages.clang;
|
||||
clang_16 = llvmPackages_16.clang;
|
||||
clang_17 = llvmPackages_17.clang;
|
||||
|
||||
clang-tools = llvmPackages.clang-tools;
|
||||
@@ -5361,18 +5360,14 @@ with pkgs;
|
||||
};
|
||||
|
||||
lld = llvmPackages.lld;
|
||||
lld_16 = llvmPackages_16.lld;
|
||||
lld_17 = llvmPackages_17.lld;
|
||||
|
||||
lldb = llvmPackages.lldb;
|
||||
lldb_16 = llvmPackages_16.lldb;
|
||||
lldb_17 = llvmPackages_17.lldb;
|
||||
|
||||
llvm = llvmPackages.llvm;
|
||||
llvm_16 = llvmPackages_16.llvm;
|
||||
llvm_17 = llvmPackages_17.llvm;
|
||||
|
||||
mlir_16 = llvmPackages_16.mlir;
|
||||
mlir_17 = llvmPackages_17.mlir;
|
||||
flang = llvmPackages_20.flang;
|
||||
|
||||
@@ -5386,7 +5381,6 @@ with pkgs;
|
||||
(rec {
|
||||
llvmPackagesSet = recurseIntoAttrs (callPackages ../development/compilers/llvm { });
|
||||
|
||||
llvmPackages_16 = llvmPackagesSet."16";
|
||||
llvmPackages_17 = llvmPackagesSet."17";
|
||||
|
||||
llvmPackages_18 = llvmPackagesSet."18";
|
||||
@@ -5420,7 +5414,6 @@ with pkgs;
|
||||
|
||||
mkLLVMPackages = llvmPackagesSet.mkPackage;
|
||||
})
|
||||
llvmPackages_16
|
||||
llvmPackages_17
|
||||
llvmPackages_18
|
||||
clang_18
|
||||
|
||||
Reference in New Issue
Block a user