problems with extensions compiling after upgrade to fc42 (and gcc15)
Hi
I found a problem with compilation of plpgsql_check when I upgraded my
fedora.
plpgsql_check cannot be compiled (against PostgreSQL 15-). The compilation
fails
rc/expr_walk.c:84:66: warning: passing argument 2 of ‘query_tree_walker’
from incompatible pointer type [-Wincompatible-pointer-types]
84 |
detect_dependency_walker,
|
^~~~~~~~~~~~~~~~~~~~~~~~
| |
|
_Bool (*)(Node *, void *)
In file included from src/expr_walk.c:14:
/usr/local/pgsql/13/include/server/nodes/nodeFuncs.h:137:52: note: expected
‘_Bool (*)(void)’ but argument is of type ‘_Bool (*)(Node *, void *)’
137 | extern bool query_tree_walker(Query *query, bool (*walker) (),
| ~~~~~~~^~~~~~~~~~
src/expr_walk.c:43:1: note: ‘detect_dependency_walker’ declared here
43 | detect_dependency_walker(Node *node, void *context)
| ^~~~~~~~~~~~~~~~~~~~~~~~
It is strange, so the source code of Postgres is compiled without problems.
The workaround is pushing to Makefiie
override CFLAGS += -Wno-error=incompatible-pointer-types
Regards
Pavel
On Wed, Feb 05, 2025 at 09:31:27PM +0100, Pavel Stehule wrote:
I found a problem with compilation of plpgsql_check when I upgraded my
fedora.plpgsql_check cannot be compiled (against PostgreSQL 15-). The compilation
failsrc/expr_walk.c:84:66: warning: passing argument 2 of `query_tree_walker�
from incompatible pointer type [-Wincompatible-pointer-types]
84 |
detect_dependency_walker,
|
^~~~~~~~~~~~~~~~~~~~~~~~
| |
|
_Bool (*)(Node *, void *)
In file included from src/expr_walk.c:14:
/usr/local/pgsql/13/include/server/nodes/nodeFuncs.h:137:52: note: expected
`_Bool (*)(void)� but argument is of type `_Bool (*)(Node *, void *)�
137 | extern bool query_tree_walker(Query *query, bool (*walker) (),
| ~~~~~~~^~~~~~~~~~
src/expr_walk.c:43:1: note: `detect_dependency_walker� declared here
43 | detect_dependency_walker(Node *node, void *context)
| ^~~~~~~~~~~~~~~~~~~~~~~~
IIRC gcc 15 uses C23 by default, and this looks similar to the problem
fixed in commit d2b4b4c. I think commit 1c27d16 unintentionally fixed this
for v16 and above.
--
nathan
On 05.02.25 21:31, Pavel Stehule wrote:
I found a problem with compilation of plpgsql_check when I upgraded my
fedora.plpgsql_check cannot be compiled (against PostgreSQL 15-). The
compilation failsrc/expr_walk.c:84:66: warning: passing argument 2 of ‘query_tree_walker’
from incompatible pointer type [-Wincompatible-pointer-types]
84 |
detect_dependency_walker,
|
^~~~~~~~~~~~~~~~~~~~~~~~
| |
|
_Bool (*)(Node *, void *)
In file included from src/expr_walk.c:14:
/usr/local/pgsql/13/include/server/nodes/nodeFuncs.h:137:52: note:
expected ‘_Bool (*)(void)’ but argument is of type ‘_Bool (*)(Node *,
void *)’
137 | extern bool query_tree_walker(Query *query, bool (*walker) (),
| ~~~~~~~^~~~~~~~~~
src/expr_walk.c:43:1: note: ‘detect_dependency_walker’ declared here
43 | detect_dependency_walker(Node *node, void *context)
| ^~~~~~~~~~~~~~~~~~~~~~~~It is strange, so the source code of Postgres is compiled without problems.
The workaround is pushing to Makefiie
override CFLAGS += -Wno-error=incompatible-pointer-types
This will be fixed in the next minor releases. See commit f00c401c65a
for example.
st 5. 2. 2025 v 21:55 odesílatel Peter Eisentraut <peter@eisentraut.org>
napsal:
On 05.02.25 21:31, Pavel Stehule wrote:
I found a problem with compilation of plpgsql_check when I upgraded my
fedora.plpgsql_check cannot be compiled (against PostgreSQL 15-). The
compilation failsrc/expr_walk.c:84:66: warning: passing argument 2 of ‘query_tree_walker’
from incompatible pointer type [-Wincompatible-pointer-types]
84 |
detect_dependency_walker,
|
^~~~~~~~~~~~~~~~~~~~~~~~
||
|
_Bool (*)(Node *, void *)
In file included from src/expr_walk.c:14:
/usr/local/pgsql/13/include/server/nodes/nodeFuncs.h:137:52: note:
expected ‘_Bool (*)(void)’ but argument is of type ‘_Bool (*)(Node *,
void *)’
137 | extern bool query_tree_walker(Query *query, bool (*walker) (),
| ~~~~~~~^~~~~~~~~~
src/expr_walk.c:43:1: note: ‘detect_dependency_walker’ declared here
43 | detect_dependency_walker(Node *node, void *context)
| ^~~~~~~~~~~~~~~~~~~~~~~~It is strange, so the source code of Postgres is compiled without
problems.
The workaround is pushing to Makefiie
override CFLAGS += -Wno-error=incompatible-pointer-types
This will be fixed in the next minor releases. See commit f00c401c65a
for example.
ok, thank you for info
Regards
Pavel