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 (rjahanbakhshi)
Last Packager: rjahanbakhshi
Votes: 113
Popularity: 0.079494
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
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.

Anonymous comment on 2011-02-16 11:33

Note: At the moment clang isn't able to handle all bits gcc-4.5s c++ standard library. It uses some c++0x features that clang doesn't support yet, see http://comments.gmane.org/gmane.comp.compilers.clang.devel/10747 .

I'm building gcc44 from aur now to see what has to be done to make it work.

jedbrown commented on 2011-02-09 16:04

/usr/lib/llvm/libLLVMgold.so is not being installed so linking with clang fails:

$ clang -v foo.c
clang version 2.9 (trunk)
Target: x86_64-unknown-linux-gnu
Thread model: posix
"/usr/bin/clang" -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -mrelax-all -disable-free -disable-llvm-verifier -main-file-name foo.c -mrelocation-model static -mdisable-fp-elim -masm-verbose -mconstructor-aliases -munwind-tables -target-cpu x86-64 -target-linker-version 2.21.0.20101217 -momit-leaf-frame-pointer -v -resource-dir /usr/bin/../lib/clang/2.9 -ferror-limit 19 -fmessage-length 150 -fgnu-runtime -fdiagnostics-show-option -fcolor-diagnostics -o /tmp/cc-zmvsG2.o -x c foo.c
clang -cc1 version 2.9 based upon llvm 2.9svn hosted on x86_64-unknown-linux-gnu
#include "..." search starts here:
#include <...> search starts here:
/usr/local/include
/usr/bin/../lib/clang/2.9/include
/usr/include
End of search list.
"/usr/bin/ld.gold" --eh-frame-hdr -m elf_x86_64 -dynamic-linker /lib/ld-linux-x86-64.so.2 -o a.out /usr/lib/gcc/x86_64-unknown-linux-gnu/4.5.2/../../../../lib/crt1.o /usr/lib/gcc/x86_64-unknown-linux-gnu/4.5.2/../../../../lib/crti.o /usr/lib/gcc/x86_64-unknown-linux-gnu/4.5.2/crtbegin.o -L/usr/lib/gcc/x86_64-unknown-linux-gnu/4.5.2 -L/usr/lib/gcc/x86_64-unknown-linux-gnu/4.5.2/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-unknown-linux-gnu/4.5.2/../../.. /tmp/cc-zmvsG2.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/x86_64-unknown-linux-gnu/4.5.2/crtend.o /usr/lib/gcc/x86_64-unknown-linux-gnu/4.5.2/../../../../lib/crtn.o -plugin /usr/bin/../lib/LLVMgold.so
/usr/bin/ld.gold: error: /usr/bin/../lib/LLVMgold.so: could not load plugin library: /usr/bin/../lib/LLVMgold.so: cannot open shared object file: No such file or directory
clang: error: linker command failed with exit code 1 (use -v to see invocation)

heftig commented on 2010-12-19 22:41

Updated again, still requires [testing].

The gold plugin is unconditionally enabled now, so for LTO, -flto or -O4 is enough.

Building 32-bit via -m32 works, too (needs gcc-multilib, however).

heftig commented on 2010-12-19 19:32

Requires [testing] for now, but LTO should work:

clang -flto -use-gold-plugin foo.c

EdwardXXIV commented on 2010-12-03 21:59

Updated cppheaders.patch: http://aur.pastebin.com/xkPGiibJ

Thanks for maintaining this package!

WFCody commented on 2010-11-22 21:32

Would you be interested in uploading a Clang-svn-selfhost package as well where the dependencies are changed from GCC to Clang? Otherwise I will do that. I do not want to step on anyones toes since I am new here and since this as far as I can see would be a very minor modification of this package.

jedbrown commented on 2010-11-08 19:06

Probably an upstream issue, but

$ clang -v foo.c
clang version 2.9 (trunk)
Target: x86_64-unknown-linux-gnu
Thread model: posix
"/usr/bin/clang" -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -mrelax-all -disable-free -main-file-name foo.c -mrelocation-model static -mdisable-fp-elim -masm-verbose -mconstructor-aliases -munwind-tables -target-cpu x86-64 -target-linker-version 2.20.1.20100521 -v -resource-dir /usr/bin/../lib/clang/2.9 -ferror-limit 19 -fmessage-length 150 -fgnu-runtime -fdiagnostics-show-option -fcolor-diagnostics -o /tmp/cc-oRqdUQ.o -x c foo.c
clang -cc1 version 2.9 based upon llvm 2.9svn hosted on x86_64-unknown-linux-gnu
#include "..." search starts here:
#include <...> search starts here:
/usr/local/include
/usr/bin/../lib/clang/2.9/include
/usr/include
End of search list.
"/usr/bin/ld" --eh-frame-hdr -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o a.out crt1.o crti.o crtbegin.o -L -L/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/../../.. /tmp/cc-oRqdUQ.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed crtend.o crtn.o
/usr/bin/ld: crt1.o: No such file: No such file or directory
clang: error: linker command failed with exit code 1 (use -v to see invocation)

EdwardXXIV commented on 2010-08-13 17:39

the cppheaders.patch needs to be updated again. thanks for maintaining this package!

big_gie commented on 2010-06-28 17:08

I can't build this anymore:
-It seems to depend on pod2html and pod2man, which perl provides. But these tools are in /usr/lib/perl5/core_perl/bin/ which is not in the PATH.
-The chmod at line 117 fails:
chmod: cannot access `clang-svn/pkg/usr/lib/llvm/*.a': No such file or directory
Static library are in "clang-svn/pkg/usr/lib/llvm/llvm/llvm/llvm/" which looks weird.

I'm rebuilding complety to see if it changes something...

maleadt commented on 2010-05-25 08:13

Hm, it sorted itself out after a remove and manual rebuild :)