From: | Peter Eisentraut <peter(at)eisentraut(dot)org> |
---|---|
To: | Thomas Munro <thomas(dot)munro(at)gmail(dot)com> |
Cc: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Sam James <sam(at)gentoo(dot)org>, pgsql-bugs(at)lists(dot)postgresql(dot)org |
Subject: | Re: Build failure with GCC 15 (defaults to -std=gnu23) |
Date: | 2024-11-25 15:57:22 |
Message-ID: | 485f5982-18c5-4210-9c7d-7c05453f7033@eisentraut.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | 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.
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2024-11-25 17:53:58 | Re: Detection of hadware feature => please do not use signal |
Previous Message | Tom Lane | 2024-11-25 15:41:37 | Re: Detection of hadware feature => please do not use signal |