[Rd] Build error with gcc 15
Prof Brian Ripley
r|p|ey @end|ng |rom @t@t@@ox@@c@uk
Wed Jan 15 20:29:02 CET 2025
On 15/01/2025 16:06, Iñaki Ucar wrote:
> Dear R Core,
>
> GCC 15 is already in Fedora rawhide, because it will be part of the next
> release, Fedora 42. R 4.4.2 fails to build with the following error [1]:
>
>> sys-std.c:1189:1: warning: ‘noreturn’ attribute ignored [-Wattributes]
>> 1189 | void Rstd_CleanUp(SA_TYPE saveact, int status, int runLast)
>> | ^~~~
>> sys-std.c:1189:1: error: expected identifier or ‘(’ before ‘void’
You failed to say that GCC 15 defaults to C23 (and they have not yet
documented that).
>
> I've seen some references to this in the source code, so this may be fixed
> in R devel. If this is the case, it would be great if you could provide a
> patch that I can apply to v4.4.2 until the next R release (or maybe I
> should just specify an older C standard?).
Look at the definition of NORET in R_ext/Error.h. You want r87411;
r87411 | ripley | 2024-12-01 10:11:10 +0000 (Sun, 01 Dec 2024) | 1 line
gcc pre-15 does not yet support [[noreturn]]
GCC 15 is not even at RC stage, and this is one of many undocumented
changes -- so they have not even got to the documentation-fixing stage.
This is a GCC issue -- both LLVM and Apple clang build R-patched in C23
mode.
We will port this to R-patched, unless GCC 15 is fixed before its or
R-patched's release.
--
Brian D. Ripley, ripley using stats.ox.ac.uk
Emeritus Professor of Applied Statistics, University of Oxford
More information about the R-devel
mailing list