Gentoo Archives: gentoo-dev

From: Gerion Entrup <gerion.entrup@×××××.de>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] [RFC] Un-slotting LLVM
Date: Mon, 08 Nov 2021 12:52:20
Message-Id: 14509544.tv2OnDr8pf@falbala
In Reply to: [gentoo-dev] [RFC] Un-slotting LLVM by "Michał Górny"
1 Am Montag, 8. November 2021, 12:18:30 CET schrieb Michał Górny:
2 > WDYT?
3
4 Not a Gentoo dev but a user who develops software.
5 I find it pretty convenient to have multiple LLVM versions available.
6 I'm developing software that links against LLVM and can test it against
7 multiple versions pretty easy with the current setup. I can evaluate a
8 new LLVM version before switching my own software to it. I can even test
9 some old (already bit-rotted) software that needs an old LLVM version since
10 Gentoo provides it.
11
12 I'm pretty sure that this argument also holds for all users that want to
13 test their software against multiple versions of Clang (just the same as it
14 holds for slotted GCC).
15
16 To summarize: Slotted LLVM is not only a feature for other distribution
17 packages but also for users of Gentoo that develop software in compiled
18 languages.
19
20
21 > I'm hearing more
22 > and more reports of programs being broken through getting multiple LLVM
23 > versions in the link chain.
24
25 I'm actually experienced this, but slotted LLVM was a solution here not
26 a problem. Let me explain the link chain (an arrow means: "link against"):
27
28 my tool --> an unpackaged third party lib (bound to an old LLVM) -> LLVM 10
29 ´-> graph-tool -> matplotlib -> Mesa (with AMD graphic card) -> LLVM 12 (system default)
30
31 So my tool depends on a third party lib which needs LLVM 10 (without an easy port).
32 But as I also have an AMD graphic card so my Mesa is compiled with libLLVM for AMDGPU
33 which loads LLVM 12. My tool uses graph-tool which at the end loads Mesa.
34 As a result my LLVM versions conflicted.
35
36 My fix was to modify the Mesa ebuild to use LLVM 10 as well. This would
37 have been possible without slotted LLVM, but then I has to use LLVM 10
38 for everything in my system. I'm also not sure, if this would
39 be possible on any other distribution (without containerizing stuff).
40 (In the meantime the third party lib has updated its code to LLVM 12 so
41 everything is fine again.)
42
43 Best,
44 Gerion

Attachments

File name MIME type
signature.asc application/pgp-signature