Re: Build failure with GCC 15 (defaults to -std=gnu23)
Thomas Munro <thomas.munro@gmail.com>
From: Thomas Munro <thomas.munro@gmail.com>
To: Peter Eisentraut <peter@eisentraut.org>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Sam James <sam@gentoo.org>,
pgsql-bugs@lists.postgresql.org
Date: 2024-11-25T19:51:21Z
Lists: pgsql-bugs
On Tue, Nov 26, 2024 at 4:57 AM Peter Eisentraut <peter@eisentraut.org> wrote: > 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. Oh. Yeah. 1c27d16e6e5 was not back-patchable. And what f9a56e72 did in 15 and older doesn't seem to have any equivalent in C23, at least without going way overboard. -Wdeprecated-non-prototype was recognising a category of function type that no longer exists, so the code now falls into the more general case of -Wincompatible-pointer-types in C23, which you certainly wouldn't want to suppress. So perhaps we actually can't make any branch older than PostgreSQL 16 into a valid C23 program, and if that's true, I needn't have back-patched the <stdbool.h> change any further back than 16. Perhaps we should reconsider that, then. And if it can't be all the back-branches, we could even decide to focus just on master. Where do we want our C23 support to begin? Coincidental observation: We added -Wdeprecated-non-prototype back when Clang 15 invented it, but I noticed that GCC 15 has just now added it too[1], so alligator started detecting and using that in REL_15_STABLE last week. Of course it doesn't help once you're talking C23. [1] https://gcc.gnu.org/git/gitweb.cgi?p=gcc.git;h=701d8e7e60b85809cae348c1e9edb3b0f4924325 [2] https://buildfarm.postgresql.org/cgi-bin/show_stage_log.pl?nm=alligator&dt=2024-11-18%2019%3A23%3A30&stg=configure
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Require sizeof(bool) == 1.
- 97525bc5c8ff 18.0 landed
-
If a C23 compiler is detected, try asking for C17.
- f4e8f137bfb0 10 (unreleased) landed
- 0c7171b32e64 9.2 (unreleased) landed
- 102be6634e6f 9.3 (unreleased) landed
- b1b8b8e6f141 9.4 (unreleased) landed
- 5b40ce749c6f 9.5 (unreleased) landed
- 70cf253d18da 9.6 (unreleased) landed
- 170e416034ec 11 (unreleased) landed
- 3f302f0ed06f 12 (unreleased) landed
- 59ea17c43c6c 13.19 landed
- 1fd57e5bbf87 14.16 landed
- f00c401c65af 15.11 landed
-
Fix C23 compiler warning
- f7a929a007e6 16.7 landed
- f3834c12afd8 17.3 landed
-
Rename C23 keyword
- ae145d1de677 16.7 landed
- ad89c8bda1f0 17.3 landed
-
Assume that <stdbool.h> conforms to the C standard.
- bc5a4dfcf739 18.0 landed
- 0813a5e69186 17.3 landed
- 0f6d902308a8 16.7 landed
- 94817d9d94d0 15.11 landed
- e0874080c472 14.16 landed
- 13242b64e15d 13.19 landed
- 15a89e2cc501 12 (unreleased) landed
- 0305dd3adef2 11 (unreleased) landed
-
Revise tree-walk APIs to improve spec compliance & silence warnings.
- 1c27d16e6e5c 16.0 cited