Re: [PATCH] Add `headerscheck` run_target to meson - Mailing list pgsql-hackers
| From | Nazir Bilal Yavuz |
|---|---|
| Subject | Re: [PATCH] Add `headerscheck` run_target to meson |
| Date | |
| Msg-id | CAN55FZ1OkRkQMT==EtTWesKBFdBG28WrzhYsex3UG67F7bAQ8A@mail.gmail.com Whole thread Raw |
| In response to | Re: [PATCH] Add `headerscheck` run_target to meson (Miłosz Bieniek <bieniek.milosz0@gmail.com>) |
| Responses |
Re: [PATCH] Add `headerscheck` run_target to meson
|
| List | pgsql-hackers |
Hi,
Thank you for working on this!
On Fri, 28 Nov 2025 at 17:03, Miłosz Bieniek <bieniek.milosz0@gmail.com> wrote:
>
> pt., 28 lis 2025 o 12:53 Peter Eisentraut <peter@eisentraut.org> 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
pgsql-hackers by date: