On Mo, 17 Feb 2025, Matthias Klose wrote:
> Dialog.c:138:32: error: initialization of ‘void (*)(struct _WidgetRec *,
> struct _WidgetRec *, struct <anonymous> *, Cardinal *)’ {aka ‘void (*)(struct
> _WidgetRec *, struct _WidgetRec *, struct <anonymous> *, unsigned int *)’}
> from incompatible pointer type ‘void (*)(void)’ [-Wincompatible-pointer-types]
> 138 | /* initialize */ ConstraintInitialize,
> | ^~~~~~~~~~~~~~~~~~~~
> Dialog.c:138:32: note: (near initialization for
> ‘dialogClassRec.constraint_class.initialize’)
> Dialog.c:87:27: note: ‘ConstraintInitialize’ declared here
> 87 | static void Initialize(), ConstraintInitialize(),
> CreateDialogValueWidget(),
> | ^~~~~~~~~~~~~~~~~~~~
It seems, that these GCC-15 issues are already fixed in current
upstream version 1.6.6, available from:
https://gitlab.freedesktop.org/xorg/lib/libxaw3d
https://www.x.org/releases/individual/lib/libXaw3d-1.6.6.tar.xz
I did a quick PoC, which showed that this can be built with GCC-15 (in
contrast to 1.5+F-2).
The problem is, that 1.6.6 diverted from 1.5+F-2 quite a lot (uses
autoconf and pkg-config instead of imake in combination with a new
directory structure), so it's not that trivial to say, what Debian
patches need to be merged into 1.6.6 or are no longer needed).
An alternative way would be back porting tons of patches that "Fix
old-style function definitions" (from 2011), maybe these fix the
GCC-15 issues. But from my point of view, stepping forward to 1.6.6
looks more promising...
I didn't find a hint why Debian stays with 1.5 instead of following
the upsgream 1.6.x updates, that started based on 1.5E in 2011 (nearly
all other distributions like Fedora, Arch, SuSE already use 1.6.x).
Greetings
Roland