From: Matthieu Herrb Subject: Re: [llvm22] x11/motif vs CARD64 To: Theo Buehler Cc: ports@openbsd.org Date: Wed, 20 May 2026 15:44:00 +0200 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