Re: git: 0eb6406f6594 - main - devel/opencl: Update OpenCL to 3.0.14

From: Fernando_Apesteguía <fernape_at_freebsd.org>
Date: Fri, 05 May 2023 07:14:31 UTC
On Thu, May 4, 2023 at 9:29 PM Craig Leres <leres@freebsd.org> wrote:

> On 5/3/23 01:05, Fernando Apesteguía wrote:
> > The branch main has been updated by fernape:
> >
> > URL:
> https://cgit.FreeBSD.org/ports/commit/?id=0eb6406f6594c96bef9b692cd7e4fa763a653cd7
> >
> > commit 0eb6406f6594c96bef9b692cd7e4fa763a653cd7
> > Author:     O. Hartmann<ohartmann@walstatt.org>
> > AuthorDate: 2023-05-02 10:38:39 +0000
> > Commit:     Fernando Apesteguía<fernape@FreeBSD.org>
> > CommitDate: 2023-05-03 08:01:08 +0000
> >
> >      devel/opencl: Update OpenCL to 3.0.14
> >
> >      PR:             271158
> >      Reported by:ohartmann@walstatt.org  (maintainer)
> > ---
>
> Unfortunately this breaks building devel/ocl-icd for me (see appended).
> Looks like some things ocl-icd was defining in (ocl-idcd)
> ocl_icd_loader.c are conflicting with a new version in (opencl)
> CL/cl_ext.h.
>

Can you try this patch
https://people.freebsd.org/~fernape/patches/devel_ocl-icd.patch

I was able to build in 12.4 {adm64,i386}, 13.1 amd64 and -current(ish) amd64

Cheers


>
> I took a stab at ifdef'ing out the enum that conflicts with the define
> but that just uncovers other incompatibilities; the problem is beyond my
> understanding of these packages.
>
> devel/ocl-icd is already at the last upstream release of ocl-icd.
>
> Note that this breaks building things like firefox and thunderbird.
>
>                 Craig
>
> ocl_icd_loader.c:895:3: error: expected identifier
>    CL_ICDL_OCL_VERSION=1,
>    ^
> /usr/local/include/CL/cl_ext.h:3181:61: note: expanded from macro
> 'CL_ICDL_OCL_VERSION'
> #define CL_ICDL_OCL_VERSION                                 1
>                                                              ^
> ocl_icd_loader.c:896:3: error: expected identifier
>    CL_ICDL_VERSION=2,
>    ^
> /usr/local/include/CL/cl_ext.h:3182:61: note: expanded from macro
> 'CL_ICDL_VERSION'
> #define CL_ICDL_VERSION                                     2
>                                                              ^
> ocl_icd_loader.c:897:3: error: expected identifier
>    CL_ICDL_NAME=3,
>    ^
> /usr/local/include/CL/cl_ext.h:3183:61: note: expanded from macro
> 'CL_ICDL_NAME'
> #define CL_ICDL_NAME                                        3
>                                                              ^
> ocl_icd_loader.c:898:3: error: expected identifier
>    CL_ICDL_VENDOR=4,
>    ^
> /usr/local/include/CL/cl_ext.h:3184:61: note: expanded from macro
> 'CL_ICDL_VENDOR'
> #define CL_ICDL_VENDOR                                      4
>                                                              ^
> ocl_icd_loader.c:899:3: error: typedef redefinition with different types
> ('enum cl_icdl_info' vs 'cl_uint' (aka 'unsigned int'))
> } cl_icdl_info;
>    ^
> /usr/local/include/CL/cl_ext.h:3178:29: note: previous definition is here
> typedef cl_uint             cl_icdl_info;
>                              ^
> ocl_icd_loader.c:901:15: error: static declaration of
> 'clGetICDLoaderInfoOCLICD' follows non-static declaration
> static cl_int clGetICDLoaderInfoOCLICD(
>                ^
> /usr/local/include/CL/cl_ext.h:3197:1: note: previous declaration is here
> clGetICDLoaderInfoOCLICD(
> ^
> 6 errors generated.
>