[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