Package Base Details: llvm-git

Git Clone URL: https://aur.archlinux.org/llvm-git.git (read-only, click to copy)
Keywords: clang git lld lldb llvm polly
Submitter: yurikoles
Maintainer: rjahanbakhshi
Last Packager: rjahanbakhshi
Votes: 118
Popularity: 0.65
First Submitted: 2018-12-05 13:56 (UTC)
Last Updated: 2024-04-17 08:17 (UTC)

Pinned Comments

Lone_Wolf commented on 2021-08-16 11:26 (UTC)

When you have this package installed applications that are built against repo-llvm/clang WILL fail unless they are rebuild against this package.

This includes QTCreator, kdevelop , mesa, intel-compute-runtime, gnome-builder to name a few.

Lone_Wolf commented on 2020-08-22 12:18 (UTC) (edited on 2021-02-06 12:51 (UTC) by Lone_Wolf)

Archlinux currently has 3 llvm git implementations

  1. This package

    • It aims to provide a full llvm/clang compiler environment for development purposes.
    • Supports cross-compiling , bindings for external stuff (python, ocaml etc) , and some things not in extra-llvm.
    • intended to be used with archlinux core,extra & community repos
    • CONFLICTS with extra llvm/clang packages
    • Currently there's no repo with binary versions
  2. llvm-minimal-git

    • focuses on providing stuff needed for AUR mesa-git. Doesn't support cross-compiling or any bindings for external stuff like ocaml & python.
    • intended to be used with archlinux core,extra & community repos
    • compatible with extra llvm/clang packages
    • no repo with binary versions
  3. packages created & maintained by Lordheavy, an arch developer

    • intended to be used with archlinux testing repos
    • sometimes has problems on systems where testing repos are disabled
    • uses same package structure as llvm/clang in official repos
    • source
    • binary versions in LordHeavys unoffical repo

Lone_Wolf commented on 2019-04-12 20:41 (UTC) (edited on 2019-12-16 22:45 (UTC) by Lone_Wolf)

I've looked good at clang-trunk , llvm-svn, repo llvm/clang packages and think this package is now on route to become a worthy successor to llvm-svn .

  • llvm-libs-git holds the runtime libraries.

    It conflicts with the repo llvm-libs package. This is the only way to make sure the llvm linker from git is used, and that's needed for a full dev environment.

  • llvm-git

    has llvm , clang, compiler-rt, ocaml & python bindings, polly , lld , lldb .


The Package now uses a new environment variable to make ninja behave, NINJAFLAGS. If you want to use it adjust the snippet below to your desired values and add it to makepkg.conf.

Incase you are satisfied with ninja defaults you don't need to do anything.

# Add to makepkg.conf
# limit ninja to 20 jobs
# requires special code in PKGBUILD
# see ninja --help for additonal options
NINJAFLAGS="-j20"

The check() function fails rather often, but I do suggest to build with them. If build fails due to test failure you can add --nocheck to skip the tests.

Latest Comments

« First ‹ Previous 1 .. 16 17 18 19 20 21 22 23 24 25 26 .. 70 Next › Last »

Lone_Wolf commented on 2019-05-12 12:28 (UTC) (edited on 2019-05-12 12:29 (UTC) by Lone_Wolf)

  • I am aware of -DLLVM_ENABLE_PROJECTS , haven't had time to test if it has drawbacks.

  • If you want to speed up building, use ccache . Incremental builds for archlinux packages often result in hard to troubleshoot errors that are prevented by starting clean. The only case I know of where incremental builds are useful is bisecting using makepkg --noextract option.

makepkg --noextract skips prepare() function so removing _build folder in prepare doesn't conflict with that.


  • llvm-libs has generic links that point to stable llvm libraries. To make things worse, LLVMgold.so is completely unversioned.

aur llvm-svn maintainers have always felt llvm-svn should be a complete compiler environment. llvm-git is the direct successor of llvm-svn and I feel the same.

This results in llvm-libs-git conflicting with llvm-libs. Kerberizer (long-time llvm-svn maintainer) and I both spend considerable time on finding a solution, see https://github.com/arch-llvm/llvm-svn/issues/13 for our findings.

hbsnmyj commented on 2019-05-11 15:53 (UTC) (edited on 2019-05-11 15:54 (UTC) by hbsnmyj)

It might be better to use the CMAKE variable LLVM_ENABLE_PROJECTS to manage packages, instead of manually move directories in prepare():

     cmake "$srcdir"/llvm-project/llvm  -G Ninja \
         -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;compiler-rt;lld;lldb;polly" \

This way, the code is less fragile, requires less file system modifications, and won't trigger as much rebuilds when rebuilding the package due to updated timestamps.

In addition, it might be better if the _build directory is not deleted in prepare() - allows better incremental builds.

As a separate note, I modify the PKGBUILD to install the package as a separate compiler in /opt. However, the current package conflicts with major system components, I wonder if it is possible to implement this functionality into the upstream.

Sinistar commented on 2019-05-07 21:03 (UTC) (edited on 2019-05-07 23:52 (UTC) by Sinistar)

The Clang test failing happens if you use the patch. Edit: But now the LLVM test is failing, nothing to do with the patch.

Second edit: if you do not want to move the directories around use: -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;compiler-rt;lld;lldb;polly"

QuartzDragon commented on 2019-05-07 09:46 (UTC)

@Lone_Wolf

Must have been fixed by a recent commit or something.

Lone_Wolf commented on 2019-05-07 09:07 (UTC) (edited on 2019-05-07 09:07 (UTC) by Lone_Wolf)

Confirmed, it's given that error for some time. Other aur clang-git packages also give that error, it's an upstream issue.

Somebody should register a bug with them.

@Quartzdragon : The segfault with clang does no longer happen, you can switch back to this package if you want

LiptonIceTea commented on 2019-05-06 19:01 (UTC)

Is this package failing to build during the regression checks for anyone else?

" Failing Tests (1): Clang :: Driver/riscv64-toolchain.c "

Fails at the same point even after downloading a fresh snapshot and building again. Not using an AUR helper either.

Lone_Wolf commented on 2019-04-29 15:09 (UTC) (edited on 2019-04-29 15:09 (UTC) by Lone_Wolf)

llvm and co provides will be returned in next upload, though with a specfic version.

Lone_Wolf commented on 2019-04-29 11:39 (UTC)

That is a good idea, lahwaacz. I'll switch to that method.

lahwaacz commented on 2019-04-28 14:08 (UTC)

You can use any other variable name, e.g. $NINJAFLAGS, and set it in your makepkg.conf as needed. People who want it can set it as well and nothing changes for people who are content with the defaults.

Lone_Wolf commented on 2019-04-28 13:16 (UTC)

Lahwaacz, I agree completely with that assessment. Unfortunately ninja does not support any method to set flags externally. no environment vars, no config files, only commandline. In my opinion Ninja default values may fit a dedicated buildserver, but are broken for all other usecases.

Using makeflags to get ninja to behave is imo the lesser evil.

https://github.com/ninja-build/ninja/issues/1482 
looks like a good solution, but no idea when/if that will be availalble.