On Wed, May 20, 2026 at 02:02:30PM +0200, Theo Buehler wrote:
> With the change of CARD64 to unsigned long long in Xmd.h, x11/motif
> fails to build with llvm22 because of
> 
> EditresCom.c:802:11: error: incompatible pointer types assigning to 'unsigned 
> long *' from 'CARD64 *' (aka 'unsigned long long *') 
> [-Wincompatible-pointer-types]
>   802 |     child = info->ids;
>       |           ^ ~~~~~~~~~
> 
> This fixes the build, but I'm unsure if it's the right approach:

Yes. struct _WidgetInfo is defined in
/usrX11R6/includeX11/Xmu/EditresP.h with CARD64 ids. 


> 
> Index: Makefile
> ===================================================================
> RCS file: /cvs/ports/x11/motif/Makefile,v
> diff -u -p -r1.12 Makefile
> --- Makefile  21 Jul 2025 16:10:44 -0000      1.12
> +++ Makefile  20 May 2026 11:57:17 -0000
> @@ -1,7 +1,7 @@
>  COMMENT=     Motif toolkit
>  
>  DISTNAME=    motif-2.3.8
> -REVISION=    2
> +REVISION=    3
>  
>  SHARED_LIBS +=  Xm                   6.1      # 4.4
>  SHARED_LIBS +=  Mrm                  4.1      # 4.4
> Index: patches/patch-lib_Xm_EditresCom_c
> ===================================================================
> RCS file: patches/patch-lib_Xm_EditresCom_c
> diff -N patches/patch-lib_Xm_EditresCom_c
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-lib_Xm_EditresCom_c 20 May 2026 11:57:09 -0000
> @@ -0,0 +1,12 @@
> +Index: lib/Xm/EditresCom.c
> +--- lib/Xm/EditresCom.c.orig
> ++++ lib/Xm/EditresCom.c
> +@@ -794,7 +794,7 @@ WidgetInfo *info;
> + 
> +     register int count;
> +     register Widget parent;
> +-    register unsigned long * child;
> ++    register CARD64 * child;
> + 
> +     for (top = w; XtParent(top) != NULL; top = XtParent(top)) {}
> + 

-- 
Matthieu Herrb

Reply via email to