Re: Build failure with GCC 15 (defaults to -std=gnu23)
От | Peter Eisentraut |
---|---|
Тема | Re: Build failure with GCC 15 (defaults to -std=gnu23) |
Дата | |
Msg-id | 485f5982-18c5-4210-9c7d-7c05453f7033@eisentraut.org обсуждение исходный текст |
Ответ на | Re: Build failure with GCC 15 (defaults to -std=gnu23) (Thomas Munro <thomas.munro@gmail.com>) |
Ответы |
Re: Build failure with GCC 15 (defaults to -std=gnu23)
|
Список | 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 по дате отправления: