Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 944074 - =net-print/cups-filters-2.0.1 fails compile with c23/gcc-15.0.0_pre20241117-r2: pdf.c:79:32: error: passing argument 2 of ‘start_process’ from incompatible pointer type
Summary: =net-print/cups-filters-2.0.1 fails compile with c23/gcc-15.0.0_pre20241117-r...
Status: CONFIRMED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Printing Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: c23-porting
  Show dependency tree
 
Reported: 2024-11-20 05:38 UTC by tdr
Modified: 2024-11-20 06:36 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
emerge --info (tdr-emerge--info.txt,6.30 KB, text/plain)
2024-11-20 05:39 UTC, tdr
Details
build failure log (cups-filters-2.0.1.buid.log,25.44 KB, text/plain)
2024-11-20 05:39 UTC, tdr
Details

Note You need to log in before you can comment on or make changes to this bug.
Description tdr 2024-11-20 05:38:54 UTC
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"
Comment 1 tdr 2024-11-20 05:39:19 UTC
Created attachment 910434 [details]
emerge --info
Comment 2 tdr 2024-11-20 05:39:57 UTC
Created attachment 910435 [details]
build failure log