Re: Build failure with GCC 15 (defaults to -std=gnu23) - Mailing list pgsql-bugs

From Peter Eisentraut
Subject Re: Build failure with GCC 15 (defaults to -std=gnu23)
Date
Msg-id 485f5982-18c5-4210-9c7d-7c05453f7033@eisentraut.org
Whole thread Raw
In response to Re: Build failure with GCC 15 (defaults to -std=gnu23)  (Thomas Munro <thomas.munro@gmail.com>)
Responses Re: Build failure with GCC 15 (defaults to -std=gnu23)
List pgsql-bugs
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.



pgsql-bugs by date:

Previous
From: Tom Lane
Date:
Subject: Re: Detection of hadware feature => please do not use signal
Next
From: Tom Lane
Date:
Subject: Re: Detection of hadware feature => please do not use signal