Re: Build failure with GCC 15 (defaults to -std=gnu23)
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Thomas Munro <thomas.munro@gmail.com>
Cc: Peter Eisentraut <peter@eisentraut.org>, Sam James <sam@gentoo.org>,
pgsql-bugs@lists.postgresql.org
Date: 2024-11-25T20:07:03Z
Lists: pgsql-bugs
Thomas Munro <thomas.munro@gmail.com> writes: > 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? Unless somebody has a better idea than 1c27d16e6e5, it would seem reasonable to say that we'll support C23 in v16 and later, but to build an older branch you have to back off to an older C version. I don't feel a need to revert those <stdbool.h> changes. If nothing else, that saved a bit of configure runtime. If we leave it like this, alligator will need some configuration adjustments, and so will other BF animals when they migrate to new gcc, and so will individual hackers when they're trying to build old branches. A possible compromise to reduce the manual pain level could be to adjust configure to add "-std=gnu99" or so to CFLAGS in the pre-v16 branches, if the compiler accepts that. (OTOH, maybe that'd cause pain for some extensions?) regards, tom lane
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