Package Details: clang-minimal-git 20.0.0_r510973.d6d60707ec2b-3

Git Clone URL: https://aur.archlinux.org/llvm-minimal-git.git (read-only, click to copy)
Package Base: llvm-minimal-git
Description: C language family frontend for LLVM (trimmed down git version)
Upstream URL: https://llvm.org/
Licenses: Apache-2.0 WITH LLVM-exception
Conflicts: clang, compiler-rt
Provides: clang, clang-analyzer, clang-tools-extra, compiler-rt
Submitter: Lone_Wolf
Maintainer: Lone_Wolf
Last Packager: Lone_Wolf
Votes: 5
Popularity: 0.006928
First Submitted: 2019-05-14 19:32 (UTC)
Last Updated: 2024-09-07 14:04 (UTC)

Dependencies (17)

Required by (1339)

Sources (1)

Pinned Comments

Lone_Wolf commented on 2022-11-02 11:39 (UTC)

During building you may encounter lots of coredumps, slowing build down or even dramatically reducing the responsiveness of your system.

See https://wiki.archlinux.org/title/Core_dump for solutions/workarounds .

Lone_Wolf commented on 2020-08-22 12:30 (UTC) (edited on 2020-08-22 12:31 (UTC) by Lone_Wolf)

Archlinux currently has 3 llvm git implementations

  1. this package

    • see other pinned comments for details
  2. llvm-git

    • 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
    • binary versions in chaotic aur unofficial repository
  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-08-25 12:39 (UTC) (edited on 2021-01-30 21:15 (UTC) by Lone_Wolf)

Why does this package exist ?

Llvm & aur llvm-git are intended to provide a full development environment of llvm/clang suite that can replace eachother completely (aur llvm-git adds some xtra functionality)

llvm-minimal-git is a stripped-down llvm trunk build with these goals :

  • llvm-libs-minimal-git must coexist with stable llvm-libs
  • provide what's needed for mesa trunk (it's a hard dependency for mesa-minimal-git and a possible dependeny for mesa-git)
  • provide basic llvm/clang compiler functionality on x86-64 architecture

Some of the things that are stripped out :

  • cross-compiling support
  • bindings for ocaml
  • bindings for go
  • lld , lldb and polly
  • documentation
  • examples
  • benchmarks

Maintainers (and users) should only depend on llvm-miminal-git after verifying it satisfies what they need.

Lone_Wolf commented on 2019-08-21 13:51 (UTC) (edited on 2024-02-24 20:50 (UTC) by Lone_Wolf)

When building this you are likely to see test failures in terminal output / logs.

The command used for the tests has been changed to continue regardless of failures. Incase you don't want to run the tests you can use --nocheck option of makepkg.

Latest Comments

« First ‹ Previous 1 2 3 4 5 6 7 8 9 Next › Last »

archdevlab commented on 2023-04-17 00:28 (UTC) (edited on 2023-04-17 01:06 (UTC) by archdevlab)

Hi I did some research and Archlinux use LLVM_DISTRIBUTION_COMPONENTS stuff in clang14 to get rid of scan-view scan-build-py libscanbuild libear and other stuff : https://github.com/archlinux/svntogit-packages/blob/267928609d468bf6f10e3a1e01d6dfb59ccd4e8b/trunk/PKGBUILD#L40

They are related to python stuff when looking to the file included in clang package. The question is : Are these python stuff are needed to llvm-minimal-git? The problem is that they provide analyze functionnality

Also libear libscanbuild scan-build-py Just sit here in llvm code : https://github.com/llvm/llvm-project/tree/main/clang/tools/scan-view

scan-view also provide some python stuff : https://github.com/llvm/llvm-project/tree/main/clang/tools/scan-view

Other question if theyy are needed, why you choose to not optimize them with python like Arch?

archdevlab commented on 2023-04-16 02:12 (UTC)

Hi I will do more research for the LLVM_DISTRIBUTION_COMPONENTS stuff and keep in touch with you.

As for libexec and scan-build I will keep in touch.

For the split clang package I was talking about to build keel this PKGBUILD but move out the clang stuff in another package like spirv-llvm-translator llvm-libs and clang-libs.

Thanks in advance

Lone_Wolf commented on 2023-04-15 16:43 (UTC) (edited on 2023-04-15 16:44 (UTC) by Lone_Wolf)

Splitting llvm & clang to separate packages is not possible without switching to a snapshot approach because they need to build from the exact same sourcecode . This would mean they would no longer be VCS pacakges but instead built a specific commit. Functionally they would work similar to papadoka & oibaf PPA for ubuntu. Users would depend on the maintainer to update the package.

