On Wed, Jan 22, 2025 at 4:43 PM Chuck Anderson <cra@xxxxxx> wrote: > It looks like most (all?) perl XS packages ('C' implementations of Perl functions) are FTBFS with GCC 15. I'm trying to fix perl-Term-ReadLine-Gnu to be C23-compatible. The workaround is to add -std=gnu17 to the CFLAGS which can be done via OPTIMIZE for MakeMaker builds like this: > > /usr/bin/perl Makefile.PL INSTALLDIRS=vendor OPTIMIZE="$RPM_OPT_FLAGS -std=gnu17" NO_PACKLIST=1 NO_PERLLOCAL=1 > > but I don't really know how to fix these the "right" way: The issue is that "typedef int XFunction ();" used to say in C17 that an XFunction returned an int and took an undeclared number and type of parameters. With C23, that says that an XFunction takes zero parameters; i.e., it is equivalent to "typedef int XFunction (void);". Try this patch: --- Term-ReadLine-Gnu-1.46/Gnu.xs.orig 2023-07-01 03:13:00.000000000 -0600 +++ Term-ReadLine-Gnu-1.46/Gnu.xs 2025-01-22 16:55:10.392537797 -0700 @@ -613,16 +613,31 @@ enum { STARTUP_HOOK, EVENT_HOOK, GETC_FN SIG_EVT, INP_AVL, FN_STAT, TIMEOUT_EVENT, }; -typedef int XFunction (); +typedef int XFunction (...); static struct fn_vars { XFunction **rlfuncp; /* GNU Readline Library variable */ XFunction *defaultfn; /* default function */ XFunction *wrapper; /* wrapper function */ SV *callback; /* Perl function */ } fn_tbl[] = { - { &rl_startup_hook, NULL, startup_hook_wrapper, NULL }, /* 0 */ - { &rl_event_hook, NULL, event_hook_wrapper, NULL }, /* 1 */ - { &rl_getc_function, rl_getc, getc_function_wrapper, NULL }, /* 2 */ + { + (XFunction **)&rl_startup_hook, /* 0 */ + NULL, + (XFunction *)startup_hook_wrapper, + NULL + }, + { + (XFunction **)&rl_event_hook, /* 1 */ + NULL, + (XFunction *)event_hook_wrapper, + NULL + }, + { + (XFunction **)&rl_getc_function, /* 2 */ + (XFunction *)rl_getc, + (XFunction *)getc_function_wrapper, + NULL + }, { (XFunction **)&rl_redisplay_function, /* 3 */ (XFunction *)rl_redisplay, @@ -677,7 +692,12 @@ static struct fn_vars { (XFunction *)history_inhibit_expansion_function_wrapper, NULL }, - { &rl_pre_input_hook, NULL, pre_input_hook_wrapper, NULL }, /* 12 */ + { + (XFunction **)&rl_pre_input_hook, /* 12 */ + NULL, + (XFunction *)pre_input_hook_wrapper, + NULL + }, { (XFunction **)&rl_completion_display_matches_hook, /* 13 */ NULL, -- Jerry James http://www.jamezone.org/ -- _______________________________________________ devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue