Clang 16 has a new error about incompatible function types, which shows up when building x11-toolkits/p5-Tk: ./Xlib.t:334:14: error: incompatible function pointer types initializing 'KeySym (*)(Display *, unsigned int, int)' (aka 'unsigned long (*)(struct _XDisplay *, unsigned int, int)') with an expression of type 'KeySym (Display *, KeyCode, int)' (aka 'unsigned long (struct _XDisplay *, unsigned char, int)') [-Wincompatible-function-pointer-types] VFUNC(KeySym,XKeycodeToKeysym,V_XKeycodeToKeysym,_ANSI_ARGS_((Display *, unsigned int, int))) ^~~~~~~~~~~~~~~~ Indeed, the XKeycodeToKeysum function takes a 'KeyCode' as its second parameter. Patch Xlib.t to make it so.
Created attachment 242288 [details] x11-toolkits/p5-Tk: fix build with clang 16
Approved, please commit.
A commit in branch main references this bug: URL: https://cgit.FreeBSD.org/ports/commit/?id=ecedf2f3cd2c933fb5df179f174c704c89cf1f31 commit ecedf2f3cd2c933fb5df179f174c704c89cf1f31 Author: Dimitry Andric <dim@FreeBSD.org> AuthorDate: 2023-05-19 20:32:01 +0000 Commit: Dimitry Andric <dim@FreeBSD.org> CommitDate: 2023-05-19 22:16:54 +0000 x11-toolkits/p5-Tk: fix build with clang 16 Clang 16 has a new error about incompatible function types, which shows up when building x11-toolkits/p5-Tk: ./Xlib.t:334:14: error: incompatible function pointer types initializing 'KeySym (*)(Display *, unsigned int, int)' (aka 'unsigned long (*)(struct _XDisplay *, unsigned int, int)') with an expression of type 'KeySym (Display *, KeyCode, int)' (aka 'unsigned long (struct _XDisplay *, unsigned char, int)') [-Wincompatible-function-pointer-types] VFUNC(KeySym,XKeycodeToKeysym,V_XKeycodeToKeysym,_ANSI_ARGS_((Display *, unsigned int, int))) ^~~~~~~~~~~~~~~~ Indeed, the XKeycodeToKeysum function takes a 'KeyCode' as its second parameter. Patch Xlib.t to make it so. PR: 271521 Approved by: pi (maintainer) MFH: 2023Q2 x11-toolkits/p5-Tk/Makefile | 1 + x11-toolkits/p5-Tk/files/patch-pTk_Xlib.t (new) | 11 +++++++++++ 2 files changed, 12 insertions(+)