(The separate libclc package works because libclc is actually an independent project that uses llvm but could be (and in the past was) developed independently.)

scan-build + folders libear & libscanbuild : I don't know what they are used for and why they should be available at runtime.

The libexec stuff is already moved to another location in the PKGBUILD, and for them the same Q : why should they be in clang-libs ?

As for the LLVM_DISTRIBUTION_COMPONENTS stuff : I've noticed it when gentoo started using it a few years ago and it's definitely an interesting approach.

There are a few reasons I am reluctant to use it :

  • I don't understand which components are left out and especially why. I have not been able to find an explanation for the choices made in the code.
  • When I started llvm-minimal-git I didn't include the static libraries but was asked to put them back almost immediately.
  • llvm-minimal-git already disables many parts of the code and targets very few architectures. Is the gain from using LLVM_DISTRIBUTION_COMPONENTS worth it ?

archdevlab commented on 2023-04-15 15:47 (UTC)

Also you shoud integrate these change from Archlinux package

LLvm :

https://github.com/archlinux/svntogit-packages/commit/bc5ab1d4b61a7d2221cfdd9154e01ccd14073333

Clang

https://github.com/archlinux/svntogit-packages/commit/e2184987401af37297ca01f8d6a6bb4570b9faa0

https://github.com/archlinux/svntogit-packages/commit/164338d38f15ffc9a5b3b86c15b7ecf04045ebdf

I incorporate these commit in on line in my PKGBUILD here : https://github.com/blacksky3/llvm-minimal-git/blob/a010f5fd05394a4ede2e8ee94a00e22a407d1564/llvm-minimal-git/llvm-minimal-git/PKGBUILD#L38

Thanks!

archdevlab commented on 2023-04-15 15:38 (UTC)

Also thanks addings clang-libs based on my comment :)

archdevlab commented on 2023-04-15 15:37 (UTC) (edited on 2023-04-15 15:40 (UTC) by archdevlab)

you shout also add these lines in the PKGBUILD like mention in the patch

The python and runtime libraries go into clang-libs

mv -f "$pkgdir"/usr/lib/libclang{,-cpp}.so* "$srcdir"

mv -f "$pkgdir"/usr/lib/{libear,libscanbuild} "$srcdir"

mv -f "$pkgdir"/usr/libexec "$srcdir"

mv -f "$pkgdir"/usr/bin/scan-build "$srcdir"

package_clang-libs() {

depends=('llvm-libs')

optdepends=('python: for the python bindings')

cd "$srcdir/$pkgbase-$pkgver.src/build"

# Move in libraries ejected at end of package_clang

install -d "$pkgdir/usr/lib"

install -d "$pkgdir/usr/lib/clang"

install -d "$pkgdir/usr/bin"

cp -a "$srcdir"/libclang{,-cpp}.so* "$pkgdir/usr/lib"

# These three moved again below, but keeping those blocks untouched for cleaner merges with upstream monopackage.

cp -a "$srcdir"/{libear,libscanbuild} "$pkgdir/usr/lib"

cp -av "$srcdir"/libexec "$pkgdir"/usr/

cp -av "$srcdir"/scan-build "$pkgdir"/usr/bin/

Also maybe spliting clang into its hown package and make a hard depend on clang-libs ?

Like in this patch https://bugs.archlinux.org/task/72588?getfile=21109 ?

Lone_Wolf commented on 2023-04-15 13:51 (UTC)

Very interesting talk. I have split off clang runtime libs into a new clang-libs-minimal-git package.

archdevlab commented on 2023-04-15 03:26 (UTC)

@Lone_Wolf

The reason for that comment is that clang there is a talk about spliting clang and clang libs in Archlinux . https://bugs.archlinux.org/task/72588?project=1&string=llvm

Thanks!

Lone_Wolf commented on 2023-04-14 22:49 (UTC)

I was unable to reproduce the case where rusticl needed complete llvm-minimal-git support to work, so removed it as dep from rusticl-minimal-git .

Lone_Wolf commented on 2023-04-13 23:08 (UTC) (edited on 2023-04-13 23:09 (UTC) by Lone_Wolf)

The reason to add clang-cpp in that commit was that opencl only needed that library to work, the rest of llvm-minimal-git wasn't needed.

I guess your suggestion is related to https://aur.archlinux.org/cgit/aur.git/commit/?h=mesa-minimal-git&id=d665a1fc7ba6b907c13f0cc37ab36467e4efded5 where llvm-minimal-git was added as dep to rusticl-minimal-git ?

Have you verified if libclang.so.17.0.0 is the only thing from llvm-minimal-git rusticl needs to build opencl kernels ?