On 25.11.24 11:01, Thomas Munro wrote:
>> I have checked that with this patch and the two above (well, one is just
>> to remove a warning), you can get PG16 and up building cleanly with
>> gcc-14 -std=gnu23.
>
> Thanks. I pushed the <stdbool.h> thing, which didn't require going
> back very far.
>
>> Before that, you get a ton of warnings and errors related to the node
>> tree walker routines. This is presumably related to commit 1c27d16e6e5.
>
> Alligator is now getting past the bool troubles and reaching that
> stuff. I was expecting it to be green in master. It's OK on my
> slightly older "gcc version 15.0.0 20241110 (experimental) (FreeBSD
> Ports Collection)" with -std=gnu23, but alligator now shows a weird
> error with tsearch data types. Something about flexible array members
> (casting from non-flex to flex?, without saying where the cast is?),
> but IDK, it's an internal error asking for a bug to be filed, not a
> user-facing one.
>
> This might be relevant: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113688
>
>> Going further back, the bool patch proposed here assumes that stdbool.h
>> exists unconditionally, which is C99, which is not the baseline for
>> older branches. I think for those it's probably best to leave it alone
>> and just use gcc-15 -std=gnu89 or whatever.
>
> There's only one C89 branch that knows about <stdbool.h>:
> REL_11_STABLE. That's recent enough that it's still easy to work
> with, so I just changed it to use AC_CHECK_HEADER instead. In other
> words, we've removed the bogus "conforms" check. Whether you still
> need a presence check depends on the C version, and only for 11 is the
> answer yes. Obviously nobody is really going to build with an actual
> C89 system so the presence check is never going to fail, but it would
> be weird on principle to suddenly require a C99 thing...
Where does this leave us regarding backpatching the other two
C23-related patches? The node tree walker issue looks like a very hard
barrier. I don't want to spend too much effort backpatching anything to
ancient version if there's little hope of getting the whole thing working.