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.012336
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 .. 53 54 55 56 57 58 59 60 61 62 63 .. 70 Next › Last »

cbab commented on 2013-12-10 13:30 (UTC)

Updated with suggestion from @oliv. @Krejzi let me know if you have any other issue with the package.

xdegaye commented on 2013-12-09 20:26 (UTC)

@mtahmed I will check those problems in r196787 first and then update PKGBUILD with `svn update -r <good_revision>`. This should take a couple of days. Nice that the pull request went smoothly with github, learning every day :-)

oliv commented on 2013-12-09 18:47 (UTC)

Here is the package synchronized with llvm from extra, using multiple package targets (llvm-svn, llvm-libs-svn, llvm-ocaml-svn...): # Maintainer: Christian Babeux <christian.babeux@0x80.ca> # Contributor: Thomas Dziedzic < gostrc at gmail > # Contributor: Roberto Alsina <ralsina@kde.org> # Contributor: Tomas Lindquist Olsen <tomas@famolsen.dk> # Contributor: Anders Bergh <anders@archlinuxppc.org> # Contributor: Tomas Wilhelmsson <tomas.wilhelmsson@gmail.com> pkgbase=llvm-svn pkgname=llvm-svn true && pkgname=('llvm-svn' 'llvm-libs-svn' 'llvm-ocaml-svn') _pkgname='llvm' pkgver=196580 pkgrel=1 pkgdesc='Low Level Virtual Machine - Compiler infrastructure.' arch=('i686' 'x86_64') url="http://llvm.org" license=('custom:University of Illinois/NCSA Open Source License') makedepends=('subversion' 'libffi' 'python2' 'ocaml' 'python-sphinx') options=('staticlibs') source=("${_pkgname}::svn+http://llvm.org/svn/llvm-project/llvm/trunk") sha1sums=('SKIP') # this is always the latest svn so debug info can be useful options=('!strip') pkgver() { cd "$SRCDEST/${_pkgname}" svnversion | tr -d [A-z] } build() { cd "${srcdir}/${_pkgname}" # Apply strip option to configure _optimized_switch="enable" [[ $(check_option strip) == n ]] && _optimized_switch="disable" # Include location of libffi headers in CPPFLAGS CPPFLAGS+=" $(pkg-config --cflags libffi)" # Force the use of GCC instead of clang CC=gcc CXX=g++ \ ./configure \ --prefix=/usr \ --sysconfdir=/etc \ --enable-shared \ --enable-libffi \ --enable-targets=all \ --disable-expensive-checks \ --disable-debug-runtime \ --disable-assertions \ --with-binutils-include=/usr/include \ --with-python=/usr/bin/python2 \ --$_optimized_switch-optimized make REQUIRES_RTTI=1 make -C docs -f Makefile.sphinx man make -C docs -f Makefile.sphinx html } package_llvm-svn() { pkgdesc="Low Level Virtual Machine" depends=("llvm-libs-svn=$pkgver-$pkgrel" 'perl') provides=('llvm') conflicts=('llvm') cd "${srcdir}/${_pkgname}" # -j1 is due to race conditions during the installation of the OCaml bindings make -j1 DESTDIR="$pkgdir" install # The runtime library goes into llvm-libs mv "$pkgdir"/usr/lib/libLLVM-*.so "$srcdir" # OCaml bindings go to a separate package rm -rf "$srcdir"/{ocaml,ocamldoc} mv "$pkgdir"/usr/{lib/ocaml,docs/llvm/ocamldoc} "$srcdir" # Remove duplicate files installed by the OCaml bindings rm "$pkgdir"/usr/{lib/libllvm*,docs/llvm/ocamldoc.tar.gz} # Fix permissions of static libs chmod -x "$pkgdir"/usr/lib/*.a # Get rid of example Hello transformation rm "$pkgdir"/usr/lib/*LLVMHello.* # Symlink LLVMgold.so into /usr/lib/bfd-plugins # (https://bugs.archlinux.org/task/28479) install -d "$pkgdir/usr/lib/bfd-plugins" ln -s ../LLVMgold.so "$pkgdir/usr/lib/bfd-plugins/LLVMgold.so" ls #if [[ $CARCH == x86_64 ]]; then # Needed for multilib (https://bugs.archlinux.org/task/29951) # Header stubs are taken from Fedora #for _header in config llvm-config; do # echo "$pkgdir/usr/include/llvm/Config/$_header"{,-64}.h # mv "$pkgdir/usr/include/llvm/Config/$_header"{,-64}.h # cp "$srcdir/llvm-Config-$_header.h" \ # "$pkgdir/usr/include/llvm/Config/$_header.h" #done #fi # Install man pages install -d "$pkgdir/usr/share/man/man1" cp docs/_build/man/*.1 "$pkgdir/usr/share/man/man1/" # Install html docs cp -r docs/_build/html/* "$pkgdir/usr/docs/$_pkgname/html/" rm -r "$pkgdir/usr/docs/$_pkgname/html/_sources" install -Dm644 LICENSE.TXT "$pkgdir/usr/share/licenses/$pkgname/LICENSE" } package_llvm-libs-svn() { pkgdesc="Low Level Virtual Machine (runtime library)" depends=('gcc-libs' 'zlib' 'libffi') provides=('llvm-libs') conflicts=('llvm-libs') mkdir -p "$pkgdir"/usr/lib/ install -D "$srcdir"/libLLVM-*.so "$pkgdir/usr/lib/" install -Dm644 "${srcdir}/${_pkgname}/LICENSE.TXT" \ "$pkgdir/usr/share/licenses/$pkgname/LICENSE" } package_llvm-ocaml-svn() { pkgdesc="OCaml bindings for LLVM" depends=("llvm-svn=$pkgver-$pkgrel" 'ocaml') provides=('llvm-ocaml') conflicts=('llvm-ocaml') cd "${srcdir}/${_pkgname}" install -d "$pkgdir"/{usr/lib,usr/share/doc/llvm} cp -r "$srcdir/ocaml" "$pkgdir/usr/lib" cp -r "$srcdir/ocamldoc" "$pkgdir/usr/share/doc/llvm" # Remove execute bit from static libraries chmod -x "$pkgdir"/usr/lib/ocaml/libllvm*.a install -Dm644 LICENSE.TXT "$pkgdir/usr/share/licenses/llvm-ocaml/LICENSE" } # vim:set ts=2 sw=2 et:

