Hi, Thank you for working on this!
On Fri, 28 Nov 2025 at 17:03, Miłosz Bieniek <[email protected]> wrote: > > pt., 28 lis 2025 o 12:53 Peter Eisentraut <[email protected]> napisał(a): > > > > On 27.11.25 10:28, Miłosz Bieniek wrote: > > > While reviewing a patch I noticed that we have a `make -s headerscheck` > > > but there is no equivalent in meson. > > > I prepared a small patch that adds `headerscheck` and `cpluspluscheck` > > > targets. > > > > This would be good to have, but I don't think your patch works. It > > seems you need to add the srcdir and builddir command-line arguments to > > the invocations. > > > > I think you are right. I added srcdir and builddir arguments. The headerscheck script pulls some information from Makefile.global after the configure [1] but meson does not generate a full version of Makefile.global [2], so it does not have the required information to check perl and python headers. If you run 'meson compile headerscheck', you get errors like: In file included from /home/nbyavuz/Desktop/projects/postgres/src/pl/plperl/plperl.h:25, from /tmp/headerscheck.YxsZhn/test.c:2: /home/nbyavuz/Desktop/projects/postgres/src/pl/plperl/plperl_system.h:85:10: fatal error: EXTERN.h: No such file or directory 85 | #include <EXTERN.h> | ^~~~~~~~~~ compilation terminated. In file included from /home/nbyavuz/Desktop/projects/postgres/src/pl/plpython/plpython.h:39, from /home/nbyavuz/Desktop/projects/postgres/src/pl/plpython/plpy_plpymodule.h:8, from /tmp/headerscheck.YxsZhn/test.c:2: /home/nbyavuz/Desktop/projects/postgres/src/pl/plpython/plpython_system.h:50:10: fatal error: Python.h: No such file or directory 50 | #include <Python.h> | ^~~~~~~~~~ compilation terminated. ----- [1.1] src/tools/pginclude/headerscheck # Needs to be run after configuring and creating all generated headers. # It's advisable to configure --with-perl --with-python, else you're # likely to get errors from associated headers. [1.2] src/tools/pginclude/headerscheck # Pull some info from configure's results. MGLOB="$builddir/src/Makefile.global" CPPFLAGS=`sed -n 's/^CPPFLAGS[ ]*=[ ]*//p' "$MGLOB"` CFLAGS=`sed -n 's/^CFLAGS[ ]*=[ ]*//p' "$MGLOB"` ICU_CFLAGS=`sed -n 's/^ICU_CFLAGS[ ]*=[ ]*//p' "$MGLOB"` CC=`sed -n 's/^CC[ ]*=[ ]*//p' "$MGLOB"` CXX=`sed -n 's/^CXX[ ]*=[ ]*//p' "$MGLOB"` PG_SYSROOT=`sed -n 's/^PG_SYSROOT[ ]*=[ ]*//p' "$MGLOB"` perl_includespec=`sed -n 's/^perl_includespec[ ]*=[ ]*//p' "$MGLOB"` python_includespec=`sed -n 's/^python_includespec[ ]*=[ ]*//p' "$MGLOB"` [2] src/meson.build makefile_global = configure_file( input: 'Makefile.global.in', output: 'Makefile.global', configuration: pgxs_cdata, install: true, install_dir: dir_pgxs / 'src', ) configure_files += makefile_global -- Regards, Nazir Bilal Yavuz Microsoft
