From: Romain Naour <romain.naour@gmail.com>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH RFC 1/1] package/mesa3d: switch build system to meson
Date: Sat, 13 Apr 2019 15:05:40 +0200 [thread overview]
Message-ID: <a72ddc8e-e248-df98-7dcd-7679482e5fe1@gmail.com> (raw)
In-Reply-To: <d9737376-4fb0-5bd8-0ccb-0757e6c19d29@mind.be>
Hi Arnout, Bernd, All,
Le 13/04/2019 ? 14:50, Arnout Vandecappelle a ?crit?:
>
>
> On 11/04/2019 20:31, Bernd Kuhls wrote:
>> Remove all patches related to autotools.
>
> Good that you do that, however...
I asked Bernd if he was working on a patch switching to meson build system [1].
He sent to the mailing list this patch which is a preliminary version.
I guess the commit log was not ready ;-)
I'm looking at it and I found already some issues.
[1] http://lists.busybox.net/pipermail/buildroot/2019-April/247587.html
Best regards,
Romain
>
>>
>> Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
>> ---
>> This patch is only slightly tested, expect breakages ;)
>>
>> ...vert-order-for-wayland-scanner-check.patch | 51 ---------
>> .../mesa3d/0003-set-LIBCLC_INCLUDEDIR.patch | 37 ------
>> package/mesa3d/Config.in | 3 -
>> package/mesa3d/mesa3d.mk | 108 ++++++++----------
>> 4 files changed, 48 insertions(+), 151 deletions(-)
>> delete mode 100644 package/mesa3d/0002-configure.ac-invert-order-for-wayland-scanner-check.patch
>> delete mode 100644 package/mesa3d/0003-set-LIBCLC_INCLUDEDIR.patch
>>
>> diff --git a/package/mesa3d/0002-configure.ac-invert-order-for-wayland-scanner-check.patch b/package/mesa3d/0002-configure.ac-invert-order-for-wayland-scanner-check.patch
>> deleted file mode 100644
>> index 5135528795..0000000000
>> --- a/package/mesa3d/0002-configure.ac-invert-order-for-wayland-scanner-check.patch
>> +++ /dev/null
>> @@ -1,51 +0,0 @@
>> -From ef96bac7cbbb11b98606864ead0f731dd5b71d5a Mon Sep 17 00:00:00 2001
>> -From: Gustavo Zacarias <gustavo@zacarias.com.ar>
>> -Date: Thu, 17 Nov 2016 15:36:54 -0300
>> -Subject: [PATCH] configure.ac: invert order for wayland-scanner check
>> -
>> -When cross-compiling the .pc file might point to the wrong
>> -wayland-scanner binary (target rather than host) resulting in a
>> -non-executable and wrong scanner.
>> -Try searching the PATH first, and if that fails fall back into
>> -pkg-config.
>
> AFAICS meson *only* looks at pkg-config for wayland-scanner. It does use
>
> dep_wl_scanner = dependency('wayland-scanner', native: true)
>
> so in theory it should look for the host wayland-scanner rather than the target
> one, but I'm not sure if we set up meson in a way that it would be able to make
> that distinction.
>
> [snip]
>> --- a/package/mesa3d/0003-set-LIBCLC_INCLUDEDIR.patch
>> +++ /dev/null
>> @@ -1,37 +0,0 @@
>> -From 94bceeb621e36f3188c6246a763def8695526578 Mon Sep 17 00:00:00 2001
>> -From: Valentin Korenblit <valentinkorenblit@gmail.com>
>> -Date: Sat, 20 Oct 2018 10:56:23 +0200
>> -Subject: [PATCH] Set proper value for LIBCLC_INCLUDEDIR
>> -
>> -LIBCLC_INCLUDEDIR is the location where mesa3d OpenCL implementation
>> -will look for OpenCL "headers" on the target, when building the OpenCL
>> -kernels.
>> -
>> -The value returned by pkg-config for includedir is relevant when
>> -cross-compiling, on the build machine. But in this specific case, we
>> -really need a value that is valid on the target.
>> -
>> -Those headers are installed by the libclc package in /usr/share so
>> -that they are not removed by Buildroot target-finalize logic.
>
> The meson infrastructure uses
>
> '-DLIBCLC_INCLUDEDIR="@0@/"'.format(dep_clc.get_pkgconfig_variable('includedir'))
>
> which I expect will give no joy either.
>
> [snip]
>> diff --git a/package/mesa3d/Config.in b/package/mesa3d/Config.in
>> index 3f44e94229..6070e5e039 100644
>> --- a/package/mesa3d/Config.in
>> +++ b/package/mesa3d/Config.in
>> @@ -129,7 +129,6 @@ config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_R600
>> select BR2_PACKAGE_LLVM_AMDGPU if BR2_PACKAGE_MESA3D_LLVM
>> select BR2_PACKAGE_ELFUTILS if BR2_PACKAGE_MESA3D_LLVM
>> select BR2_PACKAGE_MESA3D_NEEDS_ELFUTILS if BR2_PACKAGE_MESA3D_LLVM
>> - select BR2_PACKAGE_MESA3D_NEEDS_XA
>
> Why does this get removed?
>
>> help
>> Driver for ATI/AMD Radeon R600/R700/HD5000/HD6000 GPUs.
>>
>> @@ -151,7 +150,6 @@ config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_RADEONSI
>> select BR2_PACKAGE_LLVM_AMDGPU
>> select BR2_PACKAGE_ELFUTILS
>> select BR2_PACKAGE_MESA3D_NEEDS_ELFUTILS
>> - select BR2_PACKAGE_MESA3D_NEEDS_XA
>> help
>> Driver for ATI/AMD Radeon HD7000/HD8000/Rx200 GPUs.
>>
>> @@ -184,7 +182,6 @@ config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_VC4
>> select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
>> select BR2_PACKAGE_MESA3D_GALLIUM_KMSRO
>> select BR2_PACKAGE_LIBDRM_VC4
>> - select BR2_PACKAGE_MESA3D_NEEDS_XA
>> select BR2_PACKAGE_MESA3D_OPENGL_EGL
>> help
>> Driver for Broadcom VC4 (rpi2/3) GPUs.
>> diff --git a/package/mesa3d/mesa3d.mk b/package/mesa3d/mesa3d.mk
>> index 02c8a8a57a..67edab89af 100644
>> --- a/package/mesa3d/mesa3d.mk
>> +++ b/package/mesa3d/mesa3d.mk
>> @@ -21,31 +21,22 @@ MESA3D_PROVIDES =
>> MESA3D_DEPENDENCIES = \
>> host-bison \
>> host-flex \
>> + host-python3-mako \
>
> Why does this get added?
>
>> expat \
>> libdrm \
>> zlib
>>
>> -# Disable assembly usage.
>> -MESA3D_CONF_OPTS = --disable-asm
>> -
>> -# autotools are deprecated in favour of meson, for now force autotools
>> -MESA3D_CONF_OPTS += --enable-autotools
>> -
>> -# Disable static, otherwise configure will fail with: "Cannot enable both static
>> -# and shared."
>> -ifeq ($(BR2_SHARED_STATIC_LIBS),y)
>> -MESA3D_CONF_OPTS += --disable-static
>> -endif
>> +MESA3D_CONF_OPTS = \
>> + -Dasm=false \
>> + -Dgallium-omx=disabled
>
> Why does this get added?
>
>>
>> ifeq ($(BR2_PACKAGE_MESA3D_LLVM),y)
>> MESA3D_DEPENDENCIES += host-llvm llvm
>> -MESA3D_CONF_OPTS += \
>> - --with-llvm-prefix=$(STAGING_DIR)/usr \
>> - --enable-llvm-shared-libs \
>> - --enable-llvm
>> +MESA3D_CONF_ENV += LLVM_CONFIG=$(STAGING_DIR)/usr/bin/llvm-config
>> +MESA3D_CONF_OPTS += -Dllvm=true
>> else
>> # Avoid automatic search of llvm-config
>> -MESA3D_CONF_OPTS += --disable-llvm
>> +MESA3D_CONF_OPTS += -Dllvm=false
>> endif
>>
>> # Disable opencl-icd: OpenCL lib will be named libOpenCL instead of
>> @@ -53,11 +44,9 @@ endif
>> ifeq ($(BR2_PACKAGE_MESA3D_OPENCL),y)
>> MESA3D_PROVIDES += libopencl
>> MESA3D_DEPENDENCIES += clang libclc
>> -MESA3D_CONF_OPTS += --enable-opencl \
>> - --disable-opencl-icd \
>
> No equivalent of this is needed?
>
>> - --with-clang-libdir=$(STAGING_DIR)/usr/lib
>> +MESA3D_CONF_OPTS += -Dgallium-opencl=standalone
>
> Can you explain what are the options, and why standalone is chosen?
>
>> else
>> -MESA3D_CONF_OPTS += --disable-opencl
>> +MESA3D_CONF_OPTS += -Dgallium-opencl=disabled
>> endif
>>
>> ifeq ($(BR2_PACKAGE_MESA3D_NEEDS_ELFUTILS),y)
>> @@ -82,17 +71,17 @@ MESA3D_DEPENDENCIES += \
>> xlib_libXxf86vm \
>> xorgproto \
>> libxcb
>> -MESA3D_CONF_OPTS += --enable-glx --disable-mangling
>> +MESA3D_CONF_OPTS += -Dglx=auto
>> # quote from mesa3d configure "Building xa requires at least one non swrast gallium driver."
>> ifeq ($(BR2_PACKAGE_MESA3D_NEEDS_XA),y)
>> -MESA3D_CONF_OPTS += --enable-xa
>> +MESA3D_CONF_OPTS += -Dgallium-xa=true
>> else
>> -MESA3D_CONF_OPTS += --disable-xa
>> +MESA3D_CONF_OPTS += -Dgallium-xa=false
>> endif
>> else
>> MESA3D_CONF_OPTS += \
>> - --disable-glx \
>> - --disable-xa
>> + -Dglx=disabled \
>> + -Dgallium-xa=false
>> endif
>>
>> # Drivers
>> @@ -112,63 +101,62 @@ MESA3D_DRI_DRIVERS-$(BR2_PACKAGE_MESA3D_DRI_DRIVER_SWRAST) += swrast
>> MESA3D_DRI_DRIVERS-$(BR2_PACKAGE_MESA3D_DRI_DRIVER_I915) += i915
>> MESA3D_DRI_DRIVERS-$(BR2_PACKAGE_MESA3D_DRI_DRIVER_I965) += i965
>> MESA3D_DRI_DRIVERS-$(BR2_PACKAGE_MESA3D_DRI_DRIVER_NOUVEAU) += nouveau
>> -MESA3D_DRI_DRIVERS-$(BR2_PACKAGE_MESA3D_DRI_DRIVER_RADEON) += radeon
>> +MESA3D_DRI_DRIVERS-$(BR2_PACKAGE_MESA3D_DRI_DRIVER_RADEON) += r100
>
> Please explain this in the commit message.
>
>> # Vulkan Drivers
>> MESA3D_VULKAN_DRIVERS-$(BR2_PACKAGE_MESA3D_VULKAN_DRIVER_INTEL) += intel
>>
>> ifeq ($(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER),)
>> MESA3D_CONF_OPTS += \
>> - --without-gallium-drivers \
>> - --disable-gallium-extra-hud
>> + -Dgallium-drivers= \
>> + -Dgallium-extra-hud=false
>> else
>> MESA3D_CONF_OPTS += \
>> - --enable-shared-glapi \
>> - --with-gallium-drivers=$(subst $(space),$(comma),$(MESA3D_GALLIUM_DRIVERS-y)) \
>> - --enable-gallium-extra-hud
>> + -Dshared-glapi=true \
>> + -Dgallium-drivers=$(subst $(space),$(comma),$(MESA3D_GALLIUM_DRIVERS-y)) \
>> + -Dgallium-extra-hud=true
>> endif
>>
>> ifeq ($(BR2_PACKAGE_MESA3D_DRI_DRIVER),)
>> MESA3D_CONF_OPTS += \
>> - --without-dri-drivers --disable-dri3
>> + -Ddri-drivers= -Ddri3=false
>> else
>> ifeq ($(BR2_PACKAGE_XLIB_LIBXSHMFENCE),y)
>> MESA3D_DEPENDENCIES += xlib_libxshmfence
>> -MESA3D_CONF_OPTS += --enable-dri3
>> +MESA3D_CONF_OPTS += -Ddri3=true
>> else
>> -MESA3D_CONF_OPTS += --disable-dri3
>> +MESA3D_CONF_OPTS += -Ddri3=false
>> endif
>> MESA3D_CONF_OPTS += \
>> - --enable-shared-glapi \
>> - --enable-driglx-direct \
>> - --with-dri-driverdir=/usr/lib/dri \
>
> No need to specify this anymore?
>
>
> Regards,
> Arnout
>
>> - --with-dri-drivers=$(subst $(space),$(comma),$(MESA3D_DRI_DRIVERS-y))
>> + -Dshared-glapi=true \
>> + -Dglx-direct=true \
>> + -Ddri-drivers=$(subst $(space),$(comma),$(MESA3D_DRI_DRIVERS-y))
>> endif
>>
>> ifeq ($(BR2_PACKAGE_MESA3D_VULKAN_DRIVER),)
>> MESA3D_CONF_OPTS += \
>> - --without-vulkan-drivers
>> + -Dvulkan-drivers=
>> else
>> MESA3D_DEPENDENCIES += xlib_libxshmfence
>> MESA3D_CONF_OPTS += \
>> - --enable-dri3 \
>> - --with-vulkan-drivers=$(subst $(space),$(comma),$(MESA3D_VULKAN_DRIVERS-y))
>> + -Ddri3=true \
>> + -Dvulkan-drivers=$(subst $(space),$(comma),$(MESA3D_VULKAN_DRIVERS-y))
>> endif
>>
>> # APIs
>>
>> ifeq ($(BR2_PACKAGE_MESA3D_OSMESA),y)
>> -MESA3D_CONF_OPTS += --enable-osmesa
>> +MESA3D_CONF_OPTS += -Dosmesa=classic
>> else
>> -MESA3D_CONF_OPTS += --disable-osmesa
>> +MESA3D_CONF_OPTS += -Dosmesa=none
>> endif
>>
>> # Always enable OpenGL:
>> # - it is needed for GLES (mesa3d's ./configure is a bit weird)
>> -MESA3D_CONF_OPTS += --enable-opengl --enable-dri
>> +MESA3D_CONF_OPTS += -Dopengl=true -Dglx=dri
>>
>> # libva and mesa3d have a circular dependency
>> # we do not need libva support in mesa3d, therefore disable this option
>> -MESA3D_CONF_OPTS += --disable-va
>> +MESA3D_CONF_OPTS += -Dgallium-va=false
>>
>> # libGL is only provided for a full xorg stack
>> ifeq ($(BR2_PACKAGE_XORG7),y)
>> @@ -201,51 +189,51 @@ MESA3D_PLATFORMS += x11
>> endif
>>
>> MESA3D_CONF_OPTS += \
>> - --with-platforms=$(subst $(space),$(comma),$(MESA3D_PLATFORMS))
>> + -Dplatforms=$(subst $(space),$(comma),$(MESA3D_PLATFORMS))
>>
>> ifeq ($(BR2_PACKAGE_MESA3D_OPENGL_EGL),y)
>> MESA3D_PROVIDES += libegl
>> MESA3D_CONF_OPTS += \
>> - --enable-gbm \
>> - --enable-egl
>> + -Dgbm=true \
>> + -Degl=true
>> else
>> MESA3D_CONF_OPTS += \
>> - --disable-egl
>> + -Degl=true=false
>> endif
>>
>> ifeq ($(BR2_PACKAGE_MESA3D_OPENGL_ES),y)
>> MESA3D_PROVIDES += libgles
>> -MESA3D_CONF_OPTS += --enable-gles1 --enable-gles2
>> +MESA3D_CONF_OPTS += -Dgles1=true -Dgles2=true
>> else
>> -MESA3D_CONF_OPTS += --disable-gles1 --disable-gles2
>> +MESA3D_CONF_OPTS += -Dgles1=false -Dgles2=false
>> endif
>>
>> ifeq ($(BR2_PACKAGE_XLIB_LIBXVMC),y)
>> MESA3D_DEPENDENCIES += xlib_libXvMC
>> -MESA3D_CONF_OPTS += --enable-xvmc
>> +MESA3D_CONF_OPTS += -Dgallium-xvmc=true
>> else
>> -MESA3D_CONF_OPTS += --disable-xvmc
>> +MESA3D_CONF_OPTS += -Dgallium-xvmc=false
>> endif
>>
>> ifeq ($(BR2_PACKAGE_LIBUNWIND),y)
>> -MESA3D_CONF_OPTS += --enable-libunwind
>> +MESA3D_CONF_OPTS += -Dlibunwind=true
>> MESA3D_DEPENDENCIES += libunwind
>> else
>> -MESA3D_CONF_OPTS += --disable-libunwind
>> +MESA3D_CONF_OPTS += -Dlibunwind=false
>> endif
>>
>> ifeq ($(BR2_PACKAGE_LIBVDPAU),y)
>> MESA3D_DEPENDENCIES += libvdpau
>> -MESA3D_CONF_OPTS += --enable-vdpau
>> +MESA3D_CONF_OPTS += -Dgallium-vdpau=true
>> else
>> -MESA3D_CONF_OPTS += --disable-vdpau
>> +MESA3D_CONF_OPTS += -Dgallium-vdpau=false
>> endif
>>
>> ifeq ($(BR2_PACKAGE_LM_SENSORS),y)
>> -MESA3D_CONF_OPTS += --enable-lmsensors
>> +MESA3D_CONF_OPTS += -Dlmsensors=true
>> MESA3D_DEPENDENCIES += lm-sensors
>> else
>> -MESA3D_CONF_OPTS += --disable-lmsensors
>> +MESA3D_CONF_OPTS += -Dlmsensors=false
>> endif
>>
>> -$(eval $(autotools-package))
>> +$(eval $(meson-package))
>>
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
>
prev parent reply other threads:[~2019-04-13 13:05 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-04-11 18:31 [Buildroot] [PATCH RFC 1/1] package/mesa3d: switch build system to meson Bernd Kuhls
2019-04-13 12:50 ` Arnout Vandecappelle
2019-04-13 13:05 ` Romain Naour [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=a72ddc8e-e248-df98-7dcd-7679482e5fe1@gmail.com \
--to=romain.naour@gmail.com \
--cc=buildroot@busybox.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox