c23 is more strict than previous standards incompatible pointer use detected Reproducible: Always Steps to Reproduce: emerge -1 =gcc-15.0.0_pre20241117-r2 USE="foomatic" emerge -1 =cups-filsters-2.0.1 Actual Results: filter/foomatic-rip/pdf.c:79:32: error: passing argument 2 of ‘start_process’ from incompatible pointer type [-Wincompatible-pointer-types] 79 | kid3 = start_process("kid3", exec_kid3, (void *)cmd, NULL, NULL); | ^~~~~~~~~ | | | int (*)(FILE *, FILE *, void *) In file included from filter/foomatic-rip/pdf.c:16: filter/foomatic-rip/process.h:21:45: note: expected ‘int (*)(void)’ but argument is of type ‘int (*)(FILE *, FILE *, void *)’ 21 | pid_t start_process(const char *name, int (*proc_func)(), void *user_arg, | ~~~~~~^~~~~~~~~~~~ filter/foomatic-rip/renderer.c: In function ‘exec_kid3’: filter/foomatic-rip/renderer.c:456:32: error: passing argument 2 of ‘start_process’ from incompatible pointer type [-Wincompatible-pointer-types] 456 | kid4 = start_process("kid4", exec_kid4, NULL, &kid4in, NULL); | ^~~~~~~~~ | | | int (*)(FILE *, FILE *, void *) In file included from filter/foomatic-rip/renderer.c:21: filter/foomatic-rip/process.h:21:45: note: expected ‘int (*)(void)’ but argument is of type ‘int (*)(FILE *, FILE *, void *)’ 21 | pid_t start_process(const char *name, int (*proc_func)(), void *user_arg, | ~~~~~~^~~~~~~~~~~~ make[2]: *** [Makefile:2047: filter/foomatic-rip/foomatic_rip-pdf.o] Error 1 make[2]: *** Waiting for unfinished jobs.... make[2]: *** [Makefile:2089: filter/foomatic-rip/foomatic_rip-renderer.o] Error 1 filter/foomatic-rip/postscript.c: In function ‘get_renderer_handle’: filter/foomatic-rip/postscript.c:1444:32: error: passing argument 2 of ‘start_process’ from incompatible pointer type [-Wincompatible-pointer-types] 1444 | kid3 = start_process("kid3", exec_kid3, (void *)cmdline->data, &kid3in, NULL); | ^~~~~~~~~ | | | int (*)(FILE *, FILE *, void *) In file included from filter/foomatic-rip/postscript.c:17: filter/foomatic-rip/process.h:21:45: note: expected ‘int (*)(void)’ but argument is of type ‘int (*)(FILE *, FILE *, void *)’ 21 | pid_t start_process(const char *name, int (*proc_func)(), void *user_arg, | ~~~~~~^~~~~~~~~~~~ make[2]: *** [Makefile:2061: filter/foomatic-rip/foomatic_rip-postscript.o] Error 1 filter/foomatic-rip/process.c:231:1: error: conflicting types for ‘start_process’; have ‘pid_t(const char *, int (*)(FILE *, FILE *, void *), void *, FILE **, FILE **)’ {aka ‘int(const char *, int (*)(FILE *, FILE *, void *), void *, FILE **, FILE **)’} 231 | start_process(const char *name, | ^~~~~~~~~~~~~ In file included from filter/foomatic-rip/process.c:14: filter/foomatic-rip/process.h:21:7: note: previous declaration of ‘start_process’ with type ‘pid_t(const char *, int (*)(void), void *, FILE **, FILE **)’ {aka ‘int(const char *, int (*)(void), void *, FILE **, FILE **)’} 21 | pid_t start_process(const char *name, int (*proc_func)(), void *user_arg, | ^~~~~~~~~~~~~ builds successfully with CFLAGS="${CFLAGS} -std=gnu17"
Created attachment 910434 [details] emerge --info
Created attachment 910435 [details] build failure log