problems with extensions compiling after upgrade to fc42 (and gcc15)

Started by Pavel Stehule11 months ago4 messages
#1Pavel Stehule
pavel.stehule@gmail.com

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

#2Nathan Bossart
nathandbossart@gmail.com
In reply to: Pavel Stehule (#1)
Re: problems with extensions compiling after upgrade to fc42 (and gcc15)

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

#3Peter Eisentraut
peter@eisentraut.org
In reply to: Pavel Stehule (#1)
Re: problems with extensions compiling after upgrade to fc42 (and gcc15)

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.

#4Pavel Stehule
pavel.stehule@gmail.com
In reply to: Peter Eisentraut (#3)
Re: problems with extensions compiling after upgrade to fc42 (and gcc15)

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