Package Base Details: llvm-git

Git Clone URL: (read-only, click to copy)
Keywords: clang git lld lldb llvm polly
Submitter: yurikoles
Maintainer: Lone_Wolf (rjahanbakhshi)
Last Packager: rjahanbakhshi
Votes: 112
Popularity: 0.041389
First Submitted: 2018-12-05 13:56
Last Updated: 2021-06-23 10:38

Pinned Comments

Lone_Wolf commented on 2020-08-22 12:18

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

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

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 ... 5 6 7 8 9 10 11 12 13 14 15 ... Next › Last »

Sinistar commented on 2019-09-25 21:44

Yes I add the version to the dependency. I also split out the packages as they are in the extra repo, but do not build lld or lldb.

Lone_Wolf commented on 2019-09-25 08:03

Sinistar, did you also add a hard dependency on that version as a runtime dependency for llvm-git ?

If not, then you have no guarantee the ocaml version at runtime will be the same as the one the package is build against.

I guess the clean way to do this would be to go back to the method used in llvm-svn (and extra/llvm ) and split off the ocaml support into a package_llvm-ocaml-git() function that gets a hard dependency on the specific ocaml version it's build against.

Sinistar commented on 2019-09-24 23:48

I use this in my PKGBUILD for ocaml version.

 _ocaml_ver() {
 { pacman -Q ocaml 2>/dev/null || pacman -Sp --print-format '%n %v' ocaml ;} \
     | awk '{ print $2 }' | cut -d - -f 1 | cut -d . -f 1,2,3}

Lone_Wolf commented on 2019-08-22 21:31

The hardcoded ocaml version was a remnant from llvm-svn and intended to ensure installed ocaml was the same as where llvm-ocaml-svn was build against.

This worked because ocaml was a dependency for llvm-ocaml-svn, but ocaml is an optdepend for llvm-git and optdepends can't have version requirements.

I've removed the hardcocded version requirement.

Lone_Wolf commented on 2019-08-22 13:08

Yup, ocaml was upgraded in repos and you're the first to notice that breaks building .

I'll update it and/or look into methods to automate getting that version.

PedroHLC commented on 2019-08-22 11:36

error: target not found: ocaml=4.07.1

Is that right? ocaml in extra is on 4.08.0

gally commented on 2019-07-11 20:54

Hi, thanks alot for the suggestions. I figured out what was wrong on my part. Turns out my buildfolder ran out of space, even though no error pointed to this at first. I moved it around and now it build fine. Sorry :)

PedroHLC commented on 2019-07-11 13:37

I have been building @Lone_Wolf's llvm-git, llvm-minimal-git and lib32 variants in my repo (chaotic-aur) every single day since February, including checks. And all this time I recall it failing only two or three times. The secret is to always build in a clean chroot. (I also build mesa-git hourly, this sometimes fails in the building, but it's usually fixed a few minutes later )

Lone_Wolf commented on 2019-07-11 11:52

I just finshed building, got lots of warnings, but NO build failures at all with a fully updated archlinux . There were test failures, but those are very common with llvm trunk and skipping them with makepkg --nocheck option is easy.

  • to those with build problems.

If you don't use devtools, build with makepkg --cleanbuild --syncdeps --rmdeps .

Make sure no other llvm package is installed. An existing installation of ocaml and python-recommonmark can also cause problems.

Incorrect python installs can break the build() & check() easily. Make sure you're only using python3 from arch repos. If you use pip, conda , anaconda or other stuff that tries to manage python , create a separate user for those or for building llvm-git.

  • lots of provides

Lordheavy unofficial repo has switched to -git, so the -svn provides can go. packages that still depend on them should be updated (or orphaned if maintainer is unactive). I will add llvm-git to provides and also look at provides as a whole.

  • not providing llvm

This is a deliberate choice, I will add pinned comments explaining the reasoning.


Thanks for testing, nightuser. I have good resuilts with that option in llvm-minimal-git and your confirmation helps. I will switch to that method.

gally commented on 2019-07-10 13:37

Same issues as cj360. Looking through bugzilla it looked like it's an issue with gcc 9.1, so I downgraded it to 8.3.0. However same results as cj360 just a bit later on.