Clang 16 has a new error about incompatible function types, which shows up when building net/rubygem-grpc: rb_channel.c:764:40: error: incompatible function pointer types passing 'VALUE (VALUE)' (aka 'unsigned long (unsigned long)') to parameter of type 'VALUE (*)(void *)' (aka 'unsigned long (*)(void *)') [-Wincompatible-function-pointer-types] background_thread = rb_thread_create(run_poll_channels_loop, NULL); ^~~~~~~~~~~~~~~~~~~~~~ /usr/local/include/ruby-3.1/ruby/internal/intern/thread.h:190:32: note: passing argument to parameter 'f' here VALUE rb_thread_create(VALUE (*f)(void *g), void *g); ^ Fix it by adjusting the parameters for the thread callback functions.
Created attachment 242301 [details] net/rubygem-grpc: fix build with clang 16
LGTM. Please add the patch as patch-clang16. Thanks.
A commit in branch main references this bug: URL: https://cgit.FreeBSD.org/ports/commit/?id=8759687fa0d46934e4d3af6b844adb56607b4689 commit 8759687fa0d46934e4d3af6b844adb56607b4689 Author: Dimitry Andric <dim@FreeBSD.org> AuthorDate: 2023-05-20 20:06:45 +0000 Commit: Dimitry Andric <dim@FreeBSD.org> CommitDate: 2023-05-23 14:15:21 +0000 net/rubygem-grpc: fix build with clang 16 Clang 16 has a new error about incompatible function types, which shows up when building net/rubygem-grpc: rb_channel.c:764:40: error: incompatible function pointer types passing 'VALUE (VALUE)' (aka 'unsigned long (unsigned long)') to parameter of type 'VALUE (*)(void *)' (aka 'unsigned long (*)(void *)') [-Wincompatible-function-pointer-types] background_thread = rb_thread_create(run_poll_channels_loop, NULL); ^~~~~~~~~~~~~~~~~~~~~~ /usr/local/include/ruby-3.1/ruby/internal/intern/thread.h:190:32: note: passing argument to parameter 'f' here VALUE rb_thread_create(VALUE (*f)(void *g), void *g); ^ Fix it by adjusting the parameters for the thread callback functions. PR: 271540 Approved by: sunpoet (maintainer) MFH: 2023Q2 net/rubygem-grpc/Makefile | 1 + net/rubygem-grpc/files/patch-clang16 (new) | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+)