From 6b64e8ae346e06968910b8b43c02d0c6a96212e5 Mon Sep 17 00:00:00 2001
From: Andreas Kloeckner <inform@tiker.net>
Date: Mon, 14 Sep 2020 22:12:10 -0500
Subject: [PATCH] Accommodate Debian's broken CL3 headers

---
 doc/make_constants.py  | 2 +-
 src/wrap_constants.cpp | 7 ++++++-
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/doc/make_constants.py b/doc/make_constants.py
index 45a3009f..5a725810 100644
--- a/doc/make_constants.py
+++ b/doc/make_constants.py
@@ -204,7 +204,7 @@ const_ext_lookup = {
             "WORK_GROUP_COLLECTIVE_FUNCTIONS_SUPPORT": cl_30,
             "GENERIC_ADDRESS_SPACE_SUPPORT": cl_30,
             "OPENCL_C_FEATURES": cl_30,
-            "DEVICE_ENQUEUE_SUPPORT": cl_30,
+            "DEVICE_ENQUEUE_CAPABILITIES": cl_30,
             "PIPE_SUPPORT": cl_30,
             },
 
diff --git a/src/wrap_constants.cpp b/src/wrap_constants.cpp
index c8d904cb..1ea67fb4 100644
--- a/src/wrap_constants.cpp
+++ b/src/wrap_constants.cpp
@@ -500,7 +500,12 @@ void pyopencl_expose_constants(py::module &m)
     ADD_ATTR(DEVICE_, WORK_GROUP_COLLECTIVE_FUNCTIONS_SUPPORT);
     ADD_ATTR(DEVICE_, GENERIC_ADDRESS_SPACE_SUPPORT);
     ADD_ATTR(DEVICE_, OPENCL_C_FEATURES);
-    ADD_ATTR(DEVICE_, DEVICE_ENQUEUE_SUPPORT);
+#ifdef CL_DEVICE_DEVICE_ENQUEUE_SUPPORT
+    // some busted headers shipped by Debian have this
+    cls.attr("DEVICE_ENQUEUE_CAPABILITIES") = CL_DEVICE_DEVICE_ENQUEUE_SUPPORT;
+#else
+    ADD_ATTR(DEVICE_, DEVICE_ENQUEUE_CAPABILITIES);
+#endif
     ADD_ATTR(DEVICE_, PIPE_SUPPORT);
 #endif
     /* cl_intel_advanced_motion_estimation */
-- 
GitLab