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: Lone_Wolf
Last Packager: Lone_Wolf
Votes: 110
Popularity: 0.057764
First Submitted: 2018-12-05 13:56
Last Updated: 2019-11-18 14:13

Pinned Comments

Lone_Wolf commented on 2019-04-12 20:41

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. I understand how older llvm libs repo packages do it, not sure yet if i agree with the approach.

  • llvm-git

    has llvm , clang, compiler-rt, ocaml & python bindings, polly , lld , lldb . The provides for llvm-svn have been re-added to allow others maintainers to update their packages.


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"

llvm check now works, clang check however fails. I suggest to test without nocheck first, if build fails due to test failure add--nocheck .

Latest Comments

« First ‹ Previous 1 2 3 4 5 6 7 8 9 ... Next › Last »

Lone_Wolf commented on 2019-05-23 13:20

For the foreseeable future I'll continue being an active AUR maintainer. A compromise for mesa-git / lib32-git is now in place that allows default building against extra while making it easy to build against trunk master.

llvm-lw-git / compiler-rt-lw-git / clang-lw-git , lone_wolf-llvm-git / lone_wolf-compiler-rt-git / lone_wolf-clang-git and their lib32 variants are replaced by llvm-minimal-git + co and will be submitted for deletion / merge in 2 weeks or so.

That leaves 2 llvm trunk sets : llvm-git and llvm-minimal-git . I think llvm-git should continue to provide a full llvm/clang trunk enviornment with all the bells and whistles attached , while llvm-minimal-git is intended to provide a basic llvm/clang trunk withotu extras.

llvm-minimal-git should coexist with extra llvm , while llvm-git conflicts with it.

There are still some things I want to improve in llvm-git that should be finished sometime next month or july. I expect that end of july I'l be asking for someone to take over llvm-git while I'll be keeping llvm-minimal-git .

yurikoles commented on 2019-05-23 08:14

@Lone_Wolf, had you decided something about maintaining your AUR packages?

Lone_Wolf commented on 2019-05-12 12:28

  • 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

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

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

@Lone_Wolf

Must have been fixed by a recent commit or something.

Lone_Wolf commented on 2019-05-07 09:07

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

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

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

Lone_Wolf commented on 2019-04-29 11:39

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