Thread: 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)
| ^~~~~~~~~~~~~~~~~~~~~~~~
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 > 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) > | ^~~~~~~~~~~~~~~~~~~~~~~~ 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
Re: problems with extensions compiling after upgrade to fc42 (and gcc15)
From
Peter Eisentraut
Date:
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 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 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 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
This will be fixed in the next minor releases. See commit f00c401c65a
for example.
ok, thank you for info
Regards
Pavel