git.iko.soy/typeable/nixpkgs
on master help sign in
Merge pull request #125698 from primeos/llvm_git

llvmPackages_git: 12.0.0 -> 2021-05-17

commit1a33abcaaa38cfb1acfb0145d692a131929c949b authorMichael Weiss <dev.primeos@gmail.com> dateSun 13 Jun 2021, 22:05 (5 years ago) parentdab87a50d02b47
5 files changed+53−53
pkgs/development/compilers/llvm/git/default.nix+5−4 pkgs/development/compilers/llvm/git/libunwind/gnu-install-dirs.patch+8−8 pkgs/development/compilers/llvm/git/llvm/default.nix+4−7 pkgs/development/compilers/llvm/git/llvm/gnu-install-dirs.patch+35−33 pkgs/development/compilers/llvm/update-git.py+1−1
pkgs/development/compilers/llvm/git/default.nix+5−4
@@ -18,18 +18,19 @@
1818}:
1919
2020let
21− release_version = "12.0.0";
21+ release_version = "13.0.0";
2222 candidate = ""; # empty or "rcN"
2323 dash-candidate = lib.optionalString (candidate != "") "-${candidate}";
24− rev = ""; # When using a Git commit
25− version = "${release_version}${dash-candidate}"; # differentiating these (variables) is important for RCs
24+ rev = "d3676d4b666ead794fc58bbc7e07aa406dcf487a"; # When using a Git commit
25+ rev-version = "unstable-2021-05-17"; # When using a Git commit
26+ version = if rev != "" then rev-version else "${release_version}${dash-candidate}";
2627 targetConfig = stdenv.targetPlatform.config;
2728
2829 src = fetchFromGitHub {
2930 owner = "llvm";
3031 repo = "llvm-project";
3132 rev = if rev != "" then rev else "llvmorg-${version}";
32− sha256 = "07jz8pywc2qqa1srdnqg5p2y4lx3ki1inpigarzgxc3j20r4gb58";
33+ sha256 = "0aw5hnlp3m21dqyqz9z8669achsfhyi7lsl17hh0j45q0qlxnmyw";
3334 };
3435
3536 llvm_meta = {
pkgs/development/compilers/llvm/git/libunwind/gnu-install-dirs.patch+8−8
@@ -1,5 +1,5 @@
11diff --git a/CMakeLists.txt b/CMakeLists.txt
2−index 48cb8e004e08..fec8144fb95a 100644
2+index a2c03fd3f8aa..98de2f8ea7c8 100644
33--- a/CMakeLists.txt
44+++ b/CMakeLists.txt
55@@ -23,6 +23,8 @@ set(LIBUNWIND_LIBCXX_PATH "${CMAKE_CURRENT_LIST_DIR}/../libcxx" CACHE PATH
@@ -9,14 +9,14 @@ index 48cb8e004e08..fec8144fb95a 100644
99+ include(GNUInstallDirs)
1010+
1111 set(PACKAGE_NAME libunwind)
12− set(PACKAGE_VERSION 12.0.0)
12+ set(PACKAGE_VERSION 13.0.0git)
1313 set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
14−@@ -115,17 +117,17 @@ set(CMAKE_MODULE_PATH
14+@@ -116,17 +118,17 @@ set(CMAKE_MODULE_PATH
1515
1616 if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE)
17− set(LIBUNWIND_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
18−- set(LIBUNWIND_INSTALL_LIBRARY_DIR lib${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
19−+ set(LIBUNWIND_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++)
17+ set(LIBUNWIND_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/${LLVM_DEFAULT_TARGET_TRIPLE})
18+- set(LIBUNWIND_INSTALL_LIBRARY_DIR lib${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE})
19++ set(LIBUNWIND_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE})
2020 if(LIBCXX_LIBDIR_SUBDIR)
2121 string(APPEND LIBUNWIND_LIBRARY_DIR /${LIBUNWIND_LIBDIR_SUBDIR})
2222 string(APPEND LIBUNWIND_INSTALL_LIBRARY_DIR /${LIBUNWIND_LIBDIR_SUBDIR})
@@ -24,11 +24,11 @@ index 48cb8e004e08..fec8144fb95a 100644
2424 elseif(LLVM_LIBRARY_OUTPUT_INTDIR)
2525 set(LIBUNWIND_LIBRARY_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR})
2626- set(LIBUNWIND_INSTALL_LIBRARY_DIR lib${LIBUNWIND_LIBDIR_SUFFIX})
27−+ set(LIBUNWIND_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBUNWIND_LIBDIR_SUFFIX})
27++ set(LIBUNWIND_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
2828 else()
2929 set(LIBUNWIND_LIBRARY_DIR ${CMAKE_BINARY_DIR}/lib${LIBUNWIND_LIBDIR_SUFFIX})
3030- set(LIBUNWIND_INSTALL_LIBRARY_DIR lib${LIBUNWIND_LIBDIR_SUFFIX})
31−+ set(LIBUNWIND_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBUNWIND_LIBDIR_SUFFIX})
31++ set(LIBUNWIND_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
3232 endif()
3333
3434 set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${LIBUNWIND_LIBRARY_DIR})
pkgs/development/compilers/llvm/git/llvm/default.nix+4−7
@@ -12,6 +12,7 @@
1212, version
1313, release_version
1414, zlib
15+, which
1516, buildLlvmTools
1617, debugVersion ? false
1718, enableManpages ? false
@@ -47,15 +48,10 @@ in stdenv.mkDerivation (rec {
4748
4849 propagatedBuildInputs = [ ncurses zlib ];
4950
51+ checkInputs = [ which ];
52+
5053 patches = [
5154 ./gnu-install-dirs.patch
52− # On older CPUs (e.g. Hydra/wendy) we'd be getting an error in this test.
53− (fetchpatch {
54− name = "uops-CMOV16rm-noreg.diff";
55− url = "https://github.com/llvm/llvm-project/commit/9e9f991ac033.diff";
56− sha256 = "sha256:12s8vr6ibri8b48h2z38f3afhwam10arfiqfy4yg37bmc054p5hi";
57− stripLen = 1;
58− })
5955 ] ++ lib.optional enablePolly ./gnu-install-dirs-polly.patch;
6056
6157 postPatch = optionalString stdenv.isDarwin ''
@@ -75,6 +71,7 @@ in stdenv.mkDerivation (rec {
7571 substituteInPlace unittests/IR/CMakeLists.txt \
7672 --replace "PassBuilderCallbacksTest.cpp" ""
7773 rm unittests/IR/PassBuilderCallbacksTest.cpp
74+ rm test/tools/llvm-objcopy/ELF/mirror-permissions-unix.test
7875 '' + optionalString stdenv.hostPlatform.isMusl ''
7976 patch -p1 -i ${../../TLI-musl.patch}
8077 substituteInPlace unittests/Support/CMakeLists.txt \
pkgs/development/compilers/llvm/git/llvm/gnu-install-dirs.patch+35−33
@@ -1,8 +1,8 @@
11diff --git a/CMakeLists.txt b/CMakeLists.txt
2−index 277d0fe54d7b..af69c8be8745 100644
2+index e5febba8043c..3cf530c341b0 100644
33--- a/CMakeLists.txt
44+++ b/CMakeLists.txt
5−@@ -256,15 +256,21 @@ if (CMAKE_BUILD_TYPE AND
5+@@ -270,15 +270,21 @@ if (CMAKE_BUILD_TYPE AND
66 message(FATAL_ERROR "Invalid value for CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}")
77 endif()
88
@@ -25,7 +25,7 @@ index 277d0fe54d7b..af69c8be8745 100644
2525 # They are used as destination of target generators.
2626 set(LLVM_RUNTIME_OUTPUT_INTDIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin)
2727 set(LLVM_LIBRARY_OUTPUT_INTDIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX})
28−@@ -567,9 +573,9 @@ option (LLVM_ENABLE_SPHINX "Use Sphinx to generate llvm documentation." OFF)
28+@@ -581,9 +587,9 @@ option (LLVM_ENABLE_SPHINX "Use Sphinx to generate llvm documentation." OFF)
2929 option (LLVM_ENABLE_OCAMLDOC "Build OCaml bindings documentation." ON)
3030 option (LLVM_ENABLE_BINDINGS "Build bindings." ON)
3131
@@ -37,7 +37,7 @@ index 277d0fe54d7b..af69c8be8745 100644
3737 CACHE STRING "OCamldoc-generated HTML documentation install directory")
3838
3939 option (LLVM_BUILD_EXTERNAL_COMPILER_RT
40−@@ -1027,7 +1033,7 @@ endif()
40+@@ -1046,7 +1052,7 @@ endif()
4141
4242 if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
4343 install(DIRECTORY include/llvm include/llvm-c
@@ -46,7 +46,7 @@ index 277d0fe54d7b..af69c8be8745 100644
4646 COMPONENT llvm-headers
4747 FILES_MATCHING
4848 PATTERN "*.def"
49−@@ -1038,7 +1044,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
49+@@ -1057,7 +1063,7 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
5050 )
5151
5252 install(DIRECTORY ${LLVM_INCLUDE_DIR}/llvm ${LLVM_INCLUDE_DIR}/llvm-c
@@ -55,7 +55,7 @@ index 277d0fe54d7b..af69c8be8745 100644
5555 COMPONENT llvm-headers
5656 FILES_MATCHING
5757 PATTERN "*.def"
58−@@ -1052,13 +1058,13 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
58+@@ -1071,13 +1077,13 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
5959
6060 if (LLVM_INSTALL_MODULEMAPS)
6161 install(DIRECTORY include/llvm include/llvm-c
@@ -72,11 +72,11 @@ index 277d0fe54d7b..af69c8be8745 100644
7272 RENAME "module.extern.modulemap"
7373 )
7474diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake
75−index 97c9980c7de3..409e8b615f75 100644
75+index 1c419cddbe93..fa0be670986b 100644
7676--- a/cmake/modules/AddLLVM.cmake
7777+++ b/cmake/modules/AddLLVM.cmake
78−@@ -804,9 +804,9 @@ macro(add_llvm_library name)
79−
78+@@ -801,9 +801,9 @@ macro(add_llvm_library name)
79+ get_target_export_arg(${name} LLVM export_to_llvmexports ${umbrella})
8080 install(TARGETS ${name}
8181 ${export_to_llvmexports}
8282- LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT ${name}
@@ -88,7 +88,7 @@ index 97c9980c7de3..409e8b615f75 100644
8888
8989 if (NOT LLVM_ENABLE_IDE)
9090 add_llvm_install_targets(install-${name}
91−@@ -1022,7 +1022,7 @@ function(process_llvm_pass_plugins)
91+@@ -1019,7 +1019,7 @@ function(process_llvm_pass_plugins)
9292 "set(LLVM_STATIC_EXTENSIONS ${LLVM_STATIC_EXTENSIONS})")
9393 install(FILES
9494 ${llvm_cmake_builddir}/LLVMConfigExtensions.cmake
@@ -97,7 +97,7 @@ index 97c9980c7de3..409e8b615f75 100644
9797 COMPONENT cmake-exports)
9898
9999 set(ExtensionDef "${LLVM_BINARY_DIR}/include/llvm/Support/Extension.def")
100−@@ -1242,7 +1242,7 @@ macro(add_llvm_example name)
100+@@ -1233,7 +1233,7 @@ macro(add_llvm_example name)
101101 endif()
102102 add_llvm_executable(${name} ${ARGN})
103103 if( LLVM_BUILD_EXAMPLES )
@@ -106,7 +106,7 @@ index 97c9980c7de3..409e8b615f75 100644
106106 endif()
107107 set_target_properties(${name} PROPERTIES FOLDER "Examples")
108108 endmacro(add_llvm_example name)
109−@@ -1854,7 +1854,7 @@ function(llvm_install_library_symlink name dest type)
109+@@ -1851,7 +1851,7 @@ function(llvm_install_library_symlink name dest type)
110110 set(full_name ${CMAKE_${type}_LIBRARY_PREFIX}${name}${CMAKE_${type}_LIBRARY_SUFFIX})
111111 set(full_dest ${CMAKE_${type}_LIBRARY_PREFIX}${dest}${CMAKE_${type}_LIBRARY_SUFFIX})
112112
@@ -115,8 +115,8 @@ index 97c9980c7de3..409e8b615f75 100644
115115 if(WIN32 AND "${type}" STREQUAL "SHARED")
116116 set(output_dir bin)
117117 endif()
118−@@ -1871,7 +1871,7 @@ function(llvm_install_library_symlink name dest type)
119− endif()
118+@@ -1862,7 +1862,7 @@ function(llvm_install_library_symlink name dest type)
119+
120120 endfunction()
121121
122122-function(llvm_install_symlink name dest)
@@ -124,7 +124,7 @@ index 97c9980c7de3..409e8b615f75 100644
124124 cmake_parse_arguments(ARG "ALWAYS_GENERATE" "COMPONENT" "" ${ARGN})
125125 foreach(path ${CMAKE_MODULE_PATH})
126126 if(EXISTS ${path}/LLVMInstallSymlink.cmake)
127−@@ -1894,7 +1894,7 @@ function(llvm_install_symlink name dest)
127+@@ -1885,7 +1885,7 @@ function(llvm_install_symlink name dest)
128128 set(full_dest ${dest}${CMAKE_EXECUTABLE_SUFFIX})
129129
130130 install(SCRIPT ${INSTALL_SYMLINK}
@@ -133,7 +133,7 @@ index 97c9980c7de3..409e8b615f75 100644
133133 COMPONENT ${component})
134134
135135 if (NOT LLVM_ENABLE_IDE AND NOT ARG_ALWAYS_GENERATE)
136−@@ -1977,7 +1977,8 @@ function(add_llvm_tool_symlink link_name target)
136+@@ -1968,7 +1968,8 @@ function(add_llvm_tool_symlink link_name target)
137137 endif()
138138
139139 if ((TOOL_IS_TOOLCHAIN OR NOT LLVM_INSTALL_TOOLCHAIN_ONLY) AND LLVM_BUILD_TOOLS)
@@ -143,12 +143,12 @@ index 97c9980c7de3..409e8b615f75 100644
143143 endif()
144144 endif()
145145 endfunction()
146−@@ -2100,9 +2101,9 @@ function(llvm_setup_rpath name)
147−
148− if (APPLE)
149− set(_install_name_dir INSTALL_NAME_DIR "@rpath")
150−- set(_install_rpath "@loader_path/../lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
151−+ set(_install_rpath "@loader_path/../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
146+@@ -2097,9 +2098,9 @@ function(llvm_setup_rpath name)
147+ # Since BUILD_SHARED_LIBS is only recommended for use by developers,
148+ # hardcode the rpath to build/install lib dir first in this mode.
149+ # FIXME: update this when there is better solution.
150+- set(_install_rpath "${LLVM_LIBRARY_OUTPUT_INTDIR}" "${CMAKE_INSTALL_PREFIX}/lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
151++ set(_install_rpath "${LLVM_LIBRARY_OUTPUT_INTDIR}" "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
152152 elseif(UNIX)
153153- set(_install_rpath "\$ORIGIN/../lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
154154+ set(_install_rpath "\$ORIGIN/../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
@@ -185,16 +185,18 @@ index e80c3b5c1cac..482f6d715ef5 100644
185185
186186 # '/.' indicates: copy the contents of the directory directly into
187187diff --git a/cmake/modules/CMakeLists.txt b/cmake/modules/CMakeLists.txt
188−index 505dc9a29d70..36e6c63af3f4 100644
188+index 51b6a4fdc284..4adc2acfc074 100644
189189--- a/cmake/modules/CMakeLists.txt
190190+++ b/cmake/modules/CMakeLists.txt
191−@@ -1,4 +1,4 @@
191+@@ -1,6 +1,6 @@
192+ include(LLVMDistributionSupport)
193+
192194-set(LLVM_INSTALL_PACKAGE_DIR lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm)
193195+set(LLVM_INSTALL_PACKAGE_DIR ${LLVM_INSTALL_CMAKE_DIR} CACHE STRING "Path for CMake subdirectory (defaults to 'cmake/llvm')")
194196 set(llvm_cmake_builddir "${LLVM_BINARY_DIR}/${LLVM_INSTALL_PACKAGE_DIR}")
195197
196198 # First for users who use an installed LLVM, create the LLVMExports.cmake file.
197−@@ -107,13 +107,13 @@ foreach(p ${_count})
199+@@ -109,13 +109,13 @@ foreach(p ${_count})
198200 set(LLVM_CONFIG_CODE "${LLVM_CONFIG_CODE}
199201 get_filename_component(LLVM_INSTALL_PREFIX \"\${LLVM_INSTALL_PREFIX}\" PATH)")
200202 endforeach(p)
@@ -212,20 +214,20 @@ index 505dc9a29d70..36e6c63af3f4 100644
212214 # Generate a default location for lit
213215 if (LLVM_INSTALL_UTILS AND LLVM_BUILD_UTILS)
214216diff --git a/cmake/modules/LLVMInstallSymlink.cmake b/cmake/modules/LLVMInstallSymlink.cmake
215−index 09fed8085c23..aa79f192abf0 100644
217+index 3e6a2c9a2648..52e14d955c60 100644
216218--- a/cmake/modules/LLVMInstallSymlink.cmake
217219+++ b/cmake/modules/LLVMInstallSymlink.cmake
218−@@ -10,7 +10,7 @@ function(install_symlink name target outdir)
219− set(LINK_OR_COPY copy)
220− endif()
220+@@ -4,7 +4,7 @@
221221
222+ function(install_symlink name target outdir)
223+ set(DESTDIR $ENV{DESTDIR})
222224- set(bindir "${DESTDIR}${CMAKE_INSTALL_PREFIX}/${outdir}/")
223225+ set(bindir "${DESTDIR}${outdir}/")
224226
225227 message(STATUS "Creating ${name}")
226228
227229diff --git a/docs/CMake.rst b/docs/CMake.rst
228−index bb821b417ad9..6a528f7c2ad3 100644
230+index 589b09f28281..af43b082f755 100644
229231--- a/docs/CMake.rst
230232+++ b/docs/CMake.rst
231233@@ -196,7 +196,7 @@ CMake manual, or execute ``cmake --help-variable VARIABLE_NAME``.
@@ -237,7 +239,7 @@ index bb821b417ad9..6a528f7c2ad3 100644
237239
238240 **CMAKE_C_FLAGS**:STRING
239241 Extra flags to use when compiling C source files.
240−@@ -550,8 +550,8 @@ LLVM-specific variables
242+@@ -555,8 +555,8 @@ LLVM-specific variables
241243
242244 **LLVM_INSTALL_DOXYGEN_HTML_DIR**:STRING
243245 The path to install Doxygen-generated HTML documentation to. This path can
@@ -248,7 +250,7 @@ index bb821b417ad9..6a528f7c2ad3 100644
248250
249251 **LLVM_ENABLE_SPHINX**:BOOL
250252 If specified, CMake will search for the ``sphinx-build`` executable and will make
251−@@ -582,13 +582,33 @@ LLVM-specific variables
253+@@ -587,13 +587,33 @@ LLVM-specific variables
252254
253255 **LLVM_INSTALL_SPHINX_HTML_DIR**:STRING
254256 The path to install Sphinx-generated HTML documentation to. This path can
@@ -286,7 +288,7 @@ index bb821b417ad9..6a528f7c2ad3 100644
286288
287289 **LLVM_CREATE_XCODE_TOOLCHAIN**:BOOL
288290 macOS Only: If enabled CMake will generate a target named
289−@@ -786,9 +806,11 @@ the ``cmake`` command or by setting it directly in ``ccmake`` or ``cmake-gui``).
291+@@ -791,9 +811,11 @@ the ``cmake`` command or by setting it directly in ``ccmake`` or ``cmake-gui``).
290292
291293 This file is available in two different locations.
292294
pkgs/development/compilers/llvm/update-git.py+1−1
@@ -64,7 +64,7 @@ default_nix = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'git/defa
6464with fileinput.FileInput(default_nix, inplace=True) as f:
6565 for line in f:
6666 result = re.sub(r'^ release_version = ".+";', f' release_version = "{release_version}";', line)
67− result = re.sub(r'^ version = ".+";', f' version = "{version}";', result)
6867 result = re.sub(r'^ rev = ".*";', f' rev = "{commit["sha"]}";', result)
68+ result = re.sub(r'^ rev-version = ".+";', f' rev-version = "{version}";', result)
6969 result = re.sub(r'^ sha256 = ".+";', f' sha256 = "{hash}";', result)
7070 print(result, end='')