Re: Build failure with GCC 15 (defaults to -std=gnu23)
Peter Eisentraut <peter@eisentraut.org>
From: Peter Eisentraut <peter@eisentraut.org>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Thomas Munro <thomas.munro@gmail.com>, Sam James <sam@gentoo.org>,
pgsql-bugs@lists.postgresql.org
Date: 2024-11-21T07:23:05Z
Lists: pgsql-bugs
On 20.11.24 16:32, Tom Lane wrote: > Peter Eisentraut <peter@eisentraut.org> writes: >> Note that if we backpatch C23 support, we also need to backpatch at >> least commits a67a49648d9 and d2b4b4c2259. > > Yeah. Our normal theory for this kind of thing is "people are > likely to build our old branches with modern toolchains", so > we are going to have to back-patch C23 compatibility sooner or > later. In fact, we'll have to back-patch to 9.2, or else > decide that those branches are unbuildable on modern platforms > and hence out of scope for compatibility testing. 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. Before that, you get a ton of warnings and errors related to the node tree walker routines. This is presumably related to commit 1c27d16e6e5. 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.
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