public inbox for [email protected]  
help / color / mirror / Atom feed
From: Zsolt Parragi <[email protected]>
To: Nazir Bilal Yavuz <[email protected]>
Cc: Peter Eisentraut <[email protected]>
Cc: pgsql-hackers <[email protected]>
Cc: Andres Freund <[email protected]>
Subject: Re: meson vs. llvm bitcode files
Date: Wed, 18 Mar 2026 22:23:35 +0000
Message-ID: <CAN4CZFNLJ9_-0H7kCQA+CLnjvS3eU=oq2=TPjCqbP+VhOg9CsQ@mail.gmail.com> (raw)
In-Reply-To: <CAN55FZ0KxMphg+M+4Shm=HmNV+XhC7LUKc6hrC+-QiovhzvdVA@mail.gmail.com>
References: <[email protected]>
	<CAN55FZ3bsxQYEbmUqGhWaBf0ixmxGoLdijz75AgzMG=23M976g@mail.gmail.com>
	<CAN55FZ1JEotkU8TTwhNreUp0cTbY1ag6uOGbHJGSeqotGNUB5w@mail.gmail.com>
	<CA+hiPX8R69OeApj55Fy1VXOhuHUKfdvp2f80icLy65z76Jy=JA@mail.gmail.com>
	<CAN55FZ2qGH8WsRaX3UxC4E-ZEwv0ZHr9p1XQfLqLs1fGKLAaoA@mail.gmail.com>
	<CA+hiPX9ZHrryqFnMWfEZhqS4fLj2yv_shBR=cW07WXnSrDu8jA@mail.gmail.com>
	<CAN55FZ1fWtTpcL3ytJioZWt78oMsCyV5ivKho-pO-EJzvQSWXQ@mail.gmail.com>
	<CAN55FZ3oT2FUbd-Zga0w69gyv05ZtihKTypyJWH4JHL-nmv-kA@mail.gmail.com>
	<CAN55FZ3CN09j5o3PDw8wkiEqc4tt=7+VFwYriY451y=-9SN33A@mail.gmail.com>
	<CAN55FZ2vp2wuzMZVxzFqj=6wbSSs_REYFLbPJK9CaY2SHJTY=A@mail.gmail.com>
	<CAN55FZ138OBEehyxD1FKySMxKFteqf_VOR8LBkz-055YGU12rg@mail.gmail.com>
	<CAN55FZ3HTYjtooYWtGGhDQnSJWqPJmC+wszLGvnK36LwgC2uQA@mail.gmail.com>
	<[email protected]>
	<CAN55FZ0KxMphg+M+4Shm=HmNV+XhC7LUKc6hrC+-QiovhzvdVA@mail.gmail.com>

Hello!

+      bitcode_targets += custom_target(
+        targetname,
+        depends: [bitcode_obj],
+        input: [srcfile],
+        output: targetname,
+        command: [llvm_irgen_command, bitcode_cflags_gen_local],
+        install: true,
+        install_dir: dir_bitcode,
+      )

This seems overeager to rebuild to me. If I touch a single header
file, it rebuilds all bc files because bitcode_obj (postgres_lib)
changes.

Wouldn't something like the following work?

bitcode_targets += custom_target(
  targetname,
  depends: [generated_backend_headers_stamp],  # instead of [postgres_lib]
  input: [srcfile],
  output: targetname,
  command: [llvm_irgen_command, llvm_irgen_dep_args,
bitcode_cflags_local],  # added llvm_irgen_dep_args
  depfile: targetname + '.d',  # added
  install: true,
  install_dir: dir_bitcode,
)

It seems to work in my testing, and results in less rebuilds. But I
also have a fairly recent meson version, there might be some
issues/limitations with earlier versions?

+bitcode_modules += {
+  'target': hstore_plpython,
+  'srcfiles': hstore_plpython_sources,
+  'additional_flags': [
+    '-I@0@'.format(hstore_dir_up),
+    '-DPLPYTHON_LIBNAME="plpython3"',
+    '-I@0@'.format(python3_incdir),
+    '-I@0@'.format(plpython_dir),
+    perl_ccflags,
+  ]
+}

Do we need perl_ccflags for python?

+meson_args = ' '.join(args.meson_args)
...
+    if meson_args:
+        meson_setup_command = [meson_bin, meson_args, 'setup',
test_args, test_out_dir]
+    else:

Will this properly work with multiple args?

+
+project('auth_delay', 'c')
+

Seems like a copy paste mistake, this is in postgres_fdw

+    if meson_args:
+        meson_setup_command = [meson_bin, meson_args, 'setup',
test_args, test_out_dir]
+    else:
+        meson_setup_command = [meson_bin, 'setup', test_args, test_out_dir]
+
+    meson_compile_command = ['meson', 'compile', '-C', test_out_dir, '-v']

last one should also be meson_bin

+
+exit_code = 0
+

This is an unused variable

src/makefiles/meson.build contains the following, this should be
updated with this patch?

# TODO: requires bitcode generation to be implemented for meson
'BITCODE_CFLAGS': '',
'BITCODE_CXXFLAGS': '',





view thread (18+ messages)  latest in thread

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: [email protected]
  Cc: [email protected], [email protected], [email protected], [email protected]
  Subject: Re: meson vs. llvm bitcode files
  In-Reply-To: <CAN4CZFNLJ9_-0H7kCQA+CLnjvS3eU=oq2=TPjCqbP+VhOg9CsQ@mail.gmail.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox