diff --git a/Mesa-drivers.changes b/Mesa-drivers.changes index 838866f..71fd498 100644 --- a/Mesa-drivers.changes +++ b/Mesa-drivers.changes @@ -1,3 +1,15 @@ +------------------------------------------------------------------- +Tue May 19 19:22:02 UTC 2020 - Martin Liška + +- Add U_add-lifetime-dse-fix.patch as a proper fix for boo#1171855. + +------------------------------------------------------------------- +Tue May 19 05:52:31 UTC 2020 - Martin Liška + +- Disable LTO for now as there's a known upstream bug + that hasn't been resolved with GCC 10: + boo#1171855. + ------------------------------------------------------------------- Fri May 15 09:52:07 UTC 2020 - Stefan Dirsch diff --git a/Mesa-drivers.spec b/Mesa-drivers.spec index bbbb1a9..26c1f0b 100644 --- a/Mesa-drivers.spec +++ b/Mesa-drivers.spec @@ -129,6 +129,7 @@ Source4: manual-pages.tar.bz2 Source6: %{name}-rpmlintrc Source7: Mesa.keyring Patch2: n_add-Mesa-headers-again.patch +Patch3: U_add-lifetime-dse-fix.patch # never to be upstreamed Patch54: n_drirc-disable-rgb10-for-chromium-on-amd.patch Patch58: u_dep_xcb.patch @@ -736,6 +737,7 @@ programs against the XA state tracker. rm -rf docs/README.{VMS,WIN32,OS2} %patch2 -p1 +%patch3 -p1 %patch54 -p1 %patch58 -p1 diff --git a/Mesa.changes b/Mesa.changes index 838866f..71fd498 100644 --- a/Mesa.changes +++ b/Mesa.changes @@ -1,3 +1,15 @@ +------------------------------------------------------------------- +Tue May 19 19:22:02 UTC 2020 - Martin Liška + +- Add U_add-lifetime-dse-fix.patch as a proper fix for boo#1171855. + +------------------------------------------------------------------- +Tue May 19 05:52:31 UTC 2020 - Martin Liška + +- Disable LTO for now as there's a known upstream bug + that hasn't been resolved with GCC 10: + boo#1171855. + ------------------------------------------------------------------- Fri May 15 09:52:07 UTC 2020 - Stefan Dirsch diff --git a/Mesa.spec b/Mesa.spec index 5639af6..66631c5 100644 --- a/Mesa.spec +++ b/Mesa.spec @@ -128,6 +128,7 @@ Source4: manual-pages.tar.bz2 Source6: %{name}-rpmlintrc Source7: Mesa.keyring Patch2: n_add-Mesa-headers-again.patch +Patch3: U_add-lifetime-dse-fix.patch # never to be upstreamed Patch54: n_drirc-disable-rgb10-for-chromium-on-amd.patch Patch58: u_dep_xcb.patch @@ -735,6 +736,7 @@ programs against the XA state tracker. rm -rf docs/README.{VMS,WIN32,OS2} %patch2 -p1 +%patch3 -p1 %patch54 -p1 %patch58 -p1 diff --git a/U_add-lifetime-dse-fix.patch b/U_add-lifetime-dse-fix.patch new file mode 100644 index 0000000..ae8f4dd --- /dev/null +++ b/U_add-lifetime-dse-fix.patch @@ -0,0 +1,46 @@ +From 9a72afaea7bf69f07623cae1af99f71be64688ba Mon Sep 17 00:00:00 2001 +From: Danylo Piliaiev +Date: Tue, 19 May 2020 20:35:49 +0300 +Subject: [PATCH] meson: Disable GCC's dead store elimination for memory + zeroing custom new + +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: +Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2977 +Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/1358 +Signed-off-by: Danylo Piliaiev +--- + meson.build | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/meson.build b/meson.build +index 1a207842c55..3d4ea165c99 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 +