Package Details: llvm-ocaml-git 18.0.0_r484887.953ae94149f0-1

Git Clone URL: https://aur.archlinux.org/llvm-git.git (read-only, click to copy)
Package Base: llvm-git
Description: OCaml bindings for LLVM
Upstream URL: https://llvm.org/
Keywords: clang git lld lldb llvm polly
Licenses: custom:Apache 2.0 with LLVM Exception
Conflicts: llvm-ocaml
Provides: llvm-ocaml
Submitter: yurikoles
Maintainer: rjahanbakhshi
Last Packager: rjahanbakhshi
Votes: 118
Popularity: 0.005457
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 2 3 4 5 6 7 8 .. 70 Next › Last »

Lone_Wolf commented on 2023-05-05 09:26 (UTC)

It's in package_llvm-git()

    _py="3.10"
    cd llvm-project
    # Install Python bindings and optimize them
    cp -a llvm/bindings/python/llvm  "$pkgdir"/usr/lib/python$_py/site-packages/
    cp -a clang/bindings/python/clang  "$pkgdir"/usr/lib/python$_py/site-packages/
    _python_optimize "$pkgdir"/usr/lib/python$_py/site-packages

rjahanbakhshi commented on 2023-05-05 06:27 (UTC)

@AtticFinder65536,

Can you point out where in the PKGBUILD python version is hard-coded? Thanks,

atticf commented on 2023-05-04 15:50 (UTC)

python 3.10 reference is hardcoded in PKGBUILD, it needs to be updated to 3.11 now

fbrennan commented on 2023-03-30 19:50 (UTC) (edited on 2023-03-30 19:52 (UTC) by fbrennan)

New package: https://aur.archlinux.org/packages/llvm-opt-git

llvm-opt-git can be installed alongside llvm-git/llvm. It installs to /opt. It builds with make rather than ninja.

The diff is quite long: https://aur.archlinux.org/cgit/aur.git/commit/PKGBUILD?h=llvm-opt-git&id=f39b1c131624d76cb111cc7c6c2db26387cd3166

soloturn commented on 2023-02-08 04:20 (UTC)

we now have flags for the repo cloning which saves quite some bandwith:

GITFLAGS="--filter=tree:0" makepkg
GITFLAGS="--depth=1" makepkg
GITFLAGS="--depth=1" paru -S linux-mainline

--depth works with all repositories, --filter in case the repo supports partial clones. it even updates the repo correctly as soon as this is merged: https://gitlab.archlinux.org/pacman/pacman/-/merge_requests/53

if you give it a try and make a comment into the pull request if something does not work i'd be glad.

ivanmlerner commented on 2023-01-29 17:01 (UTC) (edited on 2023-01-30 23:17 (UTC) by ivanmlerner)

@rjahanbakhshi, thanks, I was able to build it in a clean chroot like you said. I don't know if it is still necessary, but I am using an up-to-date arch linux, with mesa-git AUR package, and somehow only noticed now the recommendation to use llvm from AUR. I also have opencl-amd installed, and that seems to have files related to hsa.

rjahanbakhshi commented on 2023-01-27 00:11 (UTC)

@ivanmlerner,

I don't see any errors in building this package in a clean chroot environment. Can you share some details about your environment and the commands you're using to build this?

ivanmlerner commented on 2023-01-22 23:44 (UTC) (edited on 2023-01-22 23:46 (UTC) by ivanmlerner)

Hello, I am getting these errors when trying to build the package:

