summaryrefslogtreecommitdiff
path: root/graphics/MesaLib/patches/patch-src_gallium_frontends_clover_util_range.hpp
diff options
context:
space:
mode:
authortnn <tnn@pkgsrc.org>2022-03-13 15:52:50 +0000
committertnn <tnn@pkgsrc.org>2022-03-13 15:52:50 +0000
commitde287f71fc6baa88b5b45d2f5711ea0998efb6c8 (patch)
tree3fe1351088dfd23829a126bf698a237f1081d63a /graphics/MesaLib/patches/patch-src_gallium_frontends_clover_util_range.hpp
parentda02083ce6ce77ed90db4be4c628118150f99df1 (diff)
downloadpkgsrc-de287f71fc6baa88b5b45d2f5711ea0998efb6c8.tar.gz
MesaLib: add patches for prior 21.3.7 update
Diffstat (limited to 'graphics/MesaLib/patches/patch-src_gallium_frontends_clover_util_range.hpp')
-rw-r--r--graphics/MesaLib/patches/patch-src_gallium_frontends_clover_util_range.hpp40
1 files changed, 40 insertions, 0 deletions
diff --git a/graphics/MesaLib/patches/patch-src_gallium_frontends_clover_util_range.hpp b/graphics/MesaLib/patches/patch-src_gallium_frontends_clover_util_range.hpp
new file mode 100644
index 00000000000..fe383391a3d
--- /dev/null
+++ b/graphics/MesaLib/patches/patch-src_gallium_frontends_clover_util_range.hpp
@@ -0,0 +1,40 @@
+$NetBSD: patch-src_gallium_frontends_clover_util_range.hpp,v 1.1 2022/03/13 15:52:50 tnn Exp $
+
+From FreeBSD ports for mesa 17.1.10:
+
+From b95533b981af9a6687b41418e7cc2a5652fc2bdb Mon Sep 17 00:00:00 2001
+Date: Fri, 7 Mar 2014 15:16:08 +0100
+Subject: [PATCH 3/3] Work around for clang 3.4 which fails to build Clover
+
+See:
+ https://bugs.freedesktop.org/show_bug.cgi?id=74098#c3
+
+--- src/gallium/frontends/clover/util/range.hpp.orig 2021-07-14 20:04:53.703990500 +0000
++++ src/gallium/frontends/clover/util/range.hpp
+@@ -362,6 +362,14 @@ namespace clover {
+ return { i, i + n };
+ }
+
++#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__)
++ namespace detail {
++ template<typename T>
++ using fixup_function_type =
++ typename std::conditional<std::is_function<T>::value, T &, T>::type;
++ }
++#endif
++
+ ///
+ /// Create a range by transforming the contents of a number of
+ /// source ranges \a rs element-wise using a provided functor \a f.
+@@ -369,7 +377,11 @@ namespace clover {
+ /// \sa adaptor_range.
+ ///
+ template<typename F, typename... Rs>
++#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__)
++ adaptor_range<detail::fixup_function_type<F>, Rs...>
++#else
+ adaptor_range<F, Rs...>
++#endif
+ map(F &&f, Rs &&... rs) {
+ return { std::forward<F>(f), std::forward<Rs>(rs)... };
+ }