[Buildroot] [PATCH] package/mesa3d: add dependency on elfutils to r600 with llvm
Thomas Petazzoni
thomas.petazzoni at bootlin.com
Tue Apr 10 21:33:36 UTC 2018
Hello,
On Tue, 10 Apr 2018 18:21:26 +0200, Valentin Korenblit wrote:
> > I don't understand why you have two mutually exclusive options here.
> > Why not instead have a sub-option ?
>
> I did this because once you have activated llvm support for Mesa, if
> you select Gallium R600 drivers, they will also need to be compiled
> with llvm support, which requires elfutils and AMDGPU backend as dependencies.
Aah, OK, I understand. This is really crappy (in Mesa3D).
> radeon_llvm_check() in configure.ac from Mesa adds these dependencies.
>
> Another possibility without creating a new option would be:
>
> config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_R600
> bool "Gallium Radeon R600 driver"
> depends on BR2_i386 || BR2_x86_64
> depends on (!BR2_PACKAGE_MESA3D_LLVM || \
> (BR2_PACKAGE_MESA3D_LLVM && (BR2_TOOLCHAIN_USES_UCLIBC || \
> BR2_TOOLCHAIN_USES_GLIBC)) # elfutils
> select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
> select BR2_PACKAGE_LIBDRM_RADEON
> select BR2_PACKAGE_LLVM_AMDGPU if BR2_PACKAGE_MESA3D_LLVM
> select BR2_PACKAGE_ELFUTILS if BR2_PACKAGE_MESA3D_LLVM
> select BR2_PACKAGE_MESA3D_NEEDS_XA
> help
> Driver for ATI/AMD Radeon R600/R700/HD5000/HD6000 GPUs.
>
> comment "R600 driver needs a uClibc or glibc toolchain w/ llvm support"
> depends on BR2_PACKAGE_MESA3D_LLVM
>
> depends on !(BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_USES_GLIBC)
This seems like the good solution to me.
Note that there is some work going on to make elfutils compatible with
musl: https://sourceware.org/bugzilla/show_bug.cgi?id=21002, but it
doesn't seem to be ready yet, so in the mean time what you propose
looks good to me.
I think the Config.in comment should be:
comment "R600 driver needs a uClibc or glibc toolchain when llvm is enabled"
I think the "w/ llvm support" that you proposed can be confusing: to me
it means "you need a toolchain with LLVM support". But it's not what's
happening. What's happening is: "if you have enabled LLVM support, then
your toolchain must be using glibc or uClibc".
In addition to the Config.in comment itself, a regular comment would be
good to explain what's going on, because it's really weird.
Best regards,
Thomas
--
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
https://bootlin.com
More information about the buildroot
mailing list