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.