Re: glib2 deprecated declarations failing on clang16

From: Nuno Teixeira <eduardo_at_freebsd.org>
Date: Tue, 04 Jul 2023 14:02:42 UTC
So what could be done here?

Suppress warnings at port or something need to be fixed at devel/glib20?

Thanks,

Dimitry Andric <dim@freebsd.org> escreveu no dia terça, 4/07/2023 à(s)
14:56:

> On 4 Jul 2023, at 14:37, Nuno Teixeira <eduardo@freebsd.org> wrote:
> >
> > I'm getting build errors from current with www/bluefish about deprecated
> glib2 declarations and causing build to fail with clang16:
> > ---
> > /usr/local/include/glib-2.0/glib/gmacros.h:1262:37: note: expanded from
> macro 'G_DEPRECATED'
> > #define G_DEPRECATED __attribute__((__deprecated__))
> >                                     ^
> > mv -f .deps/bluefish.Tpo .deps/bluefish.Po
> > bftextview2_langmgr.c:2665:2: warning: 'g_thread_create_full' is
> deprecated: Use 'g_thread_new' instead [-Wdeprecated-declarations]
> >         g_thread_create_full(build_bflang2scan_thread, NULL, 0, FALSE,
> FALSE, G_THREAD_PRIORITY_LOW, &gerror);
> > ---
> >
> > Any help is welcome on finding out its cause.
> >
> > a related issue: https://github.com/PCSX2/pcsx2/issues/3315
> >
> > Build log:
> https://pkg-status.freebsd.org/beefy17/data/main-i386-default/pf46bd2c58425_s0631830a7a/logs/bluefish-2.2.14.log
>
> The actual error is an incompatible callback function signature:
>
> bftextview2_autocomp.c:432:2: error: incompatible function pointer types
> passing 'gboolean (GtkLabel *, gchar *, gpointer)' (aka 'int (struct
> _GtkLabel *, char *, void *)') to parameter of type 'GCallback' (aka 'void
> (*)(void)') [-Wincompatible-function-pointer-types]
> g_signal_connect(acw->reflabel, "activate-link",
> acw_label_active_link_lcb, acw);
>
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> /usr/local/include/glib-2.0/gobject/gsignal.h:515:59: note: expanded from
> macro 'g_signal_connect'
> g_signal_connect_data ((instance), (detailed_signal), (c_handler), (data),
> NULL, (GConnectFlags) 0)
> ^~~~~~~~~~~
> /usr/local/include/glib-2.0/gobject/gsignal.h:411:25: note: passing
> argument to parameter 'c_handler' here
> GCallback c_handler,
> ^
>
> I have seen these more often with glib-based applications. In some cases
> it is feasible to fix the callback function to have the correct
> signature, in other cases you can slap a cast in place. Or, if the
> affected code is vala-generated (also happens), the big hammer is to
> suppress the warning(s).
>
> -Dimitry
>
>

-- 
Nuno Teixeira
FreeBSD Committer (ports)