Message ID | 20190506095451.26522-8-romain.naour@smile.fr |
---|---|
State | Superseded |
Headers | show |
Series | [v3,1/9] package/python3-mako: new package | expand |
Hi, Le 06/05/2019 à 11:54, Romain Naour a écrit : > From: Bernd Kuhls <bernd.kuhls@t-online.de> > > Update patches for meson: > 0002-configure.ac-invert-order-for-wayland-scanner-check.patch > 0003-set-LIBCLC_INCLUDEDIR.patch > > Disable unused options that are set to "auto" mode. > (valgrind, gallium-omx, power8). > > Remove --disable-static option since there is no meson equivalent. > Remove --disable-mangling since it's not yet supported by meson. > > Use r100 instead of radeon as DRI name for BR2_PACKAGE_MESA3D_DRI_DRIVER_RADEON. > > Add a new depedency on host-python3-mako since we can't use > generated headers from the release archive [2]. > > [1] http://patchwork.ozlabs.org/patch/1084248/ > [2] http://lists.busybox.net/pipermail/buildroot/2019-April/249057.html It would be great to have reviewers on this series, otherwise we are stuck in mesa 19.0.x. Also we need meson to have the latest feature added after autotools freeze, see [1]. [1] https://bugs.busybox.net/show_bug.cgi?id=11906 Best regards, Romain > > Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de> > Signed-off-by: Romain Naour <romain.naour@smile.fr> > Cc: Peter Seiderer <ps.report@gmx.net> > --- > v2: rebase on mesa 19.0.3 > Fix typo -Degl=true=false > Fixes: build without x11 by removing -Dglx=dri (Peter Seiderer) > Doesn't use -Dglx=auto, instead use the new BR2_PACKAGE_MESA3D_OPENGL_GLX > Remove workaround patch for python-mako, add host-python3-mako dependency > --- > ...vert-order-for-wayland-scanner-check.patch | 51 -------- > ...d-scanner-provided-by-wayland-scanne.patch | 52 ++++++++ > ...t-proper-value-for-LIBCLC_INCLUDEDIR.patch | 39 ++++++ > .../mesa3d/0003-set-LIBCLC_INCLUDEDIR.patch | 37 ------ > package/mesa3d/Config.in | 3 +- > package/mesa3d/mesa3d.mk | 118 +++++++++--------- > 6 files changed, 149 insertions(+), 151 deletions(-) > delete mode 100644 package/mesa3d/0002-configure.ac-invert-order-for-wayland-scanner-check.patch > create mode 100644 package/mesa3d/0002-meson-use-wayland-scanner-provided-by-wayland-scanne.patch > create mode 100644 package/mesa3d/0003-meson-Set-proper-value-for-LIBCLC_INCLUDEDIR.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. > - > -[Vincent: tweak patch for 17.1.1 version] > - > -Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> > -Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com> > -[Romain: rebase on 18.1] > -Signed-off-by: Romain Naour <romain.naour@gmail.com> > -[Bernd rebase on 18.3] > -Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de> > ---- > - configure.ac | 8 ++++---- > - 1 file changed, 4 insertions(+), 4 deletions(-) > - > -diff --git a/configure.ac b/configure.ac > -index f1fbdcc6c7..dcf87e7dd6 100644 > ---- a/configure.ac > -+++ b/configure.ac > -@@ -1841,17 +1841,16 @@ > - fi > - WAYLAND_PROTOCOLS_DATADIR=`$PKG_CONFIG --variable=pkgdatadir wayland-protocols` > - > -- PKG_CHECK_MODULES([WAYLAND_SCANNER], [wayland-scanner], > -+ AC_PATH_PROG([WAYLAND_SCANNER], [wayland-scanner], [:]) > -+ if test "x$WAYLAND_SCANNER" = x; then > -+ PKG_CHECK_MODULES([WAYLAND_SCANNER], [wayland-scanner], > - WAYLAND_SCANNER=`$PKG_CONFIG --variable=wayland_scanner wayland-scanner`, > - WAYLAND_SCANNER='') > -+ fi > - PKG_CHECK_EXISTS([wayland-scanner >= 1.15], > - AC_SUBST(SCANNER_ARG, 'private-code'), > - AC_SUBST(SCANNER_ARG, 'code')) > - > -- if test "x$WAYLAND_SCANNER" = x; then > -- AC_PATH_PROG([WAYLAND_SCANNER], [wayland-scanner], [:]) > -- fi > -- > - if test "x$WAYLAND_SCANNER" = "x:"; then > - AC_MSG_ERROR([wayland-scanner is needed to compile the wayland platform]) > - fi > --- > -2.14.3 > diff --git a/package/mesa3d/0002-meson-use-wayland-scanner-provided-by-wayland-scanne.patch b/package/mesa3d/0002-meson-use-wayland-scanner-provided-by-wayland-scanne.patch > new file mode 100644 > index 0000000000..784b27c4a2 > --- /dev/null > +++ b/package/mesa3d/0002-meson-use-wayland-scanner-provided-by-wayland-scanne.patch > @@ -0,0 +1,52 @@ > +From 0e107f7bac8d84d8fb2bb5b83bfb4474348a82c1 Mon Sep 17 00:00:00 2001 > +From: Romain Naour <romain.naour@smile.fr> > +Date: Wed, 17 Apr 2019 22:47:05 +0200 > +Subject: [PATCH] meson: use wayland-scanner provided by wayland-scanner-path > + > +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. > +First try by using the path provided by wayland-scanner-path, > +and if that fails fall back into pkg-config. > + > +Based on the patch for autotools provided by Gustavo Zacarias. > + > +Signed-off-by: Romain Naour <romain.naour@smile.fr> > +--- > + meson.build | 5 ++++- > + meson_options.txt | 6 ++++++ > + 2 files changed, 10 insertions(+), 1 deletion(-) > + > +diff --git a/meson.build b/meson.build > +index 6c4f1508855..ef0532b2cfb 100644 > +--- a/meson.build > ++++ b/meson.build > +@@ -1319,7 +1319,10 @@ endif > + > + if with_platform_wayland > + dep_wl_scanner = dependency('wayland-scanner', native: true) > +- prog_wl_scanner = find_program(dep_wl_scanner.get_pkgconfig_variable('wayland_scanner')) > ++ prog_wl_scanner = get_option('wayland-scanner-path') > ++ if prog_wl_scanner == '' > ++ prog_wl_scanner = find_program(dep_wl_scanner.get_pkgconfig_variable('wayland_scanner')) > ++ endif > + if dep_wl_scanner.version().version_compare('>= 1.15') > + wl_scanner_arg = 'private-code' > + else > +diff --git a/meson_options.txt b/meson_options.txt > +index ccf70659ff7..59ff8df8337 100644 > +--- a/meson_options.txt > ++++ b/meson_options.txt > +@@ -324,3 +324,9 @@ option( > + value : true, > + description : 'Enable direct rendering in GLX and EGL for DRI', > + ) > ++option( > ++ 'wayland-scanner-path', > ++ type : 'string', > ++ value : '', > ++ description : 'Locations to wayland-scanner binary. Default: use path from pkg-config' > ++) > +-- > +2.20.1 > + > diff --git a/package/mesa3d/0003-meson-Set-proper-value-for-LIBCLC_INCLUDEDIR.patch b/package/mesa3d/0003-meson-Set-proper-value-for-LIBCLC_INCLUDEDIR.patch > new file mode 100644 > index 0000000000..072d79a213 > --- /dev/null > +++ b/package/mesa3d/0003-meson-Set-proper-value-for-LIBCLC_INCLUDEDIR.patch > @@ -0,0 +1,39 @@ > +From 7b46756a99aca7f27a45c3b99460f088570f6f53 Mon Sep 17 00:00:00 2001 > +From: Romain Naour <romain.naour@smile.fr> > +Date: Wed, 17 Apr 2019 23:07:42 +0200 > +Subject: [PATCH] meson: 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. > + > +Based on the patch for autotools provided by Valentin Korenblit. > + > +Signed-off-by: Romain Naour <romain.naour@smile.fr> > +--- > + src/gallium/state_trackers/clover/meson.build | 2 +- > + 1 file changed, 1 insertion(+), 1 deletion(-) > + > +diff --git a/src/gallium/state_trackers/clover/meson.build b/src/gallium/state_trackers/clover/meson.build > +index 62ac5f5278d..ecdeb39669c 100644 > +--- a/src/gallium/state_trackers/clover/meson.build > ++++ b/src/gallium/state_trackers/clover/meson.build > +@@ -49,7 +49,7 @@ libclllvm = static_library( > + include_directories : clover_incs, > + cpp_args : [ > + cpp_vis_args, > +- '-DLIBCLC_INCLUDEDIR="@0@/"'.format(dep_clc.get_pkgconfig_variable('includedir')), > ++ '-DLIBCLC_INCLUDEDIR="/usr/share"', > + '-DLIBCLC_LIBEXECDIR="@0@/"'.format(dep_clc.get_pkgconfig_variable('libexecdir')), > + '-DCLANG_RESOURCE_DIR="@0@"'.format(join_paths( > + dep_llvm.get_configtool_variable('libdir'), 'clang', > +-- > +2.20.1 > + > diff --git a/package/mesa3d/0003-set-LIBCLC_INCLUDEDIR.patch b/package/mesa3d/0003-set-LIBCLC_INCLUDEDIR.patch > deleted file mode 100644 > index 42ae826a36..0000000000 > --- 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. > - > -Signed-off-by: Valentin Korenblit <valentinkorenblit@gmail.com> > ---- > - configure.ac | 2 +- > - 1 file changed, 1 insertion(+), 1 deletion(-) > - > -diff --git a/configure.ac b/configure.ac > -index 864dcae..cc2390b 100644 > ---- a/configure.ac > -+++ b/configure.ac > -@@ -2429,7 +2429,7 @@ if test "x$enable_opencl" = xyes; then > - PKG_CONFIG_PATH environment variable. > - By default libclc.pc is installed to /usr/local/share/pkgconfig/]) > - else > -- LIBCLC_INCLUDEDIR=`$PKG_CONFIG --variable=includedir libclc` > -+ LIBCLC_INCLUDEDIR="/usr/share" > - LIBCLC_LIBEXECDIR=`$PKG_CONFIG --variable=libexecdir libclc` > - AC_SUBST([LIBCLC_INCLUDEDIR]) > - AC_SUBST([LIBCLC_LIBEXECDIR]) > --- > -2.7.4 > - > diff --git a/package/mesa3d/Config.in b/package/mesa3d/Config.in > index ceed097d71..569628d28b 100644 > --- a/package/mesa3d/Config.in > +++ b/package/mesa3d/Config.in > @@ -87,8 +87,7 @@ config BR2_PACKAGE_MESA3D_NEEDS_XA > bool > > # Quote from mesa3d meson.build: "kmsro driver requires one or more > -# renderonly drivers (vc4, etnaviv, freedreno)". But only vc4 support > -# is available by using the (deprecated) autotools build system. > +# renderonly drivers (vc4, etnaviv, freedreno)". > config BR2_PACKAGE_MESA3D_GALLIUM_KMSRO > bool > > diff --git a/package/mesa3d/mesa3d.mk b/package/mesa3d/mesa3d.mk > index 426676a520..81074f96a6 100644 > --- a/package/mesa3d/mesa3d.mk > +++ b/package/mesa3d/mesa3d.mk > @@ -21,31 +21,24 @@ MESA3D_PROVIDES = > MESA3D_DEPENDENCIES = \ > host-bison \ > host-flex \ > + host-python3-mako \ > 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 \ > + -Dpower8=false \ > + -Dvalgrind=false > > 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 +46,9 @@ endif > ifeq ($(BR2_PACKAGE_MESA3D_OPENCL),y) > MESA3D_PROVIDES += libopencl > MESA3D_DEPENDENCIES += clang libclc > -MESA3D_CONF_OPTS += --enable-opencl \ > - --disable-opencl-icd \ > - --with-clang-libdir=$(STAGING_DIR)/usr/lib > +MESA3D_CONF_OPTS += -Dgallium-opencl=standalone > else > -MESA3D_CONF_OPTS += --disable-opencl > +MESA3D_CONF_OPTS += -Dgallium-opencl=disabled > endif > > ifeq ($(BR2_PACKAGE_MESA3D_NEEDS_ELFUTILS),y) > @@ -82,16 +73,21 @@ MESA3D_DEPENDENCIES += \ > xlib_libXxf86vm \ > xorgproto \ > libxcb > -MESA3D_CONF_OPTS += --enable-glx --disable-mangling > +# Disable-mangling not yet supported by meson build system. > +# glx: > +# dri : dri based GLX requires at least one DRI driver || dri based GLX requires shared-glapi > +# xlib : xlib conflicts with any dri driver > +# gallium-xlib : Gallium-xlib based GLX requires at least one gallium driver || Gallium-xlib based GLX requires softpipe or llvmpipe || gallium-xlib conflicts with any dri driver. > +MESA3D_CONF_OPTS += -Dglx=dri > 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 > @@ -111,63 +107,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 > # 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 \ > - --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_CLASSIC),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 > +# - Building OpenGL ES without OpenGL is not supported, so always keep opengl enabled. > +MESA3D_CONF_OPTS += -Dopengl=true > > # 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) > @@ -194,57 +189,58 @@ endif > ifeq ($(BR2_PACKAGE_WAYLAND),y) > MESA3D_DEPENDENCIES += wayland wayland-protocols > MESA3D_PLATFORMS += wayland > +MESA3D_CONF_OPTS += -Dwayland-scanner-path=$(HOST_DIR)/bin/wayland-scanner > endif > ifeq ($(BR2_PACKAGE_XORG7),y) > 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=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_MESA3D_XVMC),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)) >
On Mon, May 6, 2019 at 3:55 AM Romain Naour <romain.naour@smile.fr> wrote: > > From: Bernd Kuhls <bernd.kuhls@t-online.de> > > Update patches for meson: > 0002-configure.ac-invert-order-for-wayland-scanner-check.patch > 0003-set-LIBCLC_INCLUDEDIR.patch > > Disable unused options that are set to "auto" mode. > (valgrind, gallium-omx, power8). > > Remove --disable-static option since there is no meson equivalent. > Remove --disable-mangling since it's not yet supported by meson. > > Use r100 instead of radeon as DRI name for BR2_PACKAGE_MESA3D_DRI_DRIVER_RADEON. > > Add a new depedency on host-python3-mako since we can't use > generated headers from the release archive [2]. > > [1] http://patchwork.ozlabs.org/patch/1084248/ > [2] http://lists.busybox.net/pipermail/buildroot/2019-April/249057.html > > Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de> > Signed-off-by: Romain Naour <romain.naour@smile.fr> > Cc: Peter Seiderer <ps.report@gmx.net> > --- > v2: rebase on mesa 19.0.3 > Fix typo -Degl=true=false > Fixes: build without x11 by removing -Dglx=dri (Peter Seiderer) > Doesn't use -Dglx=auto, instead use the new BR2_PACKAGE_MESA3D_OPENGL_GLX > Remove workaround patch for python-mako, add host-python3-mako dependency > --- > ...vert-order-for-wayland-scanner-check.patch | 51 -------- > ...d-scanner-provided-by-wayland-scanne.patch | 52 ++++++++ > ...t-proper-value-for-LIBCLC_INCLUDEDIR.patch | 39 ++++++ > .../mesa3d/0003-set-LIBCLC_INCLUDEDIR.patch | 37 ------ > package/mesa3d/Config.in | 3 +- > package/mesa3d/mesa3d.mk | 118 +++++++++--------- > 6 files changed, 149 insertions(+), 151 deletions(-) > delete mode 100644 package/mesa3d/0002-configure.ac-invert-order-for-wayland-scanner-check.patch > create mode 100644 package/mesa3d/0002-meson-use-wayland-scanner-provided-by-wayland-scanne.patch > create mode 100644 package/mesa3d/0003-meson-Set-proper-value-for-LIBCLC_INCLUDEDIR.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. > - > -[Vincent: tweak patch for 17.1.1 version] > - > -Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> > -Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com> > -[Romain: rebase on 18.1] > -Signed-off-by: Romain Naour <romain.naour@gmail.com> > -[Bernd rebase on 18.3] > -Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de> > ---- > - configure.ac | 8 ++++---- > - 1 file changed, 4 insertions(+), 4 deletions(-) > - > -diff --git a/configure.ac b/configure.ac > -index f1fbdcc6c7..dcf87e7dd6 100644 > ---- a/configure.ac > -+++ b/configure.ac > -@@ -1841,17 +1841,16 @@ > - fi > - WAYLAND_PROTOCOLS_DATADIR=`$PKG_CONFIG --variable=pkgdatadir wayland-protocols` > - > -- PKG_CHECK_MODULES([WAYLAND_SCANNER], [wayland-scanner], > -+ AC_PATH_PROG([WAYLAND_SCANNER], [wayland-scanner], [:]) > -+ if test "x$WAYLAND_SCANNER" = x; then > -+ PKG_CHECK_MODULES([WAYLAND_SCANNER], [wayland-scanner], > - WAYLAND_SCANNER=`$PKG_CONFIG --variable=wayland_scanner wayland-scanner`, > - WAYLAND_SCANNER='') > -+ fi > - PKG_CHECK_EXISTS([wayland-scanner >= 1.15], > - AC_SUBST(SCANNER_ARG, 'private-code'), > - AC_SUBST(SCANNER_ARG, 'code')) > - > -- if test "x$WAYLAND_SCANNER" = x; then > -- AC_PATH_PROG([WAYLAND_SCANNER], [wayland-scanner], [:]) > -- fi > -- > - if test "x$WAYLAND_SCANNER" = "x:"; then > - AC_MSG_ERROR([wayland-scanner is needed to compile the wayland platform]) > - fi > --- > -2.14.3 > diff --git a/package/mesa3d/0002-meson-use-wayland-scanner-provided-by-wayland-scanne.patch b/package/mesa3d/0002-meson-use-wayland-scanner-provided-by-wayland-scanne.patch > new file mode 100644 > index 0000000000..784b27c4a2 > --- /dev/null > +++ b/package/mesa3d/0002-meson-use-wayland-scanner-provided-by-wayland-scanne.patch > @@ -0,0 +1,52 @@ > +From 0e107f7bac8d84d8fb2bb5b83bfb4474348a82c1 Mon Sep 17 00:00:00 2001 > +From: Romain Naour <romain.naour@smile.fr> > +Date: Wed, 17 Apr 2019 22:47:05 +0200 > +Subject: [PATCH] meson: use wayland-scanner provided by wayland-scanner-path > + > +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. > +First try by using the path provided by wayland-scanner-path, > +and if that fails fall back into pkg-config. Try setting this meson config option instead: -Dbuild.pkg_config_path=$(HOST_DIR)/lib/pkgconfig > + > +Based on the patch for autotools provided by Gustavo Zacarias. > + > +Signed-off-by: Romain Naour <romain.naour@smile.fr> > +--- > + meson.build | 5 ++++- > + meson_options.txt | 6 ++++++ > + 2 files changed, 10 insertions(+), 1 deletion(-) > + > +diff --git a/meson.build b/meson.build > +index 6c4f1508855..ef0532b2cfb 100644 > +--- a/meson.build > ++++ b/meson.build > +@@ -1319,7 +1319,10 @@ endif > + > + if with_platform_wayland > + dep_wl_scanner = dependency('wayland-scanner', native: true) > +- prog_wl_scanner = find_program(dep_wl_scanner.get_pkgconfig_variable('wayland_scanner')) > ++ prog_wl_scanner = get_option('wayland-scanner-path') > ++ if prog_wl_scanner == '' > ++ prog_wl_scanner = find_program(dep_wl_scanner.get_pkgconfig_variable('wayland_scanner')) > ++ endif > + if dep_wl_scanner.version().version_compare('>= 1.15') > + wl_scanner_arg = 'private-code' > + else > +diff --git a/meson_options.txt b/meson_options.txt > +index ccf70659ff7..59ff8df8337 100644 > +--- a/meson_options.txt > ++++ b/meson_options.txt > +@@ -324,3 +324,9 @@ option( > + value : true, > + description : 'Enable direct rendering in GLX and EGL for DRI', > + ) > ++option( > ++ 'wayland-scanner-path', > ++ type : 'string', > ++ value : '', > ++ description : 'Locations to wayland-scanner binary. Default: use path from pkg-config' > ++) > +-- > +2.20.1 > + > diff --git a/package/mesa3d/0003-meson-Set-proper-value-for-LIBCLC_INCLUDEDIR.patch b/package/mesa3d/0003-meson-Set-proper-value-for-LIBCLC_INCLUDEDIR.patch > new file mode 100644 > index 0000000000..072d79a213 > --- /dev/null > +++ b/package/mesa3d/0003-meson-Set-proper-value-for-LIBCLC_INCLUDEDIR.patch > @@ -0,0 +1,39 @@ > +From 7b46756a99aca7f27a45c3b99460f088570f6f53 Mon Sep 17 00:00:00 2001 > +From: Romain Naour <romain.naour@smile.fr> > +Date: Wed, 17 Apr 2019 23:07:42 +0200 > +Subject: [PATCH] meson: 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. > + > +Based on the patch for autotools provided by Valentin Korenblit. > + > +Signed-off-by: Romain Naour <romain.naour@smile.fr> > +--- > + src/gallium/state_trackers/clover/meson.build | 2 +- > + 1 file changed, 1 insertion(+), 1 deletion(-) > + > +diff --git a/src/gallium/state_trackers/clover/meson.build b/src/gallium/state_trackers/clover/meson.build > +index 62ac5f5278d..ecdeb39669c 100644 > +--- a/src/gallium/state_trackers/clover/meson.build > ++++ b/src/gallium/state_trackers/clover/meson.build > +@@ -49,7 +49,7 @@ libclllvm = static_library( > + include_directories : clover_incs, > + cpp_args : [ > + cpp_vis_args, > +- '-DLIBCLC_INCLUDEDIR="@0@/"'.format(dep_clc.get_pkgconfig_variable('includedir')), > ++ '-DLIBCLC_INCLUDEDIR="/usr/share"', > + '-DLIBCLC_LIBEXECDIR="@0@/"'.format(dep_clc.get_pkgconfig_variable('libexecdir')), > + '-DCLANG_RESOURCE_DIR="@0@"'.format(join_paths( > + dep_llvm.get_configtool_variable('libdir'), 'clang', > +-- > +2.20.1 > + > diff --git a/package/mesa3d/0003-set-LIBCLC_INCLUDEDIR.patch b/package/mesa3d/0003-set-LIBCLC_INCLUDEDIR.patch > deleted file mode 100644 > index 42ae826a36..0000000000 > --- 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. > - > -Signed-off-by: Valentin Korenblit <valentinkorenblit@gmail.com> > ---- > - configure.ac | 2 +- > - 1 file changed, 1 insertion(+), 1 deletion(-) > - > -diff --git a/configure.ac b/configure.ac > -index 864dcae..cc2390b 100644 > ---- a/configure.ac > -+++ b/configure.ac > -@@ -2429,7 +2429,7 @@ if test "x$enable_opencl" = xyes; then > - PKG_CONFIG_PATH environment variable. > - By default libclc.pc is installed to /usr/local/share/pkgconfig/]) > - else > -- LIBCLC_INCLUDEDIR=`$PKG_CONFIG --variable=includedir libclc` > -+ LIBCLC_INCLUDEDIR="/usr/share" > - LIBCLC_LIBEXECDIR=`$PKG_CONFIG --variable=libexecdir libclc` > - AC_SUBST([LIBCLC_INCLUDEDIR]) > - AC_SUBST([LIBCLC_LIBEXECDIR]) > --- > -2.7.4 > - > diff --git a/package/mesa3d/Config.in b/package/mesa3d/Config.in > index ceed097d71..569628d28b 100644 > --- a/package/mesa3d/Config.in > +++ b/package/mesa3d/Config.in > @@ -87,8 +87,7 @@ config BR2_PACKAGE_MESA3D_NEEDS_XA > bool > > # Quote from mesa3d meson.build: "kmsro driver requires one or more > -# renderonly drivers (vc4, etnaviv, freedreno)". But only vc4 support > -# is available by using the (deprecated) autotools build system. > +# renderonly drivers (vc4, etnaviv, freedreno)". > config BR2_PACKAGE_MESA3D_GALLIUM_KMSRO > bool > > diff --git a/package/mesa3d/mesa3d.mk b/package/mesa3d/mesa3d.mk > index 426676a520..81074f96a6 100644 > --- a/package/mesa3d/mesa3d.mk > +++ b/package/mesa3d/mesa3d.mk > @@ -21,31 +21,24 @@ MESA3D_PROVIDES = > MESA3D_DEPENDENCIES = \ > host-bison \ > host-flex \ > + host-python3-mako \ > 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 \ > + -Dpower8=false \ > + -Dvalgrind=false > > 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 +46,9 @@ endif > ifeq ($(BR2_PACKAGE_MESA3D_OPENCL),y) > MESA3D_PROVIDES += libopencl > MESA3D_DEPENDENCIES += clang libclc > -MESA3D_CONF_OPTS += --enable-opencl \ > - --disable-opencl-icd \ > - --with-clang-libdir=$(STAGING_DIR)/usr/lib > +MESA3D_CONF_OPTS += -Dgallium-opencl=standalone > else > -MESA3D_CONF_OPTS += --disable-opencl > +MESA3D_CONF_OPTS += -Dgallium-opencl=disabled > endif > > ifeq ($(BR2_PACKAGE_MESA3D_NEEDS_ELFUTILS),y) > @@ -82,16 +73,21 @@ MESA3D_DEPENDENCIES += \ > xlib_libXxf86vm \ > xorgproto \ > libxcb > -MESA3D_CONF_OPTS += --enable-glx --disable-mangling > +# Disable-mangling not yet supported by meson build system. > +# glx: > +# dri : dri based GLX requires at least one DRI driver || dri based GLX requires shared-glapi > +# xlib : xlib conflicts with any dri driver > +# gallium-xlib : Gallium-xlib based GLX requires at least one gallium driver || Gallium-xlib based GLX requires softpipe or llvmpipe || gallium-xlib conflicts with any dri driver. > +MESA3D_CONF_OPTS += -Dglx=dri > 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 > @@ -111,63 +107,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 > # 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 \ > - --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_CLASSIC),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 > +# - Building OpenGL ES without OpenGL is not supported, so always keep opengl enabled. > +MESA3D_CONF_OPTS += -Dopengl=true > > # 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) > @@ -194,57 +189,58 @@ endif > ifeq ($(BR2_PACKAGE_WAYLAND),y) > MESA3D_DEPENDENCIES += wayland wayland-protocols > MESA3D_PLATFORMS += wayland > +MESA3D_CONF_OPTS += -Dwayland-scanner-path=$(HOST_DIR)/bin/wayland-scanner > endif > ifeq ($(BR2_PACKAGE_XORG7),y) > 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=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_MESA3D_XVMC),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)) > -- > 2.20.1 > > _______________________________________________ > buildroot mailing list > buildroot@busybox.net > http://lists.busybox.net/mailman/listinfo/buildroot
Am Tue, 25 Jun 2019 09:50:14 +0200 schrieb Romain Naour: > It would be great to have reviewers on this series, otherwise we are > stuck in mesa 19.0.x. Also we need meson to have the latest feature > added after autotools freeze, see [1]. Hi Romain, these mesa3d options $ grep MESA3D .config | grep -v \# BR2_PACKAGE_MESA3D=y BR2_PACKAGE_MESA3D_DRI_DRIVER=y BR2_PACKAGE_MESA3D_DRIVER=y BR2_PACKAGE_MESA3D_DRI_DRIVER_I965=y BR2_PACKAGE_MESA3D_OPENGL_EGL=y result in a configure error: Run-time dependency xcb found: NO (tried pkgconfig) meson.build:1375:4: ERROR: Dependency "xcb" not found, tried pkgconfig Regards, Bernd
Am Tue, 25 Jun 2019 22:14:05 +0200 schrieb Bernd Kuhls: > Run-time dependency xcb found: NO (tried pkgconfig) > > meson.build:1375:4: ERROR: Dependency "xcb" not found, tried pkgconfig > > Regards, Bernd Hi, fixed by v4. Regards, Bernd
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. - -[Vincent: tweak patch for 17.1.1 version] - -Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> -Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com> -[Romain: rebase on 18.1] -Signed-off-by: Romain Naour <romain.naour@gmail.com> -[Bernd rebase on 18.3] -Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de> ---- - configure.ac | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/configure.ac b/configure.ac -index f1fbdcc6c7..dcf87e7dd6 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1841,17 +1841,16 @@ - fi - WAYLAND_PROTOCOLS_DATADIR=`$PKG_CONFIG --variable=pkgdatadir wayland-protocols` - -- PKG_CHECK_MODULES([WAYLAND_SCANNER], [wayland-scanner], -+ AC_PATH_PROG([WAYLAND_SCANNER], [wayland-scanner], [:]) -+ if test "x$WAYLAND_SCANNER" = x; then -+ PKG_CHECK_MODULES([WAYLAND_SCANNER], [wayland-scanner], - WAYLAND_SCANNER=`$PKG_CONFIG --variable=wayland_scanner wayland-scanner`, - WAYLAND_SCANNER='') -+ fi - PKG_CHECK_EXISTS([wayland-scanner >= 1.15], - AC_SUBST(SCANNER_ARG, 'private-code'), - AC_SUBST(SCANNER_ARG, 'code')) - -- if test "x$WAYLAND_SCANNER" = x; then -- AC_PATH_PROG([WAYLAND_SCANNER], [wayland-scanner], [:]) -- fi -- - if test "x$WAYLAND_SCANNER" = "x:"; then - AC_MSG_ERROR([wayland-scanner is needed to compile the wayland platform]) - fi --- -2.14.3 diff --git a/package/mesa3d/0002-meson-use-wayland-scanner-provided-by-wayland-scanne.patch b/package/mesa3d/0002-meson-use-wayland-scanner-provided-by-wayland-scanne.patch new file mode 100644 index 0000000000..784b27c4a2 --- /dev/null +++ b/package/mesa3d/0002-meson-use-wayland-scanner-provided-by-wayland-scanne.patch @@ -0,0 +1,52 @@ +From 0e107f7bac8d84d8fb2bb5b83bfb4474348a82c1 Mon Sep 17 00:00:00 2001 +From: Romain Naour <romain.naour@smile.fr> +Date: Wed, 17 Apr 2019 22:47:05 +0200 +Subject: [PATCH] meson: use wayland-scanner provided by wayland-scanner-path + +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. +First try by using the path provided by wayland-scanner-path, +and if that fails fall back into pkg-config. + +Based on the patch for autotools provided by Gustavo Zacarias. + +Signed-off-by: Romain Naour <romain.naour@smile.fr> +--- + meson.build | 5 ++++- + meson_options.txt | 6 ++++++ + 2 files changed, 10 insertions(+), 1 deletion(-) + +diff --git a/meson.build b/meson.build +index 6c4f1508855..ef0532b2cfb 100644 +--- a/meson.build ++++ b/meson.build +@@ -1319,7 +1319,10 @@ endif + + if with_platform_wayland + dep_wl_scanner = dependency('wayland-scanner', native: true) +- prog_wl_scanner = find_program(dep_wl_scanner.get_pkgconfig_variable('wayland_scanner')) ++ prog_wl_scanner = get_option('wayland-scanner-path') ++ if prog_wl_scanner == '' ++ prog_wl_scanner = find_program(dep_wl_scanner.get_pkgconfig_variable('wayland_scanner')) ++ endif + if dep_wl_scanner.version().version_compare('>= 1.15') + wl_scanner_arg = 'private-code' + else +diff --git a/meson_options.txt b/meson_options.txt +index ccf70659ff7..59ff8df8337 100644 +--- a/meson_options.txt ++++ b/meson_options.txt +@@ -324,3 +324,9 @@ option( + value : true, + description : 'Enable direct rendering in GLX and EGL for DRI', + ) ++option( ++ 'wayland-scanner-path', ++ type : 'string', ++ value : '', ++ description : 'Locations to wayland-scanner binary. Default: use path from pkg-config' ++) +-- +2.20.1 + diff --git a/package/mesa3d/0003-meson-Set-proper-value-for-LIBCLC_INCLUDEDIR.patch b/package/mesa3d/0003-meson-Set-proper-value-for-LIBCLC_INCLUDEDIR.patch new file mode 100644 index 0000000000..072d79a213 --- /dev/null +++ b/package/mesa3d/0003-meson-Set-proper-value-for-LIBCLC_INCLUDEDIR.patch @@ -0,0 +1,39 @@ +From 7b46756a99aca7f27a45c3b99460f088570f6f53 Mon Sep 17 00:00:00 2001 +From: Romain Naour <romain.naour@smile.fr> +Date: Wed, 17 Apr 2019 23:07:42 +0200 +Subject: [PATCH] meson: 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. + +Based on the patch for autotools provided by Valentin Korenblit. + +Signed-off-by: Romain Naour <romain.naour@smile.fr> +--- + src/gallium/state_trackers/clover/meson.build | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/gallium/state_trackers/clover/meson.build b/src/gallium/state_trackers/clover/meson.build +index 62ac5f5278d..ecdeb39669c 100644 +--- a/src/gallium/state_trackers/clover/meson.build ++++ b/src/gallium/state_trackers/clover/meson.build +@@ -49,7 +49,7 @@ libclllvm = static_library( + include_directories : clover_incs, + cpp_args : [ + cpp_vis_args, +- '-DLIBCLC_INCLUDEDIR="@0@/"'.format(dep_clc.get_pkgconfig_variable('includedir')), ++ '-DLIBCLC_INCLUDEDIR="/usr/share"', + '-DLIBCLC_LIBEXECDIR="@0@/"'.format(dep_clc.get_pkgconfig_variable('libexecdir')), + '-DCLANG_RESOURCE_DIR="@0@"'.format(join_paths( + dep_llvm.get_configtool_variable('libdir'), 'clang', +-- +2.20.1 + diff --git a/package/mesa3d/0003-set-LIBCLC_INCLUDEDIR.patch b/package/mesa3d/0003-set-LIBCLC_INCLUDEDIR.patch deleted file mode 100644 index 42ae826a36..0000000000 --- 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. - -Signed-off-by: Valentin Korenblit <valentinkorenblit@gmail.com> ---- - configure.ac | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/configure.ac b/configure.ac -index 864dcae..cc2390b 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -2429,7 +2429,7 @@ if test "x$enable_opencl" = xyes; then - PKG_CONFIG_PATH environment variable. - By default libclc.pc is installed to /usr/local/share/pkgconfig/]) - else -- LIBCLC_INCLUDEDIR=`$PKG_CONFIG --variable=includedir libclc` -+ LIBCLC_INCLUDEDIR="/usr/share" - LIBCLC_LIBEXECDIR=`$PKG_CONFIG --variable=libexecdir libclc` - AC_SUBST([LIBCLC_INCLUDEDIR]) - AC_SUBST([LIBCLC_LIBEXECDIR]) --- -2.7.4 - diff --git a/package/mesa3d/Config.in b/package/mesa3d/Config.in index ceed097d71..569628d28b 100644 --- a/package/mesa3d/Config.in +++ b/package/mesa3d/Config.in @@ -87,8 +87,7 @@ config BR2_PACKAGE_MESA3D_NEEDS_XA bool # Quote from mesa3d meson.build: "kmsro driver requires one or more -# renderonly drivers (vc4, etnaviv, freedreno)". But only vc4 support -# is available by using the (deprecated) autotools build system. +# renderonly drivers (vc4, etnaviv, freedreno)". config BR2_PACKAGE_MESA3D_GALLIUM_KMSRO bool diff --git a/package/mesa3d/mesa3d.mk b/package/mesa3d/mesa3d.mk index 426676a520..81074f96a6 100644 --- a/package/mesa3d/mesa3d.mk +++ b/package/mesa3d/mesa3d.mk @@ -21,31 +21,24 @@ MESA3D_PROVIDES = MESA3D_DEPENDENCIES = \ host-bison \ host-flex \ + host-python3-mako \ 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 \ + -Dpower8=false \ + -Dvalgrind=false 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 +46,9 @@ endif ifeq ($(BR2_PACKAGE_MESA3D_OPENCL),y) MESA3D_PROVIDES += libopencl MESA3D_DEPENDENCIES += clang libclc -MESA3D_CONF_OPTS += --enable-opencl \ - --disable-opencl-icd \ - --with-clang-libdir=$(STAGING_DIR)/usr/lib +MESA3D_CONF_OPTS += -Dgallium-opencl=standalone else -MESA3D_CONF_OPTS += --disable-opencl +MESA3D_CONF_OPTS += -Dgallium-opencl=disabled endif ifeq ($(BR2_PACKAGE_MESA3D_NEEDS_ELFUTILS),y) @@ -82,16 +73,21 @@ MESA3D_DEPENDENCIES += \ xlib_libXxf86vm \ xorgproto \ libxcb -MESA3D_CONF_OPTS += --enable-glx --disable-mangling +# Disable-mangling not yet supported by meson build system. +# glx: +# dri : dri based GLX requires at least one DRI driver || dri based GLX requires shared-glapi +# xlib : xlib conflicts with any dri driver +# gallium-xlib : Gallium-xlib based GLX requires at least one gallium driver || Gallium-xlib based GLX requires softpipe or llvmpipe || gallium-xlib conflicts with any dri driver. +MESA3D_CONF_OPTS += -Dglx=dri 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 @@ -111,63 +107,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 # 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 \ - --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_CLASSIC),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 +# - Building OpenGL ES without OpenGL is not supported, so always keep opengl enabled. +MESA3D_CONF_OPTS += -Dopengl=true # 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) @@ -194,57 +189,58 @@ endif ifeq ($(BR2_PACKAGE_WAYLAND),y) MESA3D_DEPENDENCIES += wayland wayland-protocols MESA3D_PLATFORMS += wayland +MESA3D_CONF_OPTS += -Dwayland-scanner-path=$(HOST_DIR)/bin/wayland-scanner endif ifeq ($(BR2_PACKAGE_XORG7),y) 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=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_MESA3D_XVMC),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))