mtahmed commented on 2013-12-09 18:07 (UTC)

@xdegaye Yes, I merged your pull request in and I made a comment pointing out this error. It should just be as simple as `svn update -r <good_revision>` before export right?

xdegaye commented on 2013-12-09 17:27 (UTC)

@mtahmed Pull request done to your github repo. Argh wait, they just commited r196787 with another bug: no ‘lldb_private::Error ProcessLinux::DoResume()’ member function declared in class ‘ProcessLinux’ I will look into it. Maybe PKGBUILD should be changed to checkout a revision that we know is building without error.

xdegaye commented on 2013-12-08 23:45 (UTC)

@mtahmed No problem, I will do as you suggest, it is indeed much more efficient. I did make sure to write these codepads with unix LFs, so it must be codepad that have mapped them to CRLFs, probably because I flagged them as Language 'Text', should have used 'C' instead.

mtahmed commented on 2013-12-08 23:22 (UTC)

@xdegaye Thanks a lot for taking the time to patch this. I am however very (very) busy these days and although writing this message also takes time, it's worth it since you are a regular contributor. Could you please instead send a pull request to the github repo where I am maintain this (https://github.com/mtahmed/aur)? It's also probably easier for you to contribute patches as well after the first time. I have to download the files, convert them (dos2unix), manually generate diffs to see the changes, package it and then update the this AUR. I would really appreciate if you could do that instead (and use Unix line terminators :) ... not sure if it's codepad that adds the dos line terminators). Thanks!

xdegaye commented on 2013-12-08 23:02 (UTC)

Build fails on the current lldb svn head. The following mails to upstream list the problems and propose two patches: http://thread.gmane.org/gmane.comp.debugging.lldb.devel/2792 http://thread.gmane.org/gmane.comp.debugging.lldb.devel/2793 http://thread.gmane.org/gmane.comp.debugging.lldb.devel/2794 PKGBUILD at http://codepad.org/bWHG8EkT fixes temporarily the problems with sin_len.patch at http://codepad.org/zAr2beuT and usr_bin_env_python.patch at http://codepad.org/Eurthufy. This PKGBUILD can be used while waiting for upstream to fix the two bugs. In any case, the '-DLLVM_ENABLE_CXX11=ON' cmake variable is needed now.