--- /dev/null
+From 94bceeb621e36f3188c6246a763def8695526578 Mon Sep 17 00:00:00 2001
+From: Valentin Korenblit <valentinkorenblit@gmail.com>
+Date: Sat, 20 Oct 2018 10:56:23 +0200
+Subject: [PATCH] Set proper value for LIBCLC_INCLUDEDIR
+
+LIBCLC_INCLUDEDIR is the location where mesa3d OpenCL implementation
+will look for OpenCL "headers" on the target, when building the OpenCL
+kernels.
+
+The value returned by pkg-config for includedir is relevant when
+cross-compiling, on the build machine. But in this specific case, we
+really need a value that is valid on the target.
+
+Those headers are installed by the libclc package in /usr/share so
+that they are not removed by Buildroot target-finalize logic.
+
+Signed-off-by: Valentin Korenblit <valentinkorenblit@gmail.com>
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 864dcae..cc2390b 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -2429,7 +2429,7 @@ if test "x$enable_opencl" = xyes; then
+ PKG_CONFIG_PATH environment variable.
+ By default libclc.pc is installed to /usr/local/share/pkgconfig/])
+ else
+- LIBCLC_INCLUDEDIR=`$PKG_CONFIG --variable=includedir libclc`
++ LIBCLC_INCLUDEDIR="/usr/share"
+ LIBCLC_LIBEXECDIR=`$PKG_CONFIG --variable=libexecdir libclc`
+ AC_SUBST([LIBCLC_INCLUDEDIR])
+ AC_SUBST([LIBCLC_LIBEXECDIR])
+--
+2.7.4
+
depends on BR2_PACKAGE_LLVM_ARCH_SUPPORTS
depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735
+# clang and libclc dependencies are satisfied by
+# BR2_PACKAGE_MESA3D_LLVM
+config BR2_PACKAGE_MESA3D_OPENCL
+ bool "OpenCL support"
+ depends on BR2_PACKAGE_MESA3D_LLVM
+ depends on BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_R600 || \
+ BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_RADEONSI
+ select BR2_PACKAGE_CLANG
+ select BR2_PACKAGE_LIBCLC
+ select BR2_PACKAGE_HAS_LIBOPENCL
+
# inform the .mk file of gallium, dri or vulkan driver selection
config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
bool
config BR2_PACKAGE_PROVIDES_LIBGLES
default "mesa3d" if BR2_PACKAGE_MESA3D_OPENGL_ES
+config BR2_PACKAGE_PROVIDES_LIBOPENCL
+ default "mesa3d" if BR2_PACKAGE_MESA3D_OPENCL
+
endif # BR2_PACKAGE_MESA3D
comment "mesa3d needs a toolchain w/ C++, NPTL, dynamic library"
MESA3D_LICENSE = MIT, SGI, Khronos
MESA3D_LICENSE_FILES = docs/license.html
# 0002-configure.ac-invert-order-for-wayland-scanner-check.patch
+# 0003-set-LIBCLC_INCLUDEDIR.patch
MESA3D_AUTORECONF = YES
MESA3D_INSTALL_STAGING = YES
MESA3D_CONF_OPTS += --disable-llvm
endif
-# Disable opencl in case libclc is detected
+# Disable opencl-icd: OpenCL lib will be named libOpenCL instead of
+# libMesaOpenCL and CL headers are installed
+ifeq ($(BR2_PACKAGE_MESA3D_OPENCL),y)
+MESA3D_PROVIDES += libopencl
+MESA3D_DEPENDENCIES += clang libclc
+MESA3D_CONF_OPTS += --enable-opencl \
+ --disable-opencl-icd \
+ --with-clang-libdir=$(STAGING_DIR)/usr/lib
+else
MESA3D_CONF_OPTS += --disable-opencl
+endif
ifeq ($(BR2_PACKAGE_MESA3D_NEEDS_ELFUTILS),y)
MESA3D_DEPENDENCIES += elfutils