]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
Meson: Don't fail on platforms where the linker doesn't support help text
authorFred Morcos <fred.morcos@open-xchange.com>
Tue, 26 Sep 2023 10:56:11 +0000 (12:56 +0200)
committerFred Morcos <fred.morcos@open-xchange.com>
Wed, 20 Mar 2024 12:28:51 +0000 (13:28 +0100)
meson/hardening/global-offset-table/meson.build

index 39fce9878f9ecf581ea3b5cda90c6acdc08017d6..fceeec1a634a1c3f3ae8a9f5111ab0f64de8465e 100644 (file)
@@ -1,12 +1,19 @@
-ld_help = run_command(cxx, '-Wl,-help', check: true).stdout().strip()
-variants = ['relro', 'now']
 found_variant = false
-foreach variant: variants
-  if ld_help.contains('-z ' + variant)
-    found_variant = true
-    add_project_link_arguments('-Wl,-z', '-Wl,' + variant, language: ['c', 'cpp'])
-  endif
-endforeach
+
+ld_help_result = run_command(cxx, '-Wl,-help', check: false)
+if ld_help_result.returncode() != 0
+  warning('Linker does not support help text output. ' +
+          'Read-only global offset table will be disabled')
+else
+  ld_help = ld_help_result.stdout().strip()
+  variants = ['relro', 'now']
+  foreach variant: variants
+    if ld_help.contains('-z ' + variant)
+      found_variant = true
+      add_project_link_arguments('-Wl,-z', '-Wl,' + variant, language: ['c', 'cpp'])
+    endif
+  endforeach
+endif
 
 hardening_features += [[found_variant, 'Read-only Global Offset Table']]
 summary('Read-only GOT', found_variant, bool_yn: true, section: 'Hardening')