From 9326d9c6df4ad1f954fb060188c5b223d1821f93 Mon Sep 17 00:00:00 2001 From: Fred Morcos Date: Tue, 26 Sep 2023 12:56:11 +0200 Subject: [PATCH] Meson: Don't fail on platforms where the linker doesn't support help text --- .../hardening/global-offset-table/meson.build | 23 ++++++++++++------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/meson/hardening/global-offset-table/meson.build b/meson/hardening/global-offset-table/meson.build index 39fce9878f..fceeec1a63 100644 --- a/meson/hardening/global-offset-table/meson.build +++ b/meson/hardening/global-offset-table/meson.build @@ -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') -- 2.47.3