[blfs-dev] LLVM-Mesa interaction : urgent change:wq

Ken Moffat zarniwhoop at ntlworld.com
Wed Sep 9 19:07:11 PDT 2015


On Tue, Sep 08, 2015 at 09:58:41PM +0100, Ken Moffat wrote:
> On Tue, Sep 08, 2015 at 10:24:43PM +0200, Pierre Labastie wrote:
> > On 08/09/2015 16:30, Fernando de Oliveira wrote:
> > > Em 08-09-2015 10:43, Pierre Labastie escreveu:
[...]
> > > 
> > > Agreed. I couldn't decide, and forgot to ask Ken if it would be OK to
> > > remove form Mesa and let the user decide, when he needed, because Ken
> > > explicitly mentioned r600 in two ocasions or more, in our discussion.
> > > That made me thinking that I could remove from GLL_DRV, because a user
> > > needing it would fill up the steps. Of course, Ken is much more than a
> > > user, so, your suggestion is probably the best one. But it would be good
> > > to hear Ken's opinion.
> > > 
> > > Again, I agree with you, but Ken may provide some better alternative.
> > > 
> > 
> > Hope Ken can see this...
> > 
> > OTOH, here is some added information about LLVM:
> > 
> > I've looked at llvm configure script:
> > --enable-targets=r600 is equivalent to --enable-targets=amdgpu
> > --enable-targets=host is equivalent to --enable-targets=x86 on i686 or x86_64
> > --enable-targets=cpp has nothing to do with clang++. If you build and use that
> > target, you'll generate C++ code obtained from the llvm assembly code
> > generated by the compiler. I found this explanation on the internet:
> > "The CPP backend creates LLVM API calls to create an AST that represent the
> > equivalent of the LLVM assembly." I haven't understood everything, but I think
> > that is not something useful for the book...
> > 
> > Also, the r600/amdgpu target is needed for radeonsi driver, and optional for
> > r600 driver, but mesa-10 cannot be built with it/them on llvm-3.7.0 (it needs
> > patches at least). OTOH, mesa-11 should be out within a few days (already at
> > rc3). I wonder whether updating to mesa-11 could be considered for BLFS-7.8. I
> > understand that Mesa impact a lot of other packages, but maybe not so many
> > outside "X window system environment" chapter. Note that radeonsi is needed
> > for Radeon Southern Islands and later gpu's (I have received all this
> > information in a private mail from a former editor).
> > 
> > Pierre
> 
> Sorry, I only skimmed the earlier post and missed a lot of it : saw
> that r600 was missing (I have not updated my local copy of the book
> at the moment) and thought it would be reinstated.
> 
> I blame myself for my comments on the llvm ticket - since (at least)
> 3.6, llvm builds for all targets by default - I noticed that while I
> was watching 3.7 build things I really did not need.  On my current
> build (nominally 2nd September BLFS) I built llvm-3.6.2 with
>  --enable-targets=r600
> and that seems to have been enough for what I need (llvm only used
> for the r600 mesa driver) :
> ls -l /usr/lib/dri/*.so
> -rwxr-xr-x 1 root root   25048 Sep  5 19:03 /usr/lib/dri/dummy_drv_video.so
> -rwxr-xr-x 5 root root 6703128 Sep  5 18:57 /usr/lib/dri/i915_dri.so
> -rwxr-xr-x 5 root root 6703128 Sep  5 18:57 /usr/lib/dri/i965_dri.so
> -rwxr-xr-x 1 root root 1849144 Sep  5 19:03 /usr/lib/dri/i965_drv_video.so
> -rwxr-xr-x 7 root root 9296216 Sep  5 18:57 /usr/lib/dri/kms_swrast_dri.so
> -rwxr-xr-x 7 root root 9296216 Sep  5 18:57 /usr/lib/dri/nouveau_dri.so
> -rwxr-xr-x 5 root root 6703128 Sep  5 18:57 /usr/lib/dri/nouveau_vieux_dri.so
> -rwxr-xr-x 5 root root 6703128 Sep  5 18:57 /usr/lib/dri/r200_dri.so
> -rwxr-xr-x 7 root root 9296216 Sep  5 18:57 /usr/lib/dri/r300_dri.so
> -rwxr-xr-x 7 root root 9296216 Sep  5 18:57 /usr/lib/dri/r600_dri.so
> -rwxr-xr-x 5 root root 6703128 Sep  5 18:57 /usr/lib/dri/radeon_dri.so
> -rwxr-xr-x 7 root root 9296216 Sep  5 18:57 /usr/lib/dri/radeonsi_dri.so
> -rwxr-xr-x 7 root root 9296216 Sep  5 18:57 /usr/lib/dri/swrast_dri.so
> -rwxr-xr-x 7 root root 9296216 Sep  5 18:57 /usr/lib/dri/vmwgfx_dri.so
> 
> That restriction to only r600 should probably not be our default
> (we want to allow people to build clang if they insist), but I would
> like to include it as optional.
> 
At the moment, mesa recommends llvm (required for Gallium3D r300 and
radeonsi drivers and also for llvmpipe which is intended to be the
fastest of the three sw rasterizers, ... ) and llvm just has
--enable-targets=host

AFAICS that will NOT let llvm build mesa (we build for all graphics
variants in mesa).  Looking back at what I had, I see that using
only the r600 target has not provided me with llvmpipe : the log is
misleading, because it appears to build in llvmpipe and creates
llvmpipe.la, but nothing gets installed.

I now propose to change llvm to "--enable-targets=host,r600" AND to
change the explanation from

--enable-targets=host: This switch enables building for the same
target as the host. Default is all. You can use a comma separated
list. Valid targets are: host, x86, x86_64, sparc, powerpc, arm64,
arm, aarch64, mips, hexagon, xcore, msp430, nvptx, systemz, r600,
bpf, wasm, and cpp.

to

--enable-targets=host,r600: This switch enables building for the same
target as the host, and also for the r600 AMD GPU used by the Mesa
r600 and radeonsi drivers. The default is all. You can use a comma
separated list. Valid targets are: host, x86, x86_64, sparc, powerpc,
arm64, arm, aarch64, mips, hexagon, xcore, msp430, nvptx, systemz, r600,
bpf, wasm, and cpp

unless anybody objects in the next few hours.

ĸen
-- 
Il Porcupino Nil Sodomy Est! (if you will excuse my latatian)
  aka "The hedgehog song"


More information about the blfs-dev mailing list