Package Details: llvm-git 9.0.0_r318181.92f95d21912-1

Git Clone URL: https://aur.archlinux.org/llvm-git.git (read-only)
Package Base: llvm-git
Description: LLVM development version. includes clang and many other tools
Upstream URL: https://llvm.org/
Keywords: clang git lld lldb llvm polly
Licenses: custom:University of Illinois/NCSA Open Source License
Conflicts: clang, compiler-rt, lld, lldb, llvm, llvm-ocaml, polly
Provides: aur-llvm-git, clang=9.0.0_r318181.92f95d21912-1, clang-git=9.0.0_r318181.92f95d21912-1, clang-svn, compiler-rt=9.0.0_r318181.92f95d21912-1, compiler-rt-git=9.0.0_r318181.92f95d21912-1, compiler-rt-svn, lld=9.0.0_r318181.92f95d21912-1, lld-git=9.0.0_r318181.92f95d21912-1, lld-svn, lldb=9.0.0_r318181.92f95d21912-1, lldb-git=9.0.0_r318181.92f95d21912-1, lldb-svn, llvm-ocaml=9.0.0_r318181.92f95d21912-1, llvm-ocaml-git=9.0.0_r318181.92f95d21912-1, llvm-ocaml-svn, llvm-svn, polly=9.0.0_r318181.92f95d21912-1, polly-git=9.0.0_r318181.92f95d21912-1, polly-svn
Submitter: yurikoles
Maintainer: Lone_Wolf
Last Packager: Lone_Wolf
Votes: 109
Popularity: 0.800164
First Submitted: 2018-12-05 13:56
Last Updated: 2019-06-04 14:27

Dependencies (19)

Required by (445)

Sources (3)

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

1 2 3 4 5 6 ... Next › Last »

QuartzDragon commented on 2019-06-15 11:58

Hey @Lone_Wolf, can you add llvm and llvm-git to the provides?

Every package depending on llvm wants to install llvm from the main repos, which prompted me to look. Adding llvm to provides shut them up. Adding llvm-git also wouldn't be a bad idea, just in-case some other AUR package demands a specific version for whatever random reason.

Griever commented on 2019-06-07 18:30

The provides are really starting to become a bit of a mess and maintenance burden. There's been, like, half a dozen switches on mesa-git?

Is there a reason mesa-git should depend on anything other than regular llvm provides? If so, is there really a reason to depend on anything other than *-git provides? AFAIK, mesa usually maintains compatibility with the last two stable LLVM releases.

Ideally, I believe this should only provide regular llvm, *-git and *-svn for compatibility with outdated packages such as libclc-git. Packages should never explicitly depend on *-git or unique packages unless they actually require it.

I truly appreciate you maintaining these packages, but it's becoming a pain to follow all of the changes and regular PKGBUILD breaks due to makedepend/provide changes. Apologies if there are legitimate reasons why all of this is required and can't be worked around any better.

yurikoles commented on 2019-06-02 20:40

@cj360 but you post it here instead of official LLVM bugzilla?

cj360 commented on 2019-06-02 20:34

Trying to build this package is failing for me with this hardware, Ryzen 1600 16gb ram. Here's some of the output the following http://ix.io/1KKY.

Lone_Wolf commented on 2019-05-26 13:38

jpapadopoulos, this package is supposed to be built aginst python 3.

It does seem when both python2 & python3 are installed cmake uses python2 .

Add -D PYTHON_EXECUTABLE=/usr/bin/python \ to the cmake command and cmake will have to use python3 on archlinux.

I'll do the same in next version of the package.

jpapadopoulos commented on 2019-05-26 08:19

I had the following conflict: llvm-git: /usr/lib/python2.7/site-packages/six.py exists in filesystem (owned by python2-six) I fixed it editing the PKGBUILD to also remove the 2.7 version of six.py . Maybe this should always be removed and the python2-six added as a dep?

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.