I'm experimentally rebuilding rawhide with the not-yet-released GCC 15 to see if anything breaks, and to help write the porting guide. See https://fedoraproject.org/wiki/User:Dmalcolm/gcc-15 My test build with GCC 15 failed: https://copr.fedorainfracloud.org/coprs/dmalcolm/gcc-15-smoketest-3.failed/build/8476105/ whereas my test build with GCC 14 succeeded: https://copr.fedorainfracloud.org/coprs/dmalcolm/gcc-15-smoketest-3.failed.checker/build/8477675/ Looking at the failure logs e.g. https://download.copr.fedorainfracloud.org/results/dmalcolm/gcc-15-smoketest-3.failed/fedora-rawhide-x86_64/08476105-aubit4gl/builder-live.log.gz I see: json.c:435:6: error: conflicting types for ‘json_validate’; have ‘int(const char *)’ 435 | bool json_validate(const char *json) | ^~~~~~~~~~~~~ In file included from json.c:24: /builddir/build/BUILD/aubit4gl-1.6.1.p4-build/aubit4glsrc/incl/json.h:77:13: note: previous declaration of ‘json_validate’ with type ‘_Bool(const char *)’ 77 | bool json_validate (const char *json); | ^~~~~~~~~~~~~ This is probably due to GCC 15 now defaulting to -std=gnu23, whereas GCC 14 defaulted to -std=gnu17, and C23 is both (a) stricter about function prototypes than C17 and (b) "bool" is a keyword; I'm not quite sure which is the issue here; sorry; looks like "bool" is "_Bool" in one place and "int" in another, if I'm reading the error correctly. Reproducible: Always
The error is with function json_validate, which is only found in header aubit4glsrc/incl/a4gl_libaubit4gl.h and aubit4glsrc/lib/libaubit4gl/json.c source file. I can make a change to the source, what change do you think is needed to fix this?
E.g. compilers/xgen/main.c fprintf(hsf,"#ifndef bool\n"); fprintf (hsf, "#define bool int\n"); fprintf(hsf,"#endif\n"); is not correct for C23, in C23 bool is a keyword, not a macro, and shouldn't be redefined. You could perhaps use fprintf(hsf,"#if !defined(bool) && __STDC_VERSION__ < 202311L\n"); instead of the first line. Ditto compilers/xgen_new/dump.c. lib/extra_libs/infx_dump_screen/fgl_prtscr.c then has #define bool char instead.
The code changes have been made upstream. Does it compile using this source rpm now with GCC 15? https://download.copr.fedorainfracloud.org/results/stansoft/aubit4gl/fedora-rawhide-x86_64/08499618-aubit4gl/aubit4gl-1.6.1.p5-1.fc42.src.rpm
You can try yourself... fedpkg build --scratch --target=f42-build-side-103300
It builds successfully with GCC 15 using: fedpkg build --scratch --target=f42-build-side-103300
This passed the mass rebuild: https://koji.fedoraproject.org/koji/buildinfo?buildID=2617358