diff --git a/var/spack/repos/builtin/packages/mesa/multiple-symbols_hash.patch b/var/spack/repos/builtin/packages/mesa/multiple-symbols_hash.patch new file mode 100644 index 0000000000000000000000000000000000000000..7c92326f3774d4155dea35ea6295b1d41886a6d5 --- /dev/null +++ b/var/spack/repos/builtin/packages/mesa/multiple-symbols_hash.patch @@ -0,0 +1,22 @@ +--- a/src/gallium/auxiliary/util/u_debug_stack.c 2019-11-07 17:57:36.000000000 -0700 ++++ b/src/gallium/auxiliary/util/u_debug_stack.c 2020-07-23 15:30:46.033145497 -0600 +@@ -46,7 +46,7 @@ + #include "os/os_thread.h" + #include "u_hash_table.h" + +-struct util_hash_table* symbols_hash; ++static struct util_hash_table* symbols_hash; + static mtx_t symbols_mutex = _MTX_INITIALIZER_NP; + + static unsigned hash_ptr(void* p) +--- a/src/gallium/auxiliary/util/u_debug_symbol.c 2019-11-07 17:58:53.000000000 -0700 ++++ b/src/gallium/auxiliary/util/u_debug_symbol.c 2020-07-23 15:31:06.400146072 -0600 +@@ -270,7 +270,7 @@ + debug_printf("\t%s\n", buf); + } + +-struct util_hash_table* symbols_hash; ++static struct util_hash_table* symbols_hash; + static mtx_t symbols_mutex = _MTX_INITIALIZER_NP; + + static unsigned hash_ptr(void* p) diff --git a/var/spack/repos/builtin/packages/mesa/package.py b/var/spack/repos/builtin/packages/mesa/package.py index b277a03d1940879f7f33287fe742e551be4bf8dd..953e5b0034cd7336c5d061fde2b22d29877c28ab 100644 --- a/var/spack/repos/builtin/packages/mesa/package.py +++ b/var/spack/repos/builtin/packages/mesa/package.py @@ -79,6 +79,9 @@ class Mesa(AutotoolsPackage): # Prevent an unnecessary xcb-dri dependency patch('autotools-x11-nodri.patch') + # Backport Mesa MR#6053 to prevent multiply-defined symbols + patch('multiple-symbols_hash.patch', when='@:20.1.4%gcc@10:') + def autoreconf(self, spec, prefix): which('autoreconf')('--force', '--verbose', '--install')