-
Notifications
You must be signed in to change notification settings - Fork 129
Description
Hi there,
Fedora has recently moved to GCC 15 in its development (rawhide) release, and this has broken the Neuron build for us because GCC 15 now defaults to C23 as the default standard, and this changes what function declarations without parameters means---it no longer means "anything", rather, it means "void".
https://fedoraproject.org/wiki/Changes/GNUToolchainF42
https://gcc.gnu.org/gcc-15/porting_to.html#c23
I patched quite a few bits to get Neuron to build downstream now. We're still at the stable releases, though, so we're at 8.2.6. A lot of the patching seemed to be done to legacy code which I see is no longer used in version 9. So we'll hopefully be able to drop a lot of these patches when version 9 comes out.
Would it be possible to start testing v9 with newer versions of GCC too, perhaps not in a release blocking way, just so we're prepared for such changes?
All my patches for our downstream build live here:
https://src.fedoraproject.org/rpms/neuron/tree/rawhide
or on this branch in my fork:
https://github.com/sanjayankur31/nrn/tree/version-8.2.6-fedora
Note that this also includes other downstream tweaks to build the rpms as per Fedora packaging guidelines, so not all the patches are GCC 15 related.
I'm now tinkering with code to generate nmodl, because the attached generated C file will no longer work with GCC 15, for example because the static int kin(); declaration on line 285 now means static int kin(void); and that clashes with the function declaration later where the various parameters are set. The mod file is here: