Index | Thread | Search

From:
Theo Buehler <tb@theobuehler.org>
Subject:
[llvm22] x11/motif vs CARD64
To:
ports@openbsd.org
Cc:
matthieu@openbsd.org
Date:
Wed, 20 May 2026 14:02:30 +0200

Download raw body.

Thread
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:

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)) {}
+