I was trying to update the default LLVM. ========================================================================
Toggle diff (92 lines)diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scmindex 11e4cfbe4c..b0e80507f4 100644--- a/gnu/packages/llvm.scm+++ b/gnu/packages/llvm.scm@@ -527,10 +527,10 @@ output), and Binutils.") (make-clang-toolchain clang-9)) ;; Default LLVM and Clang version.-(define-public llvm llvm-9)-(define-public clang-runtime clang-runtime-9)-(define-public clang clang-9)-(define-public clang-toolchain clang-toolchain-9)+(define-public llvm llvm-10)+(define-public clang-runtime clang-runtime-10)+(define-public clang clang-10)+(define-public clang-toolchain clang-toolchain-10) (define-public llvm-8 (package======================================================================== With the help of `guix refresh', I have identified all packages thatdepended on LLVM 9 and will now potentially be using LLVM 10. Amongthose is emacs-irony-mode-server, which fails to build with thefollowing error: ========================================================================CMake Error at /gnu/store/4ml806jam2af7f8i8sg8xi7b4mw81x9g-clang-10.0.0/lib/cmake/clang/ClangTargets.cmake:627 (message): The imported target "clangApplyReplacements" references the file "/gnu/store/4ml806jam2af7f8i8sg8xi7b4mw81x9g-clang-10.0.0/lib/libclangApplyReplacements.a" but this file does not exist. Possible reasons include: * The file was deleted, renamed, or moved to another location. * An install or uninstall procedure did not complete successfully. * The installation package was faulty and contained "/gnu/store/4ml806jam2af7f8i8sg8xi7b4mw81x9g-clang-10.0.0/lib/cmake/clang/ClangTargets.cmake" but not all the files it references. Call Stack (most recent call first): /gnu/store/4ml806jam2af7f8i8sg8xi7b4mw81x9g-clang-10.0.0/lib/cmake/clang/ClangConfig.cmake:18 (include) src/CMakeLists.txt:4 (find_package)
-- Configuring incomplete, errors occurred!See also "/tmp/guix-build-emacs-irony-mode-server-1.4.0.drv-0/source/CMakeFiles/CMakeOutput.log".command "cmake" "server" "-DCMAKE_INSTALL_PREFIX=/gnu/store/5clyjcgw8g9jhryhk8bhljg950ijmwm4-emacs-irony-mode-server-1.4.0" failed with status 1builder for `/gnu/store/qiiqbbzpigs7lnywplbwjdsh4qc2ic94-emacs-irony-mode-server-1.4.0.drv' failed with exit code 1======================================================================== The ClangTargets.cmake file for LLVM 10 gained ApplyReplacements in alist of libraries provided by clang, but Guix removes these libraries: ========================================================================;; Remove MiBs of .a files coming from;; 'clang-tools-extra'.(for-each (lambda (component) (delete-file (string-append lib "/libclang" component ".a"))) '("ApplyReplacements" "ChangeNamespace" "Daemon" "DaemonTweaks" "Doc" "IncludeFixer" "IncludeFixerPlugin" "Move"))======================================================================== The code was introduced in this commit: commit 77a87ad4aceed9d89d615540e0fd147e3a8b2f64Author: Ludovic Courtès <email@example.com>Date: Thu May 28 11:46:59 2020 +0200 gnu: clang: Build 'clang-tools-extra'. * gnu/packages/llvm.scm (clang-from-llvm): Add #:tools-extra. Add 'output' field. In 'inputs', add TOOLS-EXTRA when it's given. In 'arguments', add 'add-tools-extra' and 'move-extra-tools' phases when TOOLS-EXTRA is given. I don't know cmake nearly well enough to fix this. Regards,Jakub Kądziołka
(name . Jakub Kądziołka)(address . firstname.lastname@example.org)(address . email@example.com)
Hi, Jakub Kądziołka <firstname.lastname@example.org> skribis:
Toggle quote (20 lines)> The ClangTargets.cmake file for LLVM 10 gained ApplyReplacements in a> list of libraries provided by clang, but Guix removes these libraries:>> ========================================================================> ;; Remove MiBs of .a files coming from> ;; 'clang-tools-extra'.> (for-each (lambda (component)> (delete-file> (string-append lib "/libclang"> component ".a")))> '("ApplyReplacements"> "ChangeNamespace"> "Daemon"> "DaemonTweaks"> "Doc"> "IncludeFixer"> "IncludeFixerPlugin"> "Move"))> ========================================================================
I think these libraries come from clang-tools-extra, not plain clang. Icame up with the list above by comparing the lib/ directory of clangwithout clang-tools-extra and clang with clang-tools-extra. I waspretty sure these libraries were only used by the clang-tools-extrabinaries.
Toggle quote (7 lines)> CMake Error at /gnu/store/4ml806jam2af7f8i8sg8xi7b4mw81x9g-clang-10.0.0/lib/cmake/clang/ClangTargets.cmake:627 (message):> The imported target "clangApplyReplacements" references the file> > "/gnu/store/4ml806jam2af7f8i8sg8xi7b4mw81x9g-clang-10.0.0/lib/libclangApplyReplacements.a"> > but this file does not exist. Possible reasons include:
Does it work to comment out in that file all the lines like:
On Tue, Jun 16, 2020 at 12:13:52PM +0200, Ludovic Courtès wrote:
Toggle quote (6 lines)> Hi,> > Alternatively, we can try building clang@10 with the flags Pierre> mentioned recently on this list so that we’re only building shared> libraries; that should take up less space.
I'm currently building clang@10 with -DCLANG_LINK_CLANG_DYLIB=ON, butunfortunately this flag requires -DLLVM_LINK_LLVM_DYLIB=ON, and itdoesn't work if LLVM wasn't build with that same flag. Unfortunately, LLVM is a reverse-dep to the entire mesa mess, so thisapproach would require a trip through staging (unless we create aseparate llvm-for-mesa package - would that be reasonable?). Thoughts? Regards,Jakub Kądziołka
Re: bug#41872: emacs-irony-mode fails to build on LLVM 10
(address . email@example.com)
Jakub Kądziołka <firstname.lastname@example.org> writes:
Toggle quote (4 lines)> Unfortunately, LLVM is a reverse-dep to the entire mesa mess, so this> approach would require a trip through staging (unless we create a> separate llvm-for-mesa package - would that be reasonable?).
Sounds good to me. On a mostly unrelated note, I wonder if we should make 'llvm-for-mesa' apermanent thing in the long term, and build only the subset of LLVM thatMesa uses.