]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
rec: meson build: export ffi symbols so they become available to Lua 15292/head
authorOtto Moerbeek <otto@drijf.net>
Wed, 12 Mar 2025 09:54:17 +0000 (10:54 +0100)
committerOtto Moerbeek <otto@drijf.net>
Wed, 12 Mar 2025 09:57:49 +0000 (10:57 +0100)
Do that specifically (and unconditionally) for the ffi functions only,
we do not need to export everything like the autotools do with -rdynamic.

pdns/recursordist/meson.build

index 5d8a970d7b96f784fc93a5828cf3e277b7750f2d..f134041ff1d8b4141ea910dde51951cf02a0e04b 100644 (file)
@@ -18,7 +18,14 @@ meson.add_dist_script('meson-dist-script.sh')
 meson.add_dist_script('version.sh', 'set-dist', meson.project_version())
 
 add_project_arguments('-DRECURSOR', language: 'cpp')
-
+add_project_arguments(
+  '-Wshadow',
+  '-Wmissing-declarations',
+  '-Wredundant-decls',
+  '-Wno-ignored-attributes',
+  '-fvisibility=hidden',
+  language: ['c', 'cpp'],
+)
 
 product_source_dir = meson.current_source_dir()
 product_build_dir = meson.current_build_dir()
@@ -407,6 +414,10 @@ librec_common = declare_dependency(
 tools = {
   'pdns_recursor': {
     'main': src_dir / 'rec-main.cc',
+    'link-args': [
+       '-Wl,--export-dynamic-symbol=pdns_ffi_*',
+       '-Wl,--export-dynamic-symbol=pdns_postresolve_ffi_*',
+    ],
     'files-extra': [
       src_dir / 'capabilities.cc',
       src_dir / 'channel.cc',
@@ -542,6 +553,7 @@ foreach tool, info: tools
   main = files(info['main'])
 
   export_dynamic = 'export-dynamic' in info ? info['export-dynamic'] : false
+  link_args = 'link-args' in info ? info['link-args'] : []
   files_extra = 'files-extra' in info ? info['files-extra'] : []
   deps_extra = 'deps-extra' in info ? info['deps-extra'] : []
   install = 'install' in info ? info['install'] : false
@@ -555,6 +567,7 @@ foreach tool, info: tools
       config_h,
       files_extra,
       export_dynamic: export_dynamic,
+      link_args: link_args,
       dependencies: [
         librec_common,
         deps_extra,