diff --git a/mesa-10.6-nir-linker.patch b/mesa-10.6-nir-linker.patch new file mode 100644 index 0000000..5713c0a --- /dev/null +++ b/mesa-10.6-nir-linker.patch @@ -0,0 +1,506 @@ +From patchwork Wed Apr 15 14:08:02 2015 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: [Mesa-dev, + 1/9] freedreno: use CXX linker rather than explicit link against + libstdc++ +From: Emil Velikov +X-Patchwork-Id: 47212 +Message-Id: <1429106890-32645-1-git-send-email-emil.l.velikov@gmail.com> +To: mesa-dev@lists.freedesktop.org +Cc: emil.l.velikov@gmail.com, Rob Clark +Date: Wed, 15 Apr 2015 15:08:02 +0100 + +Cc: Rob Clark +Signed-off-by: Emil Velikov + +--- +src/gallium/drivers/freedreno/Makefile.am | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/src/gallium/drivers/freedreno/Makefile.am b/src/gallium/drivers/freedreno/Makefile.am +index 4b2629f..e798e44 100644 +--- a/src/gallium/drivers/freedreno/Makefile.am ++++ b/src/gallium/drivers/freedreno/Makefile.am +@@ -21,6 +21,8 @@ libfreedreno_la_SOURCES = \ + + noinst_PROGRAMS = ir3_compiler + ++# XXX: Required due to the C++ sources in libnir/libglsl_util ++nodist_EXTRA_ir3_compiler_SOURCES = dummy.cpp + ir3_compiler_SOURCES = \ + ir3/ir3_cmdline.c + +@@ -29,7 +31,6 @@ ir3_compiler_LDADD = \ + ../../auxiliary/libgallium.la \ + $(top_builddir)/src/glsl/libnir.la \ + $(top_builddir)/src/libglsl_util.la \ +- -lstdc++ \ + $(top_builddir)/src/util/libmesautil.la \ + $(GALLIUM_COMMON_LIB_DEPS) \ + $(FREEDRENO_LIBS) + +From patchwork Wed Apr 15 14:08:03 2015 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: [Mesa-dev, + 2/9] gallium: use $(top_builddir) when referencing other .la's +From: Emil Velikov +X-Patchwork-Id: 47213 +Message-Id: <1429106890-32645-2-git-send-email-emil.l.velikov@gmail.com> +To: mesa-dev@lists.freedesktop.org +Cc: emil.l.velikov@gmail.com +Date: Wed, 15 Apr 2015 15:08:03 +0100 + +Just like every other place in gallium. + +Signed-off-by: Emil Velikov + +--- +src/gallium/drivers/freedreno/Makefile.am | 2 +- + src/gallium/drivers/nouveau/Makefile.am | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/gallium/drivers/freedreno/Makefile.am b/src/gallium/drivers/freedreno/Makefile.am +index e798e44..cbf62c6 100644 +--- a/src/gallium/drivers/freedreno/Makefile.am ++++ b/src/gallium/drivers/freedreno/Makefile.am +@@ -28,7 +28,7 @@ ir3_compiler_SOURCES = \ + + ir3_compiler_LDADD = \ + libfreedreno.la \ +- ../../auxiliary/libgallium.la \ ++ $(top_builddir)/src/gallium/auxiliary/libgallium.la \ + $(top_builddir)/src/glsl/libnir.la \ + $(top_builddir)/src/libglsl_util.la \ + $(top_builddir)/src/util/libmesautil.la \ +diff --git a/src/gallium/drivers/nouveau/Makefile.am b/src/gallium/drivers/nouveau/Makefile.am +index 0aefc03..d05f0a1 100644 +--- a/src/gallium/drivers/nouveau/Makefile.am ++++ b/src/gallium/drivers/nouveau/Makefile.am +@@ -48,7 +48,7 @@ nouveau_compiler_SOURCES = \ + + nouveau_compiler_LDADD = \ + libnouveau.la \ +- ../../auxiliary/libgallium.la \ ++ $(top_builddir)/src/gallium/auxiliary/libgallium.la \ + $(top_builddir)/src/util/libmesautil.la \ + $(GALLIUM_COMMON_LIB_DEPS) + + +From patchwork Wed Apr 15 14:08:04 2015 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: [Mesa-dev,3/9] pipe-loader: add libnir and libglsl_util to the link +From: Emil Velikov +X-Patchwork-Id: 47214 +Message-Id: <1429106890-32645-3-git-send-email-emil.l.velikov@gmail.com> +To: mesa-dev@lists.freedesktop.org +Cc: emil.l.velikov@gmail.com, Rob Clark +Date: Wed, 15 Apr 2015 15:08:04 +0100 + +Otherwise we'll error out due to unresolved nir symbols. Note that we +still fail to link due to unresolved _mesa_error_no_memory(). + +Based on commit 101142c4010(xa: support for drivers which use NIR) + +Cc: Rob Clark +Signed-off-by: Emil Velikov + +--- +src/gallium/targets/pipe-loader/Makefile.am | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/src/gallium/targets/pipe-loader/Makefile.am b/src/gallium/targets/pipe-loader/Makefile.am +index 967cdb7..e4048b5 100644 +--- a/src/gallium/targets/pipe-loader/Makefile.am ++++ b/src/gallium/targets/pipe-loader/Makefile.am +@@ -52,6 +52,8 @@ endif + + PIPE_LIBS += \ + $(top_builddir)/src/gallium/auxiliary/libgallium.la \ ++ $(top_builddir)/src/glsl/libnir.la \ ++ $(top_builddir)/src/libglsl_util.la \ + $(top_builddir)/src/util/libmesautil.la \ + $(top_builddir)/src/gallium/drivers/rbug/librbug.la \ + $(top_builddir)/src/gallium/drivers/trace/libtrace.la \ + +From patchwork Wed Apr 15 14:08:05 2015 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 8bit +Subject: [Mesa-dev,4/9] prog; + add weak _mesa_error_no_memory() symbol and add it to libglsl_util +From: Emil Velikov +X-Patchwork-Id: 47216 +Message-Id: <1429106890-32645-4-git-send-email-emil.l.velikov@gmail.com> +To: mesa-dev@lists.freedesktop.org +Cc: emil.l.velikov@gmail.com, Rob Clark +Date: Wed, 15 Apr 2015 15:08:05 +0100 + +Rather than forcing everyone to provide their own definition of the symbol +provide a common weak one, which anyone can override if needed. + +This resolved the build of the standalone pipe-drivers, as it provides a +default symbol which was missing previously. + +Cc: Rob Clark +Signed-off-by: Emil Velikov + +--- +src/Makefile.am | 3 ++- + src/glsl/SConscript | 2 ++ + src/mesa/Android.libmesa_glsl_utils.mk | 6 ++++-- + src/mesa/program/weak_errors.c | 30 ++++++++++++++++++++++++++++++ + 4 files changed, 38 insertions(+), 3 deletions(-) + create mode 100644 src/mesa/program/weak_errors.c + +diff --git a/src/Makefile.am b/src/Makefile.am +index 18cb4ce..461da27 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -72,4 +72,5 @@ noinst_LTLIBRARIES = libglsl_util.la + libglsl_util_la_SOURCES = \ + mesa/main/imports.c \ + mesa/program/prog_hash_table.c \ +- mesa/program/symbol_table.c ++ mesa/program/symbol_table.c \ ++ mesa/program/weak_errors.c +diff --git a/src/glsl/SConscript b/src/glsl/SConscript +index 284b375..d18a8a7 100644 +--- a/src/glsl/SConscript ++++ b/src/glsl/SConscript +@@ -71,6 +71,7 @@ env.Command('imports.c', '#src/mesa/main/imports.c', Copy('$TARGET', '$SOURCE')) + env.Prepend(CPPPATH = ['#src/mesa/program']) + env.Command('prog_hash_table.c', '#src/mesa/program/prog_hash_table.c', Copy('$TARGET', '$SOURCE')) + env.Command('symbol_table.c', '#src/mesa/program/symbol_table.c', Copy('$TARGET', '$SOURCE')) ++env.Command('weak_errors.c', '#src/mesa/program/weak_errors.c', Copy('$TARGET', '$SOURCE')) + + compiler_objs = env.StaticObject(source_lists['GLSL_COMPILER_CXX_FILES']) + +@@ -78,6 +79,7 @@ mesa_objs = env.StaticObject([ + 'imports.c', + 'prog_hash_table.c', + 'symbol_table.c', ++ 'weak_errors.c', + ]) + + compiler_objs += mesa_objs +diff --git a/src/mesa/Android.libmesa_glsl_utils.mk b/src/mesa/Android.libmesa_glsl_utils.mk +index a9f6ff5..08786e3 100644 +--- a/src/mesa/Android.libmesa_glsl_utils.mk ++++ b/src/mesa/Android.libmesa_glsl_utils.mk +@@ -43,7 +43,8 @@ LOCAL_C_INCLUDES := \ + LOCAL_SRC_FILES := \ + main/imports.c \ + program/prog_hash_table.c \ +- program/symbol_table.c ++ program/symbol_table.c \ ++ program/weak_errors.c + + include $(MESA_COMMON_MK) + include $(BUILD_STATIC_LIBRARY) +@@ -66,7 +67,8 @@ LOCAL_C_INCLUDES := \ + LOCAL_SRC_FILES := \ + main/imports.c \ + program/prog_hash_table.c \ +- program/symbol_table.c ++ program/symbol_table.c \ ++ program/weak_errors.c + + include $(MESA_COMMON_MK) + include $(BUILD_HOST_STATIC_LIBRARY) +diff --git a/src/mesa/program/weak_errors.c b/src/mesa/program/weak_errors.c +new file mode 100644 +index 0000000..85c35dc +--- /dev/null ++++ b/src/mesa/program/weak_errors.c +@@ -0,0 +1,30 @@ ++/* ++ * Copyright © 2014 Intel Corporation ++ * ++ * Permission is hereby granted, free of charge, to any person obtaining a ++ * copy of this software and associated documentation files (the "Software"), ++ * to deal in the Software without restriction, including without limitation ++ * the rights to use, copy, modify, merge, publish, distribute, sublicense, ++ * and/or sell copies of the Software, and to permit persons to whom the ++ * Software is furnished to do so, subject to the following conditions: ++ * ++ * The above copyright notice and this permission notice (including the next ++ * paragraph) shall be included in all copies or substantial portions of the ++ * Software. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ++ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ++ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ++ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER ++ * DEALINGS IN THE SOFTWARE. ++ */ ++#include ++#include "main/errors.h" ++ ++__attribute__((weak)) void ++_mesa_error_no_memory(const char *caller) ++{ ++ fprintf(stderr, "Mesa error: out of memory in %s", caller); ++} + +From patchwork Wed Apr 15 14:08:06 2015 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 8bit +Subject: [Mesa-dev,5/9] glsl: use the weak _mesa_error_no_memory() symbol +From: Emil Velikov +X-Patchwork-Id: 47215 +Message-Id: <1429106890-32645-5-git-send-email-emil.l.velikov@gmail.com> +To: mesa-dev@lists.freedesktop.org +Cc: emil.l.velikov@gmail.com +Date: Wed, 15 Apr 2015 15:08:06 +0100 + +Signed-off-by: Emil Velikov + +--- +src/glsl/Makefile.am | 13 ++++--------- + src/glsl/SConscript | 2 +- + src/glsl/main.cpp | 6 ------ + src/glsl/tests/common.c | 30 ------------------------------ + 4 files changed, 5 insertions(+), 46 deletions(-) + delete mode 100644 src/glsl/tests/common.c + +diff --git a/src/glsl/Makefile.am b/src/glsl/Makefile.am +index 23c6fe8..cd37e64 100644 +--- a/src/glsl/Makefile.am ++++ b/src/glsl/Makefile.am +@@ -89,8 +89,7 @@ tests_general_ir_test_SOURCES = \ + tests/builtin_variable_test.cpp \ + tests/invalidate_locations_test.cpp \ + tests/general_ir_test.cpp \ +- tests/varyings_test.cpp \ +- tests/common.c ++ tests/varyings_test.cpp + tests_general_ir_test_CFLAGS = \ + $(PTHREAD_CFLAGS) + tests_general_ir_test_LDADD = \ +@@ -103,8 +102,7 @@ tests_uniform_initializer_test_SOURCES = \ + tests/copy_constant_to_storage_tests.cpp \ + tests/set_uniform_initializer_tests.cpp \ + tests/uniform_initializer_utils.cpp \ +- tests/uniform_initializer_utils.h \ +- tests/common.c ++ tests/uniform_initializer_utils.h + tests_uniform_initializer_test_CFLAGS = \ + $(PTHREAD_CFLAGS) + tests_uniform_initializer_test_LDADD = \ +@@ -114,8 +112,7 @@ tests_uniform_initializer_test_LDADD = \ + $(PTHREAD_LIBS) + + tests_sampler_types_test_SOURCES = \ +- tests/sampler_types_test.cpp \ +- tests/common.c ++ tests/sampler_types_test.cpp + tests_sampler_types_test_CFLAGS = \ + $(PTHREAD_CFLAGS) + tests_sampler_types_test_LDADD = \ +@@ -133,8 +130,7 @@ libglcpp_la_SOURCES = \ + $(LIBGLCPP_FILES) + + glcpp_glcpp_SOURCES = \ +- glcpp/glcpp.c \ +- tests/common.c ++ glcpp/glcpp.c + glcpp_glcpp_LDADD = \ + libglcpp.la \ + $(top_builddir)/src/libglsl_util.la \ +@@ -164,7 +160,6 @@ glsl_compiler_LDADD = \ + + glsl_test_SOURCES = \ + standalone_scaffolding.cpp \ +- tests/common.c \ + test.cpp \ + test_optpass.cpp \ + test_optpass.h +diff --git a/src/glsl/SConscript b/src/glsl/SConscript +index d18a8a7..455f5e8 100644 +--- a/src/glsl/SConscript ++++ b/src/glsl/SConscript +@@ -117,6 +117,6 @@ env.Alias('glsl_compiler', glsl_compiler) + + glcpp = env.Program( + target = 'glcpp/glcpp', +- source = ['glcpp/glcpp.c', 'tests/common.c'] + mesa_objs, ++ source = ['glcpp/glcpp.c'] + mesa_objs, + ) + env.Alias('glcpp', glcpp) +diff --git a/src/glsl/main.cpp b/src/glsl/main.cpp +index ccac839..fc54ddd 100644 +--- a/src/glsl/main.cpp ++++ b/src/glsl/main.cpp +@@ -41,12 +41,6 @@ + + static int glsl_version = 330; + +-extern "C" void +-_mesa_error_no_memory(const char *caller) +-{ +- fprintf(stderr, "Mesa error: out of memory in %s", caller); +-} +- + static void + initialize_context(struct gl_context *ctx, gl_api api) + { +diff --git a/src/glsl/tests/common.c b/src/glsl/tests/common.c +deleted file mode 100644 +index d69f54d..0000000 +--- a/src/glsl/tests/common.c ++++ /dev/null +@@ -1,30 +0,0 @@ +-/* +- * Copyright © 2014 Intel Corporation +- * +- * Permission is hereby granted, free of charge, to any person obtaining a +- * copy of this software and associated documentation files (the "Software"), +- * to deal in the Software without restriction, including without limitation +- * the rights to use, copy, modify, merge, publish, distribute, sublicense, +- * and/or sell copies of the Software, and to permit persons to whom the +- * Software is furnished to do so, subject to the following conditions: +- * +- * The above copyright notice and this permission notice (including the next +- * paragraph) shall be included in all copies or substantial portions of the +- * Software. +- * +- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +- * DEALINGS IN THE SOFTWARE. +- */ +-#include +-#include "main/errors.h" +- +-void +-_mesa_error_no_memory(const char *caller) +-{ +- fprintf(stderr, "Mesa error: out of memory in %s", caller); +-} + +From patchwork Wed Apr 15 14:08:07 2015 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: [Mesa-dev, + 6/9] freedreno/ir3: use the weak _mesa_error_no_memory() symbol +From: Emil Velikov +X-Patchwork-Id: 47218 +Message-Id: <1429106890-32645-6-git-send-email-emil.l.velikov@gmail.com> +To: mesa-dev@lists.freedesktop.org +Cc: emil.l.velikov@gmail.com, Rob Clark +Date: Wed, 15 Apr 2015 15:08:07 +0100 + +We no longer need to (although we can) provide this symbol ourselves. + +Cc: Rob Clark +Signed-off-by: Emil Velikov + +--- +src/gallium/drivers/freedreno/ir3/ir3_cmdline.c | 8 -------- + 1 file changed, 8 deletions(-) + +diff --git a/src/gallium/drivers/freedreno/ir3/ir3_cmdline.c b/src/gallium/drivers/freedreno/ir3/ir3_cmdline.c +index d0517aa..0b16cc1 100644 +--- a/src/gallium/drivers/freedreno/ir3/ir3_cmdline.c ++++ b/src/gallium/drivers/freedreno/ir3/ir3_cmdline.c +@@ -360,11 +360,3 @@ int main(int argc, char **argv) + } + dump_info(&v, info); + } +- +-void _mesa_error_no_memory(const char *caller); +- +-void +-_mesa_error_no_memory(const char *caller) +-{ +- fprintf(stderr, "Mesa error: out of memory in %s", caller); +-} + +From patchwork Wed Apr 15 14:08:08 2015 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: [Mesa-dev,7/9] st/xa: use the weak _mesa_error_no_memory() symbol +From: Emil Velikov +X-Patchwork-Id: 47217 +Message-Id: <1429106890-32645-7-git-send-email-emil.l.velikov@gmail.com> +To: mesa-dev@lists.freedesktop.org +Cc: emil.l.velikov@gmail.com, Rob Clark +Date: Wed, 15 Apr 2015 15:08:08 +0100 + +Thus we can remove the workaround that we previously had. + +Cc: Rob Clark +Signed-off-by: Emil Velikov + +--- +src/gallium/state_trackers/xa/xa_tracker.c | 12 ------------ + 1 file changed, 12 deletions(-) + +diff --git a/src/gallium/state_trackers/xa/xa_tracker.c b/src/gallium/state_trackers/xa/xa_tracker.c +index 8901998..f69ac8e 100644 +--- a/src/gallium/state_trackers/xa/xa_tracker.c ++++ b/src/gallium/state_trackers/xa/xa_tracker.c +@@ -535,15 +535,3 @@ xa_surface_format(const struct xa_surface *srf) + { + return srf->fdesc.xa_format; + } +- +-/* +- * _mesa_error_no_memory() is expected by NIR to be provided by the +- * user. Normally this is in mesa st, but other state trackers +- * must provide their own. +- */ +-void _mesa_error_no_memory(const char *caller); +-void +-_mesa_error_no_memory(const char *caller) +-{ +- debug_printf("Mesa error: out of memory in %s", caller); +-} + +From patchwork Wed Apr 15 14:08:09 2015 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: [Mesa-dev,8/9] targets/nine: link against libnir/libglsl_util +From: Emil Velikov +X-Patchwork-Id: 47219 +Message-Id: <1429106890-32645-8-git-send-email-emil.l.velikov@gmail.com> +To: mesa-dev@lists.freedesktop.org +Cc: emil.l.velikov@gmail.com +Date: Wed, 15 Apr 2015 15:08:09 +0100 + +Similar to commit 127f8767e0a and 101142c4010. + +Signed-off-by: Emil Velikov + +--- +src/gallium/targets/d3dadapter9/Makefile.am | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/src/gallium/targets/d3dadapter9/Makefile.am b/src/gallium/targets/d3dadapter9/Makefile.am +index 1dc55f5..591978f 100644 +--- a/src/gallium/targets/d3dadapter9/Makefile.am ++++ b/src/gallium/targets/d3dadapter9/Makefile.am +@@ -74,6 +74,8 @@ endif # HAVE_LD_VERSION_SCRIPT + d3dadapter9_la_LIBADD = \ + $(top_builddir)/src/gallium/auxiliary/libgalliumvl_stub.la \ + $(top_builddir)/src/gallium/auxiliary/libgallium.la \ ++ $(top_builddir)/src/glsl/libnir.la \ ++ $(top_builddir)/src/libglsl_util.la \ + $(top_builddir)/src/gallium/state_trackers/nine/libninetracker.la \ + $(top_builddir)/src/util/libmesautil.la \ + $(top_builddir)/src/gallium/winsys/sw/wrapper/libwsw.la \ diff --git a/mesa.spec b/mesa.spec index ddf0c94..add47cc 100644 --- a/mesa.spec +++ b/mesa.spec @@ -78,6 +78,9 @@ Patch15: mesa-9.2-hardware-float.patch Patch20: mesa-10.2-evergreen-big-endian.patch Patch30: mesa-10.3-bigendian-assert.patch +# https://bugs.freedesktop.org/show_bug.cgi?id=90466 +Patch60: mesa-10.6-nir-linker.patch + # https://bugs.freedesktop.org/show_bug.cgi?id=73512 Patch99: 0001-opencl-use-versioned-.so-in-mesa.icd.patch @@ -364,6 +367,8 @@ grep -q ^/ src/gallium/auxiliary/vl/vl_decoder.c && exit 1 %patch20 -p1 -b .egbe %patch30 -p1 -b .beassert +%patch60 -p1 -b .nir + %if 0%{?with_opencl} %patch99 -p1 -b .icd %endif