From a1f14cab622759d7f9b84c723e5f3010ccd6ddbf Mon Sep 17 00:00:00 2001 From: Luis Date: Wed, 20 Sep 2023 17:21:08 +0200 Subject: [PATCH] (testing) mesa: fix build with LLVM 17 --- testing/mesa/.checksums | 2 + testing/mesa/.pkgfiles | 96 +++++++++++++++++++++++++++++ testing/mesa/fix-build-llvm17.patch | 30 +++++++++ testing/mesa/post-install.sh | 8 +++ testing/mesa/pre-install.sh | 8 +++ testing/mesa/spkgbuild | 43 +++++++++++++ 6 files changed, 187 insertions(+) create mode 100644 testing/mesa/.checksums create mode 100644 testing/mesa/.pkgfiles create mode 100644 testing/mesa/fix-build-llvm17.patch create mode 100644 testing/mesa/post-install.sh create mode 100644 testing/mesa/pre-install.sh create mode 100755 testing/mesa/spkgbuild diff --git a/testing/mesa/.checksums b/testing/mesa/.checksums new file mode 100644 index 000000000..2bf9229e1 --- /dev/null +++ b/testing/mesa/.checksums @@ -0,0 +1,2 @@ +e3318926ad93230d2bef48ac0ab0d8f1 fix-build-llvm17.patch +1b95b46eb977b2b34cd9c02e93ca4659 mesa-23.1.7.tar.xz diff --git a/testing/mesa/.pkgfiles b/testing/mesa/.pkgfiles new file mode 100644 index 000000000..f6d6b5d20 --- /dev/null +++ b/testing/mesa/.pkgfiles @@ -0,0 +1,96 @@ +mesa-23.1.7-2 +drwxr-xr-x root/root usr/ +drwxr-xr-x root/root usr/bin/ +-r-xr-xr-x root/root usr/bin/mesa-overlay-control.py +drwxr-xr-x root/root usr/include/ +drwxr-xr-x root/root usr/include/EGL/ +-rw-r--r-- root/root usr/include/EGL/eglext_angle.h +-rw-r--r-- root/root usr/include/EGL/eglmesaext.h +drwxr-xr-x root/root usr/include/GL/ +drwxr-xr-x root/root usr/include/GL/internal/ +-rw-r--r-- root/root usr/include/GL/internal/dri_interface.h +-rw-r--r-- root/root usr/include/GL/osmesa.h +-rw-r--r-- root/root usr/include/gbm.h +-rw-r--r-- root/root usr/include/xa_composite.h +-rw-r--r-- root/root usr/include/xa_context.h +-rw-r--r-- root/root usr/include/xa_tracker.h +drwxr-xr-x root/root usr/lib/ +drwxr-xr-x root/root usr/lib/dri/ +hrwxr-xr-x root/root usr/lib/dri/crocus_dri.so link to usr/lib/dri/radeonsi_dri.so +hrwxr-xr-x root/root usr/lib/dri/i915_dri.so link to usr/lib/dri/radeonsi_dri.so +hrwxr-xr-x root/root usr/lib/dri/iris_dri.so link to usr/lib/dri/radeonsi_dri.so +hrwxr-xr-x root/root usr/lib/dri/kms_swrast_dri.so link to usr/lib/dri/radeonsi_dri.so +hrwxr-xr-x root/root usr/lib/dri/nouveau_dri.so link to usr/lib/dri/radeonsi_dri.so +hrwxr-xr-x root/root usr/lib/dri/nouveau_drv_video.so link to usr/lib/dri/r600_drv_video.so +hrwxr-xr-x root/root usr/lib/dri/r300_dri.so link to usr/lib/dri/radeonsi_dri.so +hrwxr-xr-x root/root usr/lib/dri/r600_dri.so link to usr/lib/dri/radeonsi_dri.so +-rwxr-xr-x root/root usr/lib/dri/r600_drv_video.so +-rwxr-xr-x root/root usr/lib/dri/radeonsi_dri.so +hrwxr-xr-x root/root usr/lib/dri/radeonsi_drv_video.so link to usr/lib/dri/r600_drv_video.so +hrwxr-xr-x root/root usr/lib/dri/swrast_dri.so link to usr/lib/dri/radeonsi_dri.so +hrwxr-xr-x root/root usr/lib/dri/virtio_gpu_dri.so link to usr/lib/dri/radeonsi_dri.so +hrwxr-xr-x root/root usr/lib/dri/virtio_gpu_drv_video.so link to usr/lib/dri/r600_drv_video.so +hrwxr-xr-x root/root usr/lib/dri/vmwgfx_dri.so link to usr/lib/dri/radeonsi_dri.so +hrwxr-xr-x root/root usr/lib/dri/zink_dri.so link to usr/lib/dri/radeonsi_dri.so +lrwxrwxrwx root/root usr/lib/libEGL_mesa.so -> libEGL_mesa.so.0 +lrwxrwxrwx root/root usr/lib/libEGL_mesa.so.0 -> libEGL_mesa.so.0.0.0 +-rwxr-xr-x root/root usr/lib/libEGL_mesa.so.0.0.0 +lrwxrwxrwx root/root usr/lib/libGLX_indirect.so.0 -> libGLX_mesa.so.0 +lrwxrwxrwx root/root usr/lib/libGLX_mesa.so -> libGLX_mesa.so.0 +lrwxrwxrwx root/root usr/lib/libGLX_mesa.so.0 -> libGLX_mesa.so.0.0.0 +-rwxr-xr-x root/root usr/lib/libGLX_mesa.so.0.0.0 +lrwxrwxrwx root/root usr/lib/libOSMesa.so -> libOSMesa.so.8 +lrwxrwxrwx root/root usr/lib/libOSMesa.so.8 -> libOSMesa.so.8.0.0 +-rwxr-xr-x root/root usr/lib/libOSMesa.so.8.0.0 +-rwxr-xr-x root/root usr/lib/libVkLayer_INTEL_nullhw.so +-rwxr-xr-x root/root usr/lib/libVkLayer_MESA_device_select.so +-rwxr-xr-x root/root usr/lib/libVkLayer_MESA_overlay.so +lrwxrwxrwx root/root usr/lib/libgbm.so -> libgbm.so.1 +lrwxrwxrwx root/root usr/lib/libgbm.so.1 -> libgbm.so.1.0.0 +-rwxr-xr-x root/root usr/lib/libgbm.so.1.0.0 +lrwxrwxrwx root/root usr/lib/libglapi.so -> libglapi.so.0 +lrwxrwxrwx root/root usr/lib/libglapi.so.0 -> libglapi.so.0.0.0 +-rwxr-xr-x root/root usr/lib/libglapi.so.0.0.0 +-rwxr-xr-x root/root usr/lib/libvulkan_intel.so +-rwxr-xr-x root/root usr/lib/libvulkan_radeon.so +lrwxrwxrwx root/root usr/lib/libxatracker.so -> libxatracker.so.2 +lrwxrwxrwx root/root usr/lib/libxatracker.so.2 -> libxatracker.so.2.5.0 +-rwxr-xr-x root/root usr/lib/libxatracker.so.2.5.0 +drwxr-xr-x root/root usr/lib/pkgconfig/ +-rw-r--r-- root/root usr/lib/pkgconfig/dri.pc +-rw-r--r-- root/root usr/lib/pkgconfig/gbm.pc +-rw-r--r-- root/root usr/lib/pkgconfig/osmesa.pc +-rw-r--r-- root/root usr/lib/pkgconfig/xatracker.pc +drwxr-xr-x root/root usr/lib/vdpau/ +lrwxrwxrwx root/root usr/lib/vdpau/libvdpau_nouveau.so -> libvdpau_nouveau.so.1.0.0 +lrwxrwxrwx root/root usr/lib/vdpau/libvdpau_nouveau.so.1 -> libvdpau_nouveau.so.1.0.0 +lrwxrwxrwx root/root usr/lib/vdpau/libvdpau_nouveau.so.1.0 -> libvdpau_nouveau.so.1.0.0 +hrwxr-xr-x root/root usr/lib/vdpau/libvdpau_nouveau.so.1.0.0 link to usr/lib/vdpau/libvdpau_r600.so.1.0.0 +lrwxrwxrwx root/root usr/lib/vdpau/libvdpau_r600.so -> libvdpau_r600.so.1.0.0 +lrwxrwxrwx root/root usr/lib/vdpau/libvdpau_r600.so.1 -> libvdpau_r600.so.1.0.0 +lrwxrwxrwx root/root usr/lib/vdpau/libvdpau_r600.so.1.0 -> libvdpau_r600.so.1.0.0 +-rwxr-xr-x root/root usr/lib/vdpau/libvdpau_r600.so.1.0.0 +lrwxrwxrwx root/root usr/lib/vdpau/libvdpau_radeonsi.so -> libvdpau_radeonsi.so.1.0.0 +lrwxrwxrwx root/root usr/lib/vdpau/libvdpau_radeonsi.so.1 -> libvdpau_radeonsi.so.1.0.0 +lrwxrwxrwx root/root usr/lib/vdpau/libvdpau_radeonsi.so.1.0 -> libvdpau_radeonsi.so.1.0.0 +hrwxr-xr-x root/root usr/lib/vdpau/libvdpau_radeonsi.so.1.0.0 link to usr/lib/vdpau/libvdpau_r600.so.1.0.0 +lrwxrwxrwx root/root usr/lib/vdpau/libvdpau_virtio_gpu.so -> libvdpau_virtio_gpu.so.1.0.0 +lrwxrwxrwx root/root usr/lib/vdpau/libvdpau_virtio_gpu.so.1 -> libvdpau_virtio_gpu.so.1.0.0 +lrwxrwxrwx root/root usr/lib/vdpau/libvdpau_virtio_gpu.so.1.0 -> libvdpau_virtio_gpu.so.1.0.0 +hrwxr-xr-x root/root usr/lib/vdpau/libvdpau_virtio_gpu.so.1.0.0 link to usr/lib/vdpau/libvdpau_r600.so.1.0.0 +drwxr-xr-x root/root usr/share/ +drwxr-xr-x root/root usr/share/drirc.d/ +-rw-r--r-- root/root usr/share/drirc.d/00-mesa-defaults.conf +-rw-r--r-- root/root usr/share/drirc.d/00-radv-defaults.conf +drwxr-xr-x root/root usr/share/glvnd/ +drwxr-xr-x root/root usr/share/glvnd/egl_vendor.d/ +-rw-r--r-- root/root usr/share/glvnd/egl_vendor.d/50_mesa.json +drwxr-xr-x root/root usr/share/vulkan/ +drwxr-xr-x root/root usr/share/vulkan/explicit_layer.d/ +-rw-r--r-- root/root usr/share/vulkan/explicit_layer.d/VkLayer_INTEL_nullhw.json +-rw-r--r-- root/root usr/share/vulkan/explicit_layer.d/VkLayer_MESA_overlay.json +drwxr-xr-x root/root usr/share/vulkan/icd.d/ +-rw-r--r-- root/root usr/share/vulkan/icd.d/intel_icd.x86_64.json +-rw-r--r-- root/root usr/share/vulkan/icd.d/radeon_icd.x86_64.json +drwxr-xr-x root/root usr/share/vulkan/implicit_layer.d/ +-rw-r--r-- root/root usr/share/vulkan/implicit_layer.d/VkLayer_MESA_device_select.json diff --git a/testing/mesa/fix-build-llvm17.patch b/testing/mesa/fix-build-llvm17.patch new file mode 100644 index 000000000..b9d831d8c --- /dev/null +++ b/testing/mesa/fix-build-llvm17.patch @@ -0,0 +1,30 @@ +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_init.c b/src/gallium/auxiliary/gallivm/lp_bld_init.c +index 24d0823..97fcfc1 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_init.c ++++ b/src/gallium/auxiliary/gallivm/lp_bld_init.c +@@ -42,19 +42,23 @@ + + #include + #include ++#if LLVM_VERSION_MAJOR < 17 + #include +-#if LLVM_VERSION_MAJOR >= 7 ++#endif ++#if LLVM_VERSION_MAJOR >= 7 && LLVM_VERSION_MAJOR < 17 + #include + #endif + #include + #if GALLIVM_USE_NEW_PASS == 1 + #include + #elif GALLIVM_HAVE_CORO == 1 +-#if LLVM_VERSION_MAJOR <= 8 && (DETECT_ARCH_AARCH64 || DETECT_ARCH_ARM || DETECT_ARCH_S390 || DETECT_ARCH_MIPS64) ++#if LLVM_VERSION_MAJOR <= 8 && LLVM_VERSION_MAJOR < 17 && (DETECT_ARCH_AARCH64 || DETECT_ARCH_ARM || DETECT_ARCH_S390 || DETECT_ARCH_MIPS64) + #include + #endif ++#if LLVM_VERSION_MAJOR < 17 + #include + #endif ++#endif + + unsigned gallivm_perf = 0; + diff --git a/testing/mesa/post-install.sh b/testing/mesa/post-install.sh new file mode 100644 index 000000000..12d652b4c --- /dev/null +++ b/testing/mesa/post-install.sh @@ -0,0 +1,8 @@ +#!/bin/sh + +printf '%s\n' "Optional dependencies: +libva +libvdpau +llvm +xf86-video-intel +xf86-video-amdgpu" diff --git a/testing/mesa/pre-install.sh b/testing/mesa/pre-install.sh new file mode 100644 index 000000000..12d652b4c --- /dev/null +++ b/testing/mesa/pre-install.sh @@ -0,0 +1,8 @@ +#!/bin/sh + +printf '%s\n' "Optional dependencies: +libva +libvdpau +llvm +xf86-video-intel +xf86-video-amdgpu" diff --git a/testing/mesa/spkgbuild b/testing/mesa/spkgbuild new file mode 100755 index 000000000..c070bc8eb --- /dev/null +++ b/testing/mesa/spkgbuild @@ -0,0 +1,43 @@ +# description : OpenGL compatible 3D graphics library +# depends : python3-mako elfutils bison flex libxext libxdamage libxshmfence libxxf86vm libxrandr libdrm libglvnd glslang +# optional : libva libvdpau llvm wayland-protocols + +name=mesa +version=23.1.7 +release=2 +source="https://mesa.freedesktop.org/archive/$name-$version.tar.xz + fix-build-llvm17.patch" + +build() { + # Fix build with LLVM 17 + patch -d $name-$version -Np1 -i $SRC/fix-build-llvm17.patch + + scratch isinstalled vulkan-icd-loader && OPT_MESA_GALLIUM='zink,' + scratch isinstalled libvdpau && OPT_MESA_VDPAU='-D gallium-vdpau=enabled' || OPT_MESA_VDPAU='-D gallium-vdpau=disabled' + scratch isinstalled libva && OPT_MESA_VAAPI='-D gallium-va=enabled' || OPT_MESA_VAAPI='-D gallium-va=disabled' + scratch isinstalled wayland-protocols && OPT_MESA_PLATFORMS='wayland,x11' || OPT_MESA_PLATFORMS='x11' + + venom-meson $name-$version build \ + -D dri3=enabled \ + -D egl=enabled \ + -D llvm=enabled \ + -D shared-llvm=enabled \ + -D gbm=enabled \ + -D gles1=disabled \ + -D gles2=enabled \ + -D glx=dri \ + -D osmesa=true \ + -D gallium-xa=enabled \ + -D gallium-drivers=${OPT_MESA_GALLIUM}crocus,iris,nouveau,r300,r600,radeonsi,svga,swrast,virgl,i915 \ + -D platforms=${OPT_MESA_PLATFORMS} \ + -D shared-glapi=enabled \ + -D vulkan-drivers=amd,intel \ + -D vulkan-layers=device-select,intel-nullhw,overlay \ + -D video-codecs=vc1dec,h264dec,h264enc,h265dec,h265enc \ + $OPT_MESA_VDPAU $OPT_MESA_VAAPI -D glvnd=true + meson compile -C build + DESTDIR=$PKG meson install --no-rebuild -C build + + # indirect rendering symlink + ln -s libGLX_mesa.so.0 $PKG/usr/lib/libGLX_indirect.so.0 +}