There is no comment on what is the issue here ...
whoops, accidentally hit submit before I had all the details tl;dr at least in gcc 14.1 [but probably elsewhere] in libgo/runtime/runtime.h defines an enum of enum { true = 1, false = 0, }; which means that it doesn't compile under -std=gnu2x similar to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114216 and more importantly - it's a header, which means *any code that uses it* also won't build. it's an easy enough fix add an if guard #if __STDC_VERSION__ <= 201710L enum { true = 1, false = 0, }; #endif this allows for runtime/runtime.h to be compliant with c23 and previous versions. testing the fix now
Considering this file is written in C11 (or C17), the changes does not need to happen right away.
(In reply to jeffrey.cliff from comment #2) > and more importantly - it's a header, which means *any code that uses it* > also won't build. Considering it is an internal header to libgo and not installed, it just means any code that uses it must be written in C11/C17 rather than C23.
Also it is not just true/false. It is: typedef _Bool bool; The rest looks ok too.
Should be fixed on tip by 678dc5e85053f1a1ca76997eec95ba8823bb6830. Thanks.