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