I'm stuck between the hammer and the anvil here.
I'd like NetBSD to use a recent MesaLib, the kind that uses LLVM.
I keep getting reports that r600.so isn't actually functional*, and
amdgpu would be even more noticeable.

I've done my best to improve support of MesaLib for modular xorg within
pkgsrc, however:
 - NetBSD did not officially switch to modular xorg for x86
 - I don't trust pkgsrc not to break modular xorg
 - I don't trust NetBSD to test pkgsrc-current before a branch is cut,
   so we are going to have random periods of time where you can't get a
   GUI, and frantic fixes will be needed.
 - With most of the testing going to be done on NetBSD-current, old
   releases are eventually going to fail.
 - LLVM will eventually require ever-newer C++, and old stable won't
   have it, and then we will need pkgsrc GCC
 - -> See joerg objections for the use of pkgsrc GCC

I'm doing a lot of work to make MesaLib build. I'd really like not to
do this, it took a lot of effort, and using the upstream build system is
probably going to yield a less error-prone build, but I want graphics to
work well.

I'm at the mercy of upstream compatibility.
MesaLib has a lot of code that looks like:

src/gallium/drivers/swr/rasterizer/jitter/JitManager.cpp:#if LLVM_VERSION_MAJOR 
>= 7
src/gallium/drivers/swr/rasterizer/jitter/JitManager.cpp:#if LLVM_VERSION_MAJOR 
< 6
src/gallium/drivers/swr/rasterizer/jitter/jit_pch.hpp:#if LLVM_VERSION_MAJOR >= 
7
src/gallium/drivers/swr/rasterizer/jitter/jit_pch.hpp:#if LLVM_VERSION_MAJOR >= 
5
src/gallium/drivers/swr/rasterizer/jitter/functionpasses/lower_x86.cpp:#if 
LLVM_VERSION_MAJOR < 7
src/gallium/drivers/swr/rasterizer/jitter/functionpasses/lower_x86.cpp:#if 
LLVM_VERSION_MAJOR < 7

So no, it's very not compatible. Hopefully we can major bump when
LLVM major bumps. We're already past the point of major=1, so we had to
patch all the code looking specifically for libGL.so.1 already.


* Mine kicked the bucket, so I don't know. But it seemed that way!

Reply via email to