[arch-commits] Commit in mesa/trunk (2 files)

Laurent Carlier lcarlier at archlinux.org
Fri May 22 14:01:47 UTC 2020


    Date: Friday, May 22, 2020 @ 14:01:47
  Author: lcarlier
Revision: 387423

upgpkg: mesa 20.0.7-3: reenable LTO with upstream patch (FS#66666)

Added:
  mesa/trunk/0001-meson-Disable-GCC-s-dead-store-elimination-for-memor.patch
Modified:
  mesa/trunk/PKGBUILD

-----------------------------------------------------------------+
 0001-meson-Disable-GCC-s-dead-store-elimination-for-memor.patch |   53 ++++++++++
 PKGBUILD                                                        |    8 +
 2 files changed, 59 insertions(+), 2 deletions(-)

Added: 0001-meson-Disable-GCC-s-dead-store-elimination-for-memor.patch
===================================================================
--- 0001-meson-Disable-GCC-s-dead-store-elimination-for-memor.patch	                        (rev 0)
+++ 0001-meson-Disable-GCC-s-dead-store-elimination-for-memor.patch	2020-05-22 14:01:47 UTC (rev 387423)
@@ -0,0 +1,53 @@
+From 979ae78318c3e37cc0e0579b8d1f05c46bb76e7d Mon Sep 17 00:00:00 2001
+From: Danylo Piliaiev <danylo.piliaiev at globallogic.com>
+Date: Tue, 19 May 2020 20:35:49 +0300
+Subject: [PATCH] meson: Disable GCC's dead store elimination for memory
+ zeroing custom new
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Some classes use custom new operator which zeroes memory, however gcc does
+aggressive dead-store elimination which threats all writes to the memory
+before the constructor as "dead stores".
+
+For now we disable this optimization.
+
+The new operators in question are declared via:
+ DECLARE_RZALLOC_CXX_OPERATORS
+ DECLARE_LINEAR_ZALLOC_CXX_OPERATORS
+
+The issue was found with lto builds, however there is no guarantee that
+it didn't happen with ordinary ones.
+
+CC: <mesa-stable at lists.freedesktop.org>
+Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2977
+Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/1358
+Signed-off-by: Danylo Piliaiev <danylo.piliaiev at globallogic.com>
+Reviewed-by: Marek Olšák <marek.olsak at amd.com>
+Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5104>
+(cherry picked from commit 5500a2b7fc558217bbd4c2a966ab6fcadaed8b3b)
+Signed-off-by: Laurent Carlier <lordheavym at gmail.com>
+---
+ meson.build       | 5 +++++
+ 1 files changed, 5 insertions(+), 0 deletion(-)
+
+diff --git a/meson.build b/meson.build
+index ba4fdb2a59f..434684c8bcc 100644
+--- a/meson.build
++++ b/meson.build
+@@ -980,6 +980,11 @@ else
+     '-fno-math-errno',
+     '-fno-trapping-math',
+     '-Qunused-arguments',
++    # Some classes use custom new operator which zeroes memory, however
++    # gcc does aggressive dead-store elimination which threats all writes
++    # to the memory before the constructor as "dead stores".
++    # For now we disable this optimization.
++    '-flifetime-dse=1',
+   ]
+   # MinGW chokes on format specifiers and I can't get it all working
+   if not (cc.get_id() == 'gcc' and host_machine.system() == 'windows')
+-- 
+2.26.2
+

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2020-05-22 12:42:21 UTC (rev 387422)
+++ PKGBUILD	2020-05-22 14:01:47 UTC (rev 387423)
@@ -5,7 +5,7 @@
 pkgname=('vulkan-mesa-layer' 'opencl-mesa' 'vulkan-intel' 'vulkan-radeon' 'libva-mesa-driver' 'mesa-vdpau' 'mesa')
 pkgdesc="An open-source implementation of the OpenGL specification"
 pkgver=20.0.7
-pkgrel=2
+pkgrel=3
 arch=('x86_64')
 makedepends=('python-mako' 'libxml2' 'libx11' 'xorgproto' 'libdrm' 'libxshmfence' 'libxxf86vm'
              'libxdamage' 'libvdpau' 'libva' 'wayland' 'wayland-protocols' 'zstd'
@@ -16,11 +16,13 @@
 source=(https://mesa.freedesktop.org/archive/mesa-${pkgver}.tar.xz{,.sig}
 	0001-swr-Fix-build-with-GCC-10.patch
 	0001-omx-fix-build-with-gcc-10.patch
+	0001-meson-Disable-GCC-s-dead-store-elimination-for-memor.patch
         LICENSE)
 sha512sums=('00baae50f14bf2b08b5654dffb11cf67499dc1825e1700b137fb5719e767e0e78e789979df2c194f677ea9c5e531f34965d47b9e37c239944c38d0570c7a9685'
             'SKIP'
             '296a7502e959ccd2a6f1279878c0562a853ecdd78b5960196fc8f99ed8dd995c6e1106551aef7a53db891295235ca55676788e7cf78e336e2d5ee49e4e463be5'
             'e1f0fa2a8802184580d9d95777f02a1c35bf71c3ab380d88e5b9268f84c2ac338fa517d20065094b7764490bbbfb290c1c5ad6dec6d27f3dbf737dfa0b6c7263'
+            '566ad6f4195124b4af05d4bba1e01cc5e9ac466f11ddd900a2f5bfd830aa19cdccb3f9625901340b5fe62e7d8ea50aa336ab5031a658fe90916d847b2e9946e0'
             'f9f0d0ccf166fe6cb684478b6f1e1ab1f2850431c06aa041738563eb1808a004e52cdec823c103c9e180f03ffc083e95974d291353f0220fe52ae6d4897fecc7')
 validpgpkeys=('8703B6700E7EE06D7A39B8D6EDAE37B02CEB490D'  # Emil Velikov <emil.l.velikov at gmail.com>
               '946D09B5E4C9845E63075FF1D961C596A7203456'  # Andres Gomez <tanty at igalia.com>
@@ -35,11 +37,13 @@
   # fix building with gcc 10
   patch -Np1 -i ../0001-swr-Fix-build-with-GCC-10.patch
   patch -Np1 -i ../0001-omx-fix-build-with-gcc-10.patch
+  # LTO fix
+  patch -Np1 -i ../0001-meson-Disable-GCC-s-dead-store-elimination-for-memor.patch
 }
 
 build() {
   arch-meson mesa-$pkgver build \
-    -D b_lto=false \
+    -D b_lto=true \
     -D b_ndebug=true \
     -D platforms=x11,wayland,drm,surfaceless \
     -D dri-drivers=i915,i965,r100,r200,nouveau \


More information about the arch-commits mailing list