[7106/8254] Building CXX object tools/clang/tools/amdgpu-arch/CMakeFiles/amdgpu-arch.dir/AMDGPUArch.cpp.o
FAILED: tools/clang/tools/amdgpu-arch/CMakeFiles/amdgpu-arch.dir/AMDGPUArch.cpp.o 
/usr/bin/c++ -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/home/**/llvm-git/src/_build/tools/clang/tools/amdgpu-arch -I/home/**/llvm-git/src/llvm-project/clang/tools/amdgpu-arch -I/home/**/llvm-git/src/llvm-project/clang/include -I/home/**/llvm-git/src/_build/tools/clang/include -I/home/**/llvm-git/src/_build/include -I/home/**/llvm-git/src/llvm-project/llvm/include -march=znver2 -mtune=znver2 -O2 -pipe -fno-plt -fexceptions         -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security         -fstack-clash-protection -fcf-protection -Wp,-D_GLIBCXX_ASSERTIONS -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-maybe-uninitialized -Wno-class-memaccess -Wno-redundant-move -Wno-pessimizing-move -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wno-misleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -fno-common -Woverloaded-virtual -fno-strict-aliasing -O3 -DNDEBUG  -fno-exceptions -std=c++17 -MD -MT tools/clang/tools/amdgpu-arch/CMakeFiles/amdgpu-arch.dir/AMDGPUArch.cpp.o -MF tools/clang/tools/amdgpu-arch/CMakeFiles/amdgpu-arch.dir/AMDGPUArch.cpp.o.d -o tools/clang/tools/amdgpu-arch/CMakeFiles/amdgpu-arch.dir/AMDGPUArch.cpp.o -c /home/**/llvm-git/src/llvm-project/clang/tools/amdgpu-arch/AMDGPUArch.cpp
/home/**/llvm-git/src/llvm-project/clang/tools/amdgpu-arch/AMDGPUArch.cpp:84:8: error: ‘hsa_status_t’ does not name a type
   84 | static hsa_status_t iterateAgentsCallback(hsa_agent_t Agent, void *Data) {

/home/**/llvm-git/src/llvm-project/clang/tools/amdgpu-arch/AMDGPUArch.cpp: In function ‘int main(int, char**)’:
/home/**/llvm-git/src/llvm-project/clang/tools/amdgpu-arch/AMDGPUArch.cpp:112:3: error: ‘hsa_status_t’ was not declared in this scope
  112 |   hsa_status_t Status = hsa_init();

/home/**/llvm-git/src/llvm-project/clang/tools/amdgpu-arch/AMDGPUArch.cpp:113:7: error: ‘Status’ was not declared in this scope
  113 |   if (Status != HSA_STATUS_SUCCESS) {

/home/**/llvm-git/src/llvm-project/clang/tools/amdgpu-arch/AMDGPUArch.cpp:113:17: error: ‘HSA_STATUS_SUCCESS’ was not declared in this scope
  113 |   if (Status != HSA_STATUS_SUCCESS) {

/home/**/llvm-git/src/llvm-project/clang/tools/amdgpu-arch/AMDGPUArch.cpp:118:3: error: ‘Status’ was not declared in this scope
  118 |   Status = hsa_iterate_agents(iterateAgentsCallback, &GPUs);

/home/**/llvm-git/src/llvm-project/clang/tools/amdgpu-arch/AMDGPUArch.cpp:118:31: error: ‘iterateAgentsCallback’ was not declared in this scope
  118 |   Status = hsa_iterate_agents(iterateAgentsCallback, &GPUs);

/home/**/llvm-git/src/llvm-project/clang/tools/amdgpu-arch/AMDGPUArch.cpp:118:12: error: ‘hsa_iterate_agents’ was not declared in this scope
  118 |   Status = hsa_iterate_agents(iterateAgentsCallback, &GPUs);

/home/**/llvm-git/src/llvm-project/clang/tools/amdgpu-arch/AMDGPUArch.cpp:119:17: error: ‘HSA_STATUS_SUCCESS’ was not declared in this scope
  119 |   if (Status != HSA_STATUS_SUCCESS) {

/home/**/llvm-git/src/llvm-project/clang/tools/amdgpu-arch/AMDGPUArch.cpp:129:3: error: ‘hsa_shut_down’ was not declared in this scope
  129 |   hsa_shut_down();

Lone_Wolf commented on 2022-12-23 18:01 (UTC)

BTW_IUseGentoo :

lldb is in makedepends array of the llvm-git PKGBUILD, so the build should indeed fail if it's not present .

The lldb package is in archlinux [extra] repo, just install it before building starts. (it can be removed again after building has finished)