1 |
Mark Knecht posted on Sat, 15 Apr 2017 17:45:43 -0700 as excerpted: |
2 |
|
3 |
> My wife is not looking for high performance and the machine uses |
4 |
> nvidia-drivers. (If it matters) |
5 |
> |
6 |
> As best I can tell using equery the only package that seems to want it |
7 |
> is mesa and there's a llvm flag implying maybe I can turn it off. I'm |
8 |
> updating her machine and it's been grinding away on this one package for |
9 |
> over 2 hours now. If it's not really required then I'd like to write it |
10 |
> out of my future. |
11 |
|
12 |
Please turn off the HTML posts. |
13 |
|
14 |
General: |
15 |
|
16 |
LLVM is a compiler, like gcc, but newer so in some cases not as |
17 |
optimizing and licensed differently. Developers and some maintainers |
18 |
like it because being a different implementation, it detects different |
19 |
problems. Of course as a result code often has to be ported to work with |
20 |
it if it has previously only been built with gcc, but once that work is |
21 |
done, building on both compilers is a useful way to catch certain new |
22 |
problems /before/ they get into actual shipped and running binaries. |
23 |
|
24 |
Apple and the BSD folks like it because of the license. Unlike gcc, |
25 |
which takes pains to make binary-blob plugins both illegal and broken, |
26 |
they're allowed with llvm. So people can do the open core thing and keep |
27 |
their secret sauce, whether it's super-optimizing or a useful hook for |
28 |
the NSA, secret. |
29 |
|
30 |
The llvm license also allows embedding parts of it into other programs as |
31 |
JIT-compilers (just-in-time), etc, while gcc makes this problematic on |
32 |
two fronts, technically gcc is simply not designed for it, it's more |
33 |
monolithic and harder to suitably modularize, and legally, of course the |
34 |
resulting code will need to be gplv3 or compatible licensed, as is gcc |
35 |
itself, and many authors object to that. But the newer llvm code is |
36 |
already more modular, and the more liberal license allows embedding in |
37 |
non-gpl3-compatible code. |
38 |
|
39 |
Specific: |
40 |
|
41 |
The LLVM license works better with the MIT-licensed X11/Mesa/Wayland, and |
42 |
they've taken advantage of this and its modularity to use it to implement |
43 |
their shadow compilers and etc for newer open-gl, egl, and vulkan. This |
44 |
is effectively an instance of the JIT-compiler/VM embedding mentioned in |
45 |
paragraph 3 above. |
46 |
|
47 |
LLVM is also used, via the same mesa machinery I believe, to enable opencl |
48 |
(using the gpus as compute nodes to accelerate certain calculations, |
49 |
probably most popularly bitcoin generation). |
50 |
|
51 |
AMD's Radeon X11/mesa/wayland drivers to some extent and AMDGPU to a much |
52 |
larger extent, depend on this this code. If you're running amdgpu |
53 |
graphics, disabling this will really cripple your card and drivers if |
54 |
they work at all, while with radeon, it's a bit more optional and indeed |
55 |
unnecessary for the older cards, while the newer cards make use of it for |
56 |
some opengl features (but AFAIK radeon isn't getting vulkan at all). |
57 |
|
58 |
If you're not using radeon/amdgpu, you can probably disable it with |
59 |
little consequence. |
60 |
|
61 |
-- |
62 |
Duncan - List replies preferred. No HTML msgs. |
63 |
"Every nonfree program has a lord, a master -- |
64 |
and if you use the program, he is your master." Richard Stallman |