From 3b6753a236288d539ffb6bb391e80a9b8ddb18f0 Mon Sep 17 00:00:00 2001 From: Nazir Bilal Yavuz Date: Mon, 16 Mar 2026 18:15:59 +0300 Subject: [PATCH v11 5/7] meson: Add LLVM bitcode emissions for contrib libraries The libraries which the bitcode files will be generated in are selected manually. Author: Andres Freund Author: Nazir Bilal Yavuz Author: Diego Fronza Reviewed-by: Peter Eisentraut Reviewed-by: Diego Fronza Reviewed-by: Zsolt Parragi Discussion: https://postgr.es/m/206b001d-1884-4081-bd02-bed5c92f02ba%40eisentraut.org --- contrib/bloom/meson.build | 5 +++++ contrib/bool_plperl/meson.build | 9 +++++++++ contrib/btree_gin/meson.build | 5 +++++ contrib/btree_gist/meson.build | 5 +++++ contrib/citext/meson.build | 5 +++++ contrib/cube/meson.build | 13 +++++++++++++ contrib/dict_int/meson.build | 5 +++++ contrib/dict_xsyn/meson.build | 5 +++++ contrib/earthdistance/meson.build | 6 ++++++ contrib/fuzzystrmatch/meson.build | 9 +++++++++ contrib/hstore/meson.build | 7 +++++++ contrib/hstore_plperl/meson.build | 10 ++++++++++ contrib/hstore_plpython/meson.build | 11 +++++++++++ contrib/intarray/meson.build | 5 +++++ contrib/isn/meson.build | 5 +++++ contrib/jsonb_plperl/meson.build | 8 ++++++++ contrib/jsonb_plpython/meson.build | 10 ++++++++++ contrib/lo/meson.build | 5 +++++ contrib/ltree/meson.build | 10 ++++++++++ contrib/ltree_plpython/meson.build | 11 +++++++++++ contrib/pg_buffercache/meson.build | 5 +++++ contrib/pg_freespacemap/meson.build | 5 +++++ contrib/pg_logicalinspect/meson.build | 5 +++++ contrib/pg_surgery/meson.build | 4 ++++ contrib/pg_trgm/meson.build | 5 +++++ contrib/pgcrypto/meson.build | 4 ++++ contrib/seg/meson.build | 12 ++++++++++++ contrib/spi/meson.build | 20 ++++++++++++++++++++ contrib/sslinfo/meson.build | 5 +++++ contrib/tablefunc/meson.build | 5 +++++ contrib/tcn/meson.build | 5 +++++ contrib/tsm_system_rows/meson.build | 5 +++++ contrib/tsm_system_time/meson.build | 5 +++++ contrib/unaccent/meson.build | 5 +++++ contrib/uuid-ossp/meson.build | 5 +++++ contrib/xml2/meson.build | 5 +++++ meson.build | 1 + src/interfaces/libpq/meson.build | 3 +++ src/pl/plperl/meson.build | 1 + src/pl/plpython/meson.build | 1 + 40 files changed, 255 insertions(+) diff --git a/contrib/bloom/meson.build b/contrib/bloom/meson.build index fa4f4ea796b..780bb494d54 100644 --- a/contrib/bloom/meson.build +++ b/contrib/bloom/meson.build @@ -28,6 +28,11 @@ install_data( kwargs: contrib_data_args, ) +bitcode_modules += { + 'target': bloom, + 'srcfiles': bloom_sources, +} + tests += { 'name': 'bloom', 'sd': meson.current_source_dir(), diff --git a/contrib/bool_plperl/meson.build b/contrib/bool_plperl/meson.build index d19abf0dd6d..cd1ab595ee9 100644 --- a/contrib/bool_plperl/meson.build +++ b/contrib/bool_plperl/meson.build @@ -37,6 +37,15 @@ install_data( kwargs: contrib_data_args, ) +bitcode_modules += { + 'target': bool_plperl, + 'srcfiles': bool_plperl_sources, + 'additional_flags': [ + '-I@0@'.format(plperl_dir), + perl_ccflags + ] +} + tests += { 'name': 'bool_plperl', 'sd': meson.current_source_dir(), diff --git a/contrib/btree_gin/meson.build b/contrib/btree_gin/meson.build index 039cfc52c86..4406f9f998d 100644 --- a/contrib/btree_gin/meson.build +++ b/contrib/btree_gin/meson.build @@ -26,6 +26,11 @@ install_data( kwargs: contrib_data_args, ) +bitcode_modules += { + 'target': btree_gin, + 'srcfiles': btree_gin_sources, +} + tests += { 'name': 'btree_gin', 'sd': meson.current_source_dir(), diff --git a/contrib/btree_gist/meson.build b/contrib/btree_gist/meson.build index 2b1a5463289..9fae0eb7289 100644 --- a/contrib/btree_gist/meson.build +++ b/contrib/btree_gist/meson.build @@ -55,6 +55,11 @@ install_data( kwargs: contrib_data_args, ) +bitcode_modules += { + 'target': btree_gist, + 'srcfiles': btree_gist_sources, +} + tests += { 'name': 'btree_gist', 'sd': meson.current_source_dir(), diff --git a/contrib/citext/meson.build b/contrib/citext/meson.build index 1cc49fc999f..fc29fc843f5 100644 --- a/contrib/citext/meson.build +++ b/contrib/citext/meson.build @@ -30,6 +30,11 @@ install_data( kwargs: contrib_data_args, ) +bitcode_modules += { + 'target': citext, + 'srcfiles': citext_sources, +} + tests += { 'name': 'citext', 'sd': meson.current_source_dir(), diff --git a/contrib/cube/meson.build b/contrib/cube/meson.build index 6526091c688..694f6335c3c 100644 --- a/contrib/cube/meson.build +++ b/contrib/cube/meson.build @@ -3,6 +3,7 @@ cube_sources = files( 'cube.c', ) +bc_cube_sources = cube_sources cube_scan = custom_target('cubescan', input: 'cubescan.l', @@ -11,6 +12,7 @@ cube_scan = custom_target('cubescan', ) generated_sources += cube_scan cube_sources += cube_scan +bc_cube_gen_sources = [{'srcfiles': [cube_scan]}] cube_parse = custom_target('cubeparse', input: 'cubeparse.y', @@ -18,6 +20,7 @@ cube_parse = custom_target('cubeparse', ) generated_sources += cube_parse.to_list() cube_sources += cube_parse +bc_cube_gen_sources += {'srcfiles': [cube_parse[0]]} if host_system == 'windows' cube_sources += rc_lib_gen.process(win32ver_rc, extra_args: [ @@ -48,6 +51,16 @@ install_headers( install_dir: dir_include_extension / 'cube', ) +cube_dir = meson.current_source_dir() +bitcode_modules += { + 'target': cube, + 'srcfiles': bc_cube_sources, + 'gen_sources': bc_cube_gen_sources, + 'additional_flags': [ + '-I@0@'.format(cube_dir), + ] +} + tests += { 'name': 'cube', 'sd': meson.current_source_dir(), diff --git a/contrib/dict_int/meson.build b/contrib/dict_int/meson.build index 938647f45fd..98203012edc 100644 --- a/contrib/dict_int/meson.build +++ b/contrib/dict_int/meson.build @@ -22,6 +22,11 @@ install_data( kwargs: contrib_data_args, ) +bitcode_modules += { + 'target': dict_int, + 'srcfiles': dict_int_sources, +} + tests += { 'name': 'dict_int', 'sd': meson.current_source_dir(), diff --git a/contrib/dict_xsyn/meson.build b/contrib/dict_xsyn/meson.build index 1485e9e9797..c908920152b 100644 --- a/contrib/dict_xsyn/meson.build +++ b/contrib/dict_xsyn/meson.build @@ -29,6 +29,11 @@ install_data( } ) +bitcode_modules += { + 'target': dict_xsyn, + 'srcfiles': dict_xsyn_sources, +} + tests += { 'name': 'dict_xsyn', 'sd': meson.current_source_dir(), diff --git a/contrib/earthdistance/meson.build b/contrib/earthdistance/meson.build index 41fb5065afa..de47c4a4f42 100644 --- a/contrib/earthdistance/meson.build +++ b/contrib/earthdistance/meson.build @@ -24,6 +24,12 @@ install_data( kwargs: contrib_data_args, ) +bitcode_modules += { + 'target': earthdistance, + 'srcfiles': earthdistance_sources, +} + + tests += { 'name': 'earthdistance', 'sd': meson.current_source_dir(), diff --git a/contrib/fuzzystrmatch/meson.build b/contrib/fuzzystrmatch/meson.build index e21a4e2e62b..554ba4ebd76 100644 --- a/contrib/fuzzystrmatch/meson.build +++ b/contrib/fuzzystrmatch/meson.build @@ -5,6 +5,7 @@ fuzzystrmatch_sources = files( 'dmetaphone.c', 'fuzzystrmatch.c', ) +bc_fuzzystrmatch_sources = fuzzystrmatch_sources daitch_mokotoff_h = custom_target('daitch_mokotoff', input: 'daitch_mokotoff_header.pl', @@ -35,6 +36,14 @@ install_data( kwargs: contrib_data_args, ) +bitcode_modules += { + 'target': fuzzystrmatch, + 'srcfiles': bc_fuzzystrmatch_sources, + 'additional_flags': [ + '-I@0@'.format(meson.current_build_dir()) + ] +} + tests += { 'name': 'fuzzystrmatch', 'sd': meson.current_source_dir(), diff --git a/contrib/hstore/meson.build b/contrib/hstore/meson.build index 6175abc708e..cf21195f3b8 100644 --- a/contrib/hstore/meson.build +++ b/contrib/hstore/meson.build @@ -43,6 +43,13 @@ install_headers( install_dir: dir_include_extension / 'hstore', ) +# Files outside of the current directory include hstore as "hstore/hstore.h" +hstore_dir_up = join_paths(meson.current_source_dir(), '..') +bitcode_modules += { + 'target': hstore, + 'srcfiles': hstore_sources, +} + tests += { 'name': 'hstore', 'sd': meson.current_source_dir(), diff --git a/contrib/hstore_plperl/meson.build b/contrib/hstore_plperl/meson.build index 705dbe69a46..1c9d2f57f2a 100644 --- a/contrib/hstore_plperl/meson.build +++ b/contrib/hstore_plperl/meson.build @@ -37,6 +37,16 @@ install_data( kwargs: contrib_data_args, ) +bitcode_modules += { + 'target': hstore_plperl, + 'srcfiles': hstore_plperl_sources, + 'additional_flags': [ + '-I@0@'.format(hstore_dir_up), + '-I@0@'.format(plperl_dir), + perl_ccflags, + ] +} + tests += { 'name': 'hstore_plperl', 'sd': meson.current_source_dir(), diff --git a/contrib/hstore_plpython/meson.build b/contrib/hstore_plpython/meson.build index 555811b25b9..0878f2507ad 100644 --- a/contrib/hstore_plpython/meson.build +++ b/contrib/hstore_plpython/meson.build @@ -30,6 +30,17 @@ install_data( kwargs: contrib_data_args, ) +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), + ] +} + hstore_plpython_regress = [ 'hstore_plpython' ] diff --git a/contrib/intarray/meson.build b/contrib/intarray/meson.build index e49ff77f167..24ba3110371 100644 --- a/contrib/intarray/meson.build +++ b/contrib/intarray/meson.build @@ -33,6 +33,11 @@ install_data( kwargs: contrib_data_args, ) +bitcode_modules += { + 'target': intarray, + 'srcfiles': intarray_sources, +} + tests += { 'name': 'intarray', 'sd': meson.current_source_dir(), diff --git a/contrib/isn/meson.build b/contrib/isn/meson.build index cecd70043c8..ddfe24eaaab 100644 --- a/contrib/isn/meson.build +++ b/contrib/isn/meson.build @@ -30,6 +30,11 @@ install_headers( install_dir: dir_include_extension / 'isn', ) +bitcode_modules += { + 'target': isn, + 'srcfiles': isn_sources, +} + tests += { 'name': 'isn', 'sd': meson.current_source_dir(), diff --git a/contrib/jsonb_plperl/meson.build b/contrib/jsonb_plperl/meson.build index 8bfabee5455..8ce0b6bd0bb 100644 --- a/contrib/jsonb_plperl/meson.build +++ b/contrib/jsonb_plperl/meson.build @@ -37,6 +37,14 @@ install_data( kwargs: contrib_data_args, ) +bitcode_modules += { + 'target': jsonb_plperl, + 'srcfiles': jsonb_plperl_sources, + 'additional_flags': [ + '-I@0@'.format(plperl_dir), + perl_ccflags, + ] +} tests += { 'name': 'jsonb_plperl', diff --git a/contrib/jsonb_plpython/meson.build b/contrib/jsonb_plpython/meson.build index 71299707418..e3588527012 100644 --- a/contrib/jsonb_plpython/meson.build +++ b/contrib/jsonb_plpython/meson.build @@ -30,6 +30,16 @@ install_data( kwargs: contrib_data_args, ) +bitcode_modules += { + 'target': jsonb_plpython, + 'srcfiles': jsonb_plpython_sources, + 'additional_flags': [ + '-DPLPYTHON_LIBNAME="plpython3"', + '-I@0@'.format(python3_incdir), + '-I@0@'.format(plpython_dir), + ] +} + jsonb_plpython_regress = [ 'jsonb_plpython' ] diff --git a/contrib/lo/meson.build b/contrib/lo/meson.build index e43eb9b2d28..1e6fbed6695 100644 --- a/contrib/lo/meson.build +++ b/contrib/lo/meson.build @@ -24,6 +24,11 @@ install_data( kwargs: contrib_data_args, ) +bitcode_modules += { + 'target': lo, + 'srcfiles': lo_sources, +} + tests += { 'name': 'lo', 'sd': meson.current_source_dir(), diff --git a/contrib/ltree/meson.build b/contrib/ltree/meson.build index f78521bfe55..539e1ed32a3 100644 --- a/contrib/ltree/meson.build +++ b/contrib/ltree/meson.build @@ -41,6 +41,16 @@ install_headers( install_dir: dir_include_extension / 'ltree', ) +ltree_dir = meson.current_source_dir() +ltree_dir_up = join_paths(ltree_dir, '..') +bitcode_modules += { + 'target': ltree, + 'srcfiles': ltree_sources, + 'additional_flags': [ + '-I@0@'.format(ltree_dir) + ] +} + tests += { 'name': 'ltree', 'sd': meson.current_source_dir(), diff --git a/contrib/ltree_plpython/meson.build b/contrib/ltree_plpython/meson.build index b72ee5a780a..e5a96286305 100644 --- a/contrib/ltree_plpython/meson.build +++ b/contrib/ltree_plpython/meson.build @@ -30,6 +30,17 @@ install_data( kwargs: contrib_data_args, ) +bitcode_modules += { + 'target': ltree_plpython, + 'srcfiles': ltree_plpython_sources, + 'additional_flags': [ + '-I@0@'.format(ltree_dir_up), + '-DPLPYTHON_LIBNAME="plpython3"', + '-I@0@'.format(python3_incdir), + '-I@0@'.format(plpython_dir), + ] +} + ltree_plpython_regress = [ 'ltree_plpython' ] diff --git a/contrib/pg_buffercache/meson.build b/contrib/pg_buffercache/meson.build index e681205abb2..3435221e90d 100644 --- a/contrib/pg_buffercache/meson.build +++ b/contrib/pg_buffercache/meson.build @@ -29,6 +29,11 @@ install_data( kwargs: contrib_data_args, ) +bitcode_modules += { + 'target': pg_buffercache, + 'srcfiles': pg_buffercache_sources, +} + tests += { 'name': 'pg_buffercache', 'sd': meson.current_source_dir(), diff --git a/contrib/pg_freespacemap/meson.build b/contrib/pg_freespacemap/meson.build index 67b46c77ff3..673bd6ff2a4 100644 --- a/contrib/pg_freespacemap/meson.build +++ b/contrib/pg_freespacemap/meson.build @@ -25,6 +25,11 @@ install_data( kwargs: contrib_data_args, ) +bitcode_modules += { + 'target': pg_freespacemap, + 'srcfiles': pg_freespacemap_sources, +} + tests += { 'name': 'pg_freespacemap', 'sd': meson.current_source_dir(), diff --git a/contrib/pg_logicalinspect/meson.build b/contrib/pg_logicalinspect/meson.build index 3e284986e3b..7ce9b2cafc2 100644 --- a/contrib/pg_logicalinspect/meson.build +++ b/contrib/pg_logicalinspect/meson.build @@ -22,6 +22,11 @@ install_data( kwargs: contrib_data_args, ) +bitcode_modules += { + 'target': pg_logicalinspect, + 'srcfiles': pg_logicalinspect_sources, +} + tests += { 'name': 'pg_logicalinspect', 'sd': meson.current_source_dir(), diff --git a/contrib/pg_surgery/meson.build b/contrib/pg_surgery/meson.build index 88e16dcc1b2..cabba37ed66 100644 --- a/contrib/pg_surgery/meson.build +++ b/contrib/pg_surgery/meson.build @@ -22,6 +22,10 @@ install_data( kwargs: contrib_data_args, ) +bitcode_modules += { + 'target': pg_surgery, + 'srcfiles': pg_surgery_sources, +} tests += { 'name': 'pg_surgery', diff --git a/contrib/pg_trgm/meson.build b/contrib/pg_trgm/meson.build index 3ecf95ba862..31b79db7c57 100644 --- a/contrib/pg_trgm/meson.build +++ b/contrib/pg_trgm/meson.build @@ -32,6 +32,11 @@ install_data( kwargs: contrib_data_args, ) +bitcode_modules += { + 'target': pg_trgm, + 'srcfiles': pg_trgm_sources, +} + tests += { 'name': 'pg_trgm', 'sd': meson.current_source_dir(), diff --git a/contrib/pgcrypto/meson.build b/contrib/pgcrypto/meson.build index 4f255c8cb05..3fe3fa2bfdf 100644 --- a/contrib/pgcrypto/meson.build +++ b/contrib/pgcrypto/meson.build @@ -101,6 +101,10 @@ install_data( kwargs: contrib_data_args, ) +bitcode_modules += { + 'target': pgcrypto, + 'srcfiles': pgcrypto_sources, +} tests += { 'name': 'pgcrypto', diff --git a/contrib/seg/meson.build b/contrib/seg/meson.build index fa3de266bb5..f8f5f1db8ec 100644 --- a/contrib/seg/meson.build +++ b/contrib/seg/meson.build @@ -3,6 +3,7 @@ seg_sources = files( 'seg.c', ) +bc_seg_sources = seg_sources seg_scan = custom_target('segscan', input: 'segscan.l', @@ -11,6 +12,7 @@ seg_scan = custom_target('segscan', ) generated_sources += seg_scan seg_sources += seg_scan +bc_seg_gen_sources = [{'srcfiles': [seg_scan]}] seg_parse = custom_target('segparse', input: 'segparse.y', @@ -18,6 +20,7 @@ seg_parse = custom_target('segparse', ) generated_sources += seg_parse.to_list() seg_sources += seg_parse +bc_seg_gen_sources += {'srcfiles': [seg_parse[0]]} if host_system == 'windows' seg_sources += rc_lib_gen.process(win32ver_rc, extra_args: [ @@ -47,6 +50,15 @@ install_headers( install_dir: dir_include_extension / 'seg', ) +bitcode_modules += { + 'target': seg, + 'srcfiles': bc_seg_sources, + 'gen_sources': bc_seg_gen_sources, + 'additional_flags': [ + '-I@0@'.format(meson.current_source_dir()), + ] +} + tests += { 'name': 'seg', 'sd': meson.current_source_dir(), diff --git a/contrib/spi/meson.build b/contrib/spi/meson.build index 4a9a2bef0a5..e695ec6c487 100644 --- a/contrib/spi/meson.build +++ b/contrib/spi/meson.build @@ -24,6 +24,11 @@ install_data('autoinc.example', kwargs: contrib_doc_args, ) +bitcode_modules += { + 'target': autoinc, + 'srcfiles': autoinc_sources, +} + insert_username_sources = files( 'insert_username.c', @@ -51,6 +56,11 @@ install_data('insert_username.example', kwargs: contrib_doc_args, ) +bitcode_modules += { + 'target': insert_username, + 'srcfiles': insert_username_sources, +} + moddatetime_sources = files( 'moddatetime.c', @@ -78,6 +88,11 @@ install_data('moddatetime.example', kwargs: contrib_doc_args, ) +bitcode_modules += { + 'target': moddatetime, + 'srcfiles': moddatetime_sources, +} + # this is needed for the regression tests; # comment out if you want a quieter refint package for other uses @@ -108,6 +123,11 @@ install_data('refint.example', kwargs: contrib_doc_args, ) +bitcode_modules += { + 'target': refint, + 'srcfiles': refint_sources, +} + tests += { 'name': 'spi', 'sd': meson.current_source_dir(), diff --git a/contrib/sslinfo/meson.build b/contrib/sslinfo/meson.build index 6e9cb96430a..a5445c13a2b 100644 --- a/contrib/sslinfo/meson.build +++ b/contrib/sslinfo/meson.build @@ -29,3 +29,8 @@ install_data( 'sslinfo.control', kwargs: contrib_data_args, ) + +bitcode_modules += { + 'target': sslinfo, + 'srcfiles': sslinfo_sources, +} diff --git a/contrib/tablefunc/meson.build b/contrib/tablefunc/meson.build index 1bebb926229..c1e5335e0ae 100644 --- a/contrib/tablefunc/meson.build +++ b/contrib/tablefunc/meson.build @@ -22,6 +22,11 @@ install_data( kwargs: contrib_data_args, ) +bitcode_modules += { + 'target': tablefunc, + 'srcfiles': tablefunc_sources, +} + tests += { 'name': 'tablefunc', 'sd': meson.current_source_dir(), diff --git a/contrib/tcn/meson.build b/contrib/tcn/meson.build index f7a9b9a505f..049ffc3f135 100644 --- a/contrib/tcn/meson.build +++ b/contrib/tcn/meson.build @@ -22,6 +22,11 @@ install_data( kwargs: contrib_data_args, ) +bitcode_modules += { + 'target': tcn, + 'srcfiles': tcn_sources, +} + tests += { 'name': 'tcn', 'sd': meson.current_source_dir(), diff --git a/contrib/tsm_system_rows/meson.build b/contrib/tsm_system_rows/meson.build index 19f6f5f6bf5..5bac8299ec7 100644 --- a/contrib/tsm_system_rows/meson.build +++ b/contrib/tsm_system_rows/meson.build @@ -22,6 +22,11 @@ install_data( kwargs: contrib_data_args, ) +bitcode_modules += { + 'target': tsm_system_rows, + 'srcfiles': tsm_system_rows_sources, +} + tests += { 'name': 'tsm_system_rows', 'sd': meson.current_source_dir(), diff --git a/contrib/tsm_system_time/meson.build b/contrib/tsm_system_time/meson.build index c5404b266ab..02ae53bbb9f 100644 --- a/contrib/tsm_system_time/meson.build +++ b/contrib/tsm_system_time/meson.build @@ -22,6 +22,11 @@ install_data( kwargs: contrib_data_args, ) +bitcode_modules += { + 'target': tsm_system_time, + 'srcfiles': tsm_system_time_sources, +} + tests += { 'name': 'tsm_system_time', 'sd': meson.current_source_dir(), diff --git a/contrib/unaccent/meson.build b/contrib/unaccent/meson.build index 938d9522da3..20a04c1f4c0 100644 --- a/contrib/unaccent/meson.build +++ b/contrib/unaccent/meson.build @@ -28,6 +28,11 @@ install_data( install_dir: dir_data / 'tsearch_data' ) +bitcode_modules += { + 'target': unaccent, + 'srcfiles': unaccent_sources, +} + tests += { 'name': 'unaccent', 'sd': meson.current_source_dir(), diff --git a/contrib/uuid-ossp/meson.build b/contrib/uuid-ossp/meson.build index b074900dd16..1d806bdb164 100644 --- a/contrib/uuid-ossp/meson.build +++ b/contrib/uuid-ossp/meson.build @@ -29,6 +29,11 @@ install_data( kwargs: contrib_data_args, ) +bitcode_modules += { + 'target': uuid_ossp, + 'srcfiles': uuid_ossp_sources, +} + tests += { 'name': 'uuid-ossp', 'sd': meson.current_source_dir(), diff --git a/contrib/xml2/meson.build b/contrib/xml2/meson.build index faae5e5e428..6e81ea6ad72 100644 --- a/contrib/xml2/meson.build +++ b/contrib/xml2/meson.build @@ -32,6 +32,11 @@ install_data( kwargs: contrib_data_args, ) +bitcode_modules += { + 'target': xml2, + 'srcfiles': xml2_sources, +} + tests += { 'name': 'xml2', 'sd': meson.current_source_dir(), diff --git a/meson.build b/meson.build index 021e6096e40..15b73d57d93 100644 --- a/meson.build +++ b/meson.build @@ -1448,6 +1448,7 @@ if not pyopt.disabled() python3_header_check_args = ['/I' + python3_incdir] else python3_dep = python3_inst.dependency(embed: true, required: pyopt) + python3_incdir = python3_inst.get_variable('INCLUDEPY') python3_header_check_args = [] endif # Remove this check after we depend on Meson >= 1.1.0 diff --git a/src/interfaces/libpq/meson.build b/src/interfaces/libpq/meson.build index b0ae72167a1..f0644294e6b 100644 --- a/src/interfaces/libpq/meson.build +++ b/src/interfaces/libpq/meson.build @@ -49,6 +49,9 @@ libpq_c_args = ['-DSO_MAJOR_VERSION=5'] # The OAuth implementation differs depending on the type of library being built. libpq_so_c_args = ['-DUSE_DYNAMIC_OAUTH'] +# libpq-fe.h is needed to generate bitcode for some extensions +libpq_dir = meson.current_source_dir() + # Not using both_libraries() here as # 1) resource files should only be in the shared library # 2) we want the .pc file to include a dependency to {pgport,common}_static for diff --git a/src/pl/plperl/meson.build b/src/pl/plperl/meson.build index ff41812ca46..51f804804ba 100644 --- a/src/pl/plperl/meson.build +++ b/src/pl/plperl/meson.build @@ -37,6 +37,7 @@ foreach n : ['SPI', 'Util'] plperl_sources += xs_c endforeach +plperl_dir = meson.current_source_dir() plperl_inc = include_directories('.') if host_system == 'windows' diff --git a/src/pl/plpython/meson.build b/src/pl/plpython/meson.build index ef8aba56539..0e8ea5beda0 100644 --- a/src/pl/plpython/meson.build +++ b/src/pl/plpython/meson.build @@ -29,6 +29,7 @@ plpython_sources += custom_target('spiexceptions.h', # FIXME: need to duplicate import library ugliness? plpython_inc = include_directories('.') +plpython_dir = meson.current_source_dir() if host_system == 'windows' plpython_sources += rc_lib_gen.process(win32ver_rc, extra_args: [ -- 2.47.3