[Mesa-dev] [PATCH] opencl: improved auto-gen .icd

Tom Stellard tom at stellard.net
Mon Jan 13 11:12:02 PST 2014


On Sun, Jan 12, 2014 at 03:08:56AM +0400, Igor Gnatenko wrote:
> From 5b2bf87f1238e44150492a39f5db0ae90d59459b Mon Sep 17 00:00:00 2001
> From: Igor Gnatenko <i.gnatenko.brain at gmail.com>
> Date: Sun, 12 Jan 2014 02:09:16 +0400
> Subject: [PATCH] opencl: improved auto-gen .icd
> 
> v2: Use @OPENCL_VERSION@:0 for library
>     replace /etc with @sysconfdir@ macros
> 
> Reported-by: Fabian Deutsch <fabian.deutsch at gmx.de>
> Reference: https://bugs.freedesktop.org/show_bug.cgi?id=73512
> Signed-off-by: Igor Gnatenko <i.gnatenko.brain at gmail.com>
> ---
>  configure.ac                           | 3 +++
>  src/gallium/targets/opencl/Makefile.am | 4 ++--
>  src/gallium/targets/opencl/mesa.icd    | 1 -
>  src/gallium/targets/opencl/mesa.icd.in | 1 +
>  4 files changed, 6 insertions(+), 3 deletions(-)
>  delete mode 100644 src/gallium/targets/opencl/mesa.icd
>  create mode 100644 src/gallium/targets/opencl/mesa.icd.in
> 
> diff --git a/configure.ac b/configure.ac
> index 4b55140..3452e15 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -25,6 +25,8 @@ m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
>  dnl Set internal versions
>  OSMESA_VERSION=8
>  AC_SUBST([OSMESA_VERSION])
> +OPENCL_VERSION=1
> +AC_SUBST([OPENCL_VERSION])
>  
>  dnl Versions for external dependencies
>  LIBDRM_REQUIRED=2.4.24
> @@ -2023,6 +2025,7 @@ AC_CONFIG_FILES([Makefile
>  		src/gallium/targets/egl-static/Makefile
>  		src/gallium/targets/gbm/Makefile
>  		src/gallium/targets/opencl/Makefile
> +		src/gallium/targets/opencl/mesa.icd
>  		src/gallium/targets/osmesa/Makefile
>  		src/gallium/targets/osmesa/osmesa.pc
>  		src/gallium/targets/pipe-loader/Makefile
> diff --git a/src/gallium/targets/opencl/Makefile.am b/src/gallium/targets/opencl/Makefile.am
> index 653302c..923316c 100644
> --- a/src/gallium/targets/opencl/Makefile.am
> +++ b/src/gallium/targets/opencl/Makefile.am
> @@ -4,7 +4,7 @@ lib_LTLIBRARIES = lib at OPENCL_LIBNAME@.la
>  
>  lib at OPENCL_LIBNAME@_la_LDFLAGS = \
>  	$(LLVM_LDFLAGS) \
> -	-version-number 1:0
> +	-version-number @OPENCL_VERSION@:0
>  
>  lib at OPENCL_LIBNAME@_la_LIBADD = \
>  	$(top_builddir)/src/gallium/auxiliary/pipe-loader/libpipe_loader.la \
> @@ -34,7 +34,7 @@ lib at OPENCL_LIBNAME@_la_SOURCES =
>  nodist_EXTRA_lib at OPENCL_LIBNAME@_la_SOURCES = dummy.cpp
>  
>  if HAVE_CLOVER_ICD
> -icddir = /etc/OpenCL/vendors/
> +icddir = @sysconfdir@/OpenCL/vendors/

As I mentioned in the bug report, the ICD spec says that OpenCL/vendors/
should be in /etc/  I don't think we can change this and still be spec
compliant.  Why do you want to install the *.icd files in sysconfdir?

>  icd_DATA = mesa.icd
>  endif
>  
> diff --git a/src/gallium/targets/opencl/mesa.icd b/src/gallium/targets/opencl/mesa.icd
> deleted file mode 100644
> index 6a6a870..0000000
> --- a/src/gallium/targets/opencl/mesa.icd
> +++ /dev/null
> @@ -1 +0,0 @@
> -libMesaOpenCL.so
> diff --git a/src/gallium/targets/opencl/mesa.icd.in b/src/gallium/targets/opencl/mesa.icd.in
> new file mode 100644
> index 0000000..a0b6489
> --- /dev/null
> +++ b/src/gallium/targets/opencl/mesa.icd.in
> @@ -0,0 +1 @@
> + at libdir@/lib at OPENCL_LIBNAME@.so. at OPENCL_VERSION@

Again, the spec says only the library name should go here and not the full
path.

-Tom

> -- 
> 1.8.4.2
> 
> -- 
> -Igor Gnatenko
> 
> 
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list