extra/mesa to 20.0.7-3

This commit is contained in:
Kevin Mihelich 2020-05-22 16:08:21 +00:00
parent 1fecfd1738
commit c71e70f264
2 changed files with 58 additions and 1 deletions

View file

@ -0,0 +1,53 @@
From 979ae78318c3e37cc0e0579b8d1f05c46bb76e7d Mon Sep 17 00:00:00 2001
From: Danylo Piliaiev <danylo.piliaiev@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@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@globallogic.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5104>
(cherry picked from commit 5500a2b7fc558217bbd4c2a966ab6fcadaed8b3b)
Signed-off-by: Laurent Carlier <lordheavym@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

View file

@ -10,7 +10,7 @@ pkgbase=mesa
pkgname=('vulkan-mesa-layer' 'opencl-mesa' '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'
@ -22,12 +22,14 @@ source=(https://mesa.freedesktop.org/archive/mesa-${pkgver}.tar.xz{,.sig}
0001-Rip-out-VC4-forced-NEON.patch
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'
'ba55fd9816ebd9147be120da1fd4fa0364d19967a11570e6d5dd9d8b4f7971df46ced8b151ee07afaaa98043e131eed14918ec25f8c9b0f7e5c53f452674ee5c'
'296a7502e959ccd2a6f1279878c0562a853ecdd78b5960196fc8f99ed8dd995c6e1106551aef7a53db891295235ca55676788e7cf78e336e2d5ee49e4e463be5'
'e1f0fa2a8802184580d9d95777f02a1c35bf71c3ab380d88e5b9268f84c2ac338fa517d20065094b7764490bbbfb290c1c5ad6dec6d27f3dbf737dfa0b6c7263'
'566ad6f4195124b4af05d4bba1e01cc5e9ac466f11ddd900a2f5bfd830aa19cdccb3f9625901340b5fe62e7d8ea50aa336ab5031a658fe90916d847b2e9946e0'
'f9f0d0ccf166fe6cb684478b6f1e1ab1f2850431c06aa041738563eb1808a004e52cdec823c103c9e180f03ffc083e95974d291353f0220fe52ae6d4897fecc7')
validpgpkeys=('8703B6700E7EE06D7A39B8D6EDAE37B02CEB490D' # Emil Velikov <emil.l.velikov@gmail.com>
'946D09B5E4C9845E63075FF1D961C596A7203456' # Andres Gomez <tanty@igalia.com>
@ -42,6 +44,8 @@ prepare() {
# 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
[[ $CARCH == "armv6h" || $CARCH == "armv7h" ]] && patch -p1 -i ../0001-Rip-out-VC4-forced-NEON.patch || true
}