+79
pkgs/development/compilers/llvm/README.md
+79
pkgs/development/compilers/llvm/README.md
···+This will set the github revision and sha256 for `llvmPackages_git.llvm` to whatever the latest chromium build is using.+clang-unstable> 1 out of 1 hunk FAILED -- saving rejects to file lib/Driver/ToolChains/Gnu.cpp.rej+error: builder for '/nix/store/zwi123kpkyz52fy7p6v23azixd807r8c-clang-unstable-2022-25-07.drv' failed with exit code 1;+> unpacking source archive /nix/store/mrxadx11wv1ckjr2208qgxp472pmmg6g-clang-src-unstable-2022-25-07+For full logs, run 'nix log /nix/store/zwi123kpkyz52fy7p6v23azixd807r8c-clang-unstable-2022-25-07.drv'.+error: 1 dependencies of derivation '/nix/store/ndbbh3wrl0l39b22azf46f1n7zlqwmag-clang-wrapper-unstable-2022-25-07.drv' failed to build+The lines above show us that the `purity.patch` failed on `lib/Driver/ToolChains/Gnu.cpp` when compiling `clang`.+The `.orig` file will be in the build directory referenced in the line `note: keeping build directory ...`;+4. Now you should be able to open whichever patch failed, and the `foo.orig` file that it failed on.+This is fine for small corrections, but when more serious changes are needed its better to use git.+3. Use `patch -p1 < path/to-path` in the project subdirectories to apply the patches and commit.+4. Use `git rebase HEAD^ --onto <dest>` to rebase the patches onto the new revision we are trying to build, and fix all conflicts.+Use CMake's [`GNUInstallDirs`](https://cmake.org/cmake/help/latest/module/GNUInstallDirs.html) to support multiple outputs.+For the older LLVM versions, these patches live in https://github.com/Ericson2314/llvm-project branches `split-prefix`.+Instead of applying the patches to the worktree per the above instructions, one can checkout those directly and rebase those instead.+that I have just assembled new gnu-install-dirs patches from the remaining unmerged patches instead of rebasing from the prior LLVM's gnu install dirs patch.
+3
-1
pkgs/development/compilers/llvm/git/clang/default.nix
+3
-1
pkgs/development/compilers/llvm/git/clang/default.nix
·········
+68
-198
pkgs/development/compilers/llvm/git/clang/gnu-install-dirs.patch
+68
-198
pkgs/development/compilers/llvm/git/clang/gnu-install-dirs.patch
···++ set(LLVM_INCLUDE_DIRS ${INCLUDE_DIRS} CACHE PATH "Path to llvm/include and any other header dirs needed")+set(header_install_dir ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include)···-@@ -10,7 +10,7 @@ add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin/${CLANG_HM
+5
-4
pkgs/development/compilers/llvm/git/clang/purity.patch
+5
-4
pkgs/development/compilers/llvm/git/clang/purity.patch
···-@@ -487,12 +487,6 @@ void tools::gnutools::Linker::ConstructJob(Compilation &C, const JobAction &JA,+@@ -487,13 +487,7 @@ void tools::gnutools::Linker::ConstructJob(Compilation &C, const JobAction &JA,
+2
-2
pkgs/development/compilers/llvm/git/compiler-rt/X86-support-extension.patch
+2
-2
pkgs/development/compilers/llvm/git/compiler-rt/X86-support-extension.patch
······
-1
pkgs/development/compilers/llvm/git/compiler-rt/default.nix
-1
pkgs/development/compilers/llvm/git/compiler-rt/default.nix
···
+2
-37
pkgs/development/compilers/llvm/git/compiler-rt/gnu-install-dirs.patch
+2
-37
pkgs/development/compilers/llvm/git/compiler-rt/gnu-install-dirs.patch
······
+28
-26
pkgs/development/compilers/llvm/git/default.nix
+28
-26
pkgs/development/compilers/llvm/git/default.nix
·········-'' + lib.optionalString (!stdenv.targetPlatform.isWasm && stdenv.targetPlatform.useLLVM or false) ''·········
+16
-11
pkgs/development/compilers/llvm/git/libcxx/default.nix
+16
-11
pkgs/development/compilers/llvm/git/libcxx/default.nix
······+] ++ lib.optional (!headersOnly) "-DLIBCXX_CXX_ABI_INCLUDE_PATHS=${libcxxabi.dev}/include/c++/v1"++ lib.optional (stdenv.hostPlatform.isMusl || stdenv.hostPlatform.isWasi) "-DLIBCXX_HAS_MUSL_LIBC=1"···
+7
-70
pkgs/development/compilers/llvm/git/libcxx/gnu-install-dirs.patch
+7
-70
pkgs/development/compilers/llvm/git/libcxx/gnu-install-dirs.patch
···set(LIBCXX_GENERATED_INCLUDE_TARGET_DIR "${LLVM_BINARY_DIR}/include/${LLVM_DEFAULT_TARGET_TRIPLE}/c++/v1")- set(LIBCXX_INSTALL_LIBRARY_DIR lib${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE} CACHE PATH-+ set(LIBCXX_INSTALL_LIBRARY_DIR "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE}" CACHE PATH++ set(LIBCXX_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE} CACHE PATH-- set(LIBCXX_INSTALL_INCLUDE_TARGET_DIR "include/${LLVM_DEFAULT_TARGET_TRIPLE}/c++/v1" CACHE PATH-+ set(LIBCXX_INSTALL_INCLUDE_TARGET_DIR "${CMAKE_INSTALL_INCLUDEDIR}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++/v1" CACHE PATH+set(LIBCXX_INSTALL_INCLUDE_TARGET_DIR "${CMAKE_INSTALL_INCLUDEDIR}/${LLVM_DEFAULT_TARGET_TRIPLE}/c++/v1" CACHE PATH
+28
-23
pkgs/development/compilers/llvm/git/libcxxabi/default.nix
+28
-23
pkgs/development/compilers/llvm/git/libcxxabi/default.nix
······buildInputs = lib.optional (!stdenv.isDarwin && !stdenv.isFreeBSD && !stdenv.hostPlatform.isWasm) libunwind;···+install -m 644 ../../${pname}/include/${if stdenv.isDarwin then "*" else "cxxabi.h"} "$dev/include"
+6
-30
pkgs/development/compilers/llvm/git/libcxxabi/gnu-install-dirs.patch
+6
-30
pkgs/development/compilers/llvm/git/libcxxabi/gnu-install-dirs.patch
···- set(LIBCXXABI_INSTALL_LIBRARY_DIR lib${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE} CACHE PATH+ set(LIBCXXABI_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE} CACHE PATH-+ set(LIBCXXABI_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBCXXABI_LIBDIR_SUFFIX} CACHE PATH+ set(LIBCXXABI_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBCXXABI_LIBDIR_SUFFIX} CACHE PATH
+45
pkgs/development/compilers/llvm/git/libcxxabi/skip-other-project-tests.patch
+45
pkgs/development/compilers/llvm/git/libcxxabi/skip-other-project-tests.patch
···
+17
-3
pkgs/development/compilers/llvm/git/libunwind/default.nix
+17
-3
pkgs/development/compilers/llvm/git/libunwind/default.nix
······
+5
-48
pkgs/development/compilers/llvm/git/libunwind/gnu-install-dirs.patch
+5
-48
pkgs/development/compilers/llvm/git/libunwind/gnu-install-dirs.patch
···- set(LIBUNWIND_INSTALL_LIBRARY_DIR lib${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE} CACHE PATH-+ set(LIBUNWIND_INSTALL_INCLUDE_DIR "${CMAKE_INSTALL_INCLUDEDIR}/${LLVM_DEFAULT_TARGET_TRIPLE}" CACHE PATH+ set(LIBUNWIND_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/${LLVM_DEFAULT_TARGET_TRIPLE} CACHE PATH+ set(LIBUNWIND_INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR}${LIBUNWIND_LIBDIR_SUFFIX} CACHE PATH
+3
-5
pkgs/development/compilers/llvm/git/lld/default.nix
+3
-5
pkgs/development/compilers/llvm/git/lld/default.nix
···
-13
pkgs/development/compilers/llvm/git/lld/fix-root-src-dir.patch
-13
pkgs/development/compilers/llvm/git/lld/fix-root-src-dir.patch
···-+ set(LLVM_MAIN_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../llvm" CACHE PATH "Path to LLVM source tree")
+32
-8
pkgs/development/compilers/llvm/git/lld/gnu-install-dirs.patch
+32
-8
pkgs/development/compilers/llvm/git/lld/gnu-install-dirs.patch
···++ set(LLVM_INCLUDE_DIRS ${INCLUDE_DIRS} CACHE PATH "Path to llvm/include and any other header dirs needed")···
-13
pkgs/development/compilers/llvm/git/lldb/gnu-install-dirs.patch
-13
pkgs/development/compilers/llvm/git/lldb/gnu-install-dirs.patch
···
+10
-1
pkgs/development/compilers/llvm/git/lldb/procfs.patch
+10
-1
pkgs/development/compilers/llvm/git/lldb/procfs.patch
······
+8
-2
pkgs/development/compilers/llvm/git/llvm/default.nix
+8
-2
pkgs/development/compilers/llvm/git/llvm/default.nix
·········---replace 'set(LLVM_BINARY_DIR "''${LLVM_INSTALL_PREFIX}")' 'set(LLVM_BINARY_DIR "''${LLVM_INSTALL_PREFIX}'"$lib"'")'···
+44
-126
pkgs/development/compilers/llvm/git/llvm/gnu-install-dirs.patch
+44
-126
pkgs/development/compilers/llvm/git/llvm/gnu-install-dirs.patch
···-+set(LLVM_INSTALL_CMAKE_DIR "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/cmake/llvm" CACHE STRING-set(LLVM_LIBRARY_OUTPUT_INTDIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX})···++ set(_install_rpath "@loader_path/../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})- 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_PREFIX}/${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})++ set(_install_rpath "${LLVM_LIBRARY_OUTPUT_INTDIR}" "${CMAKE_INSTALL_FULL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})+ set(_install_rpath "\$ORIGIN/../${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})···-+set(LLVM_INSTALL_PACKAGE_DIR ${LLVM_INSTALL_CMAKE_DIR} CACHE STRING "Path for CMake subdirectory (defaults to 'cmake/llvm')")······-@@ -910,9 +910,11 @@ the ``cmake`` command or by setting it directly in ``ccmake`` or ``cmake-gui``).diff --git a/tools/llvm-config/BuildVariables.inc.in b/tools/llvm-config/BuildVariables.inc.in
+16
-3
pkgs/development/compilers/llvm/git/openmp/default.nix
+16
-3
pkgs/development/compilers/llvm/git/openmp/default.nix
······
+9
-45
pkgs/development/compilers/llvm/git/openmp/fix-find-tool.patch
+9
-45
pkgs/development/compilers/llvm/git/openmp/fix-find-tool.patch
···-diff --git a/libomptarget/deviceRTLs/amdgcn/CMakeLists.txt b/libomptarget/deviceRTLs/amdgcn/CMakeLists.txt+libomptarget_say("Not building DeviceRTL. Missing clang: ${CLANG_TOOL}, llvm-link: ${LINK_TOOL} or opt: ${OPT_TOOL}")
+3
-70
pkgs/development/compilers/llvm/git/openmp/gnu-install-dirs.patch
+3
-70
pkgs/development/compilers/llvm/git/openmp/gnu-install-dirs.patch
···-@@ -8,6 +8,8 @@ if (OPENMP_STANDALONE_BUILD OR "${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_S-@@ -19,7 +21,7 @@ if (OPENMP_STANDALONE_BUILD OR "${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_S···-@@ -30,7 +32,7 @@ if (OPENMP_STANDALONE_BUILD OR "${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_S···-+install(TARGETS omptarget.rtl.amdgpu LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}${OPENMP_LIBDIR_SUFFIX}")
+12
pkgs/development/compilers/llvm/git/openmp/run-lit-directly.patch
+12
pkgs/development/compilers/llvm/git/openmp/run-lit-directly.patch
···+- COMMAND ${PYTHON_EXECUTABLE} ${OPENMP_LLVM_LIT_EXECUTABLE} ${LIT_ARGS} ${ARG_UNPARSED_ARGUMENTS}