mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-21 12:05:17 +00:00
meson: Adjust -fstack-protector use
Back in 2014, -fstack-protector was reported not to work on aarch64, so fe881ae086ec disabled it on that target. OS-wise, its use is currently limited to just Linux, FreeBSD and Windows. Looking at the situation today, it seems that whatever issue was affecting aarch64 a decade ago has been resolved; moreover, macOS can also use the feature these days. I haven't checked any of the other BSDs, but since the feature works on FreeBSD it's pretty safe to assume that they can use it too. If we get reports that it's not the case, we can always further restrict its usage accordingly. Best viewed with 'git show -w'. Signed-off-by: Andrea Bolognani <abologna@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
parent
1678e633cf
commit
7284b4cf8b
25
meson.build
25
meson.build
@ -442,22 +442,17 @@ supported_cc_flags = []
|
||||
if get_option('warning_level') == '2'
|
||||
supported_cc_flags = cc.get_supported_arguments(cc_flags)
|
||||
|
||||
# on aarch64 error: -fstack-protector not supported for this target
|
||||
if host_machine.cpu_family() != 'aarch64'
|
||||
if host_machine.system() in [ 'linux', 'freebsd', 'windows' ]
|
||||
# we prefer -fstack-protector-strong but fallback to -fstack-protector-all
|
||||
fstack_cflags = cc.first_supported_argument([
|
||||
'-fstack-protector-strong',
|
||||
'-fstack-protector-all',
|
||||
])
|
||||
supported_cc_flags += fstack_cflags
|
||||
# we prefer -fstack-protector-strong but fallback to -fstack-protector-all
|
||||
fstack_cflags = cc.first_supported_argument([
|
||||
'-fstack-protector-strong',
|
||||
'-fstack-protector-all',
|
||||
])
|
||||
supported_cc_flags += fstack_cflags
|
||||
|
||||
# When building with mingw using -fstack-protector requires libssp library
|
||||
# which is included by using -fstack-protector with linker.
|
||||
if fstack_cflags.length() == 1 and host_machine.system() == 'windows'
|
||||
add_project_link_arguments(fstack_cflags, language: 'c')
|
||||
endif
|
||||
endif
|
||||
# When building with mingw using -fstack-protector requires libssp library
|
||||
# which is included by using -fstack-protector with linker.
|
||||
if fstack_cflags.length() == 1 and host_machine.system() == 'windows'
|
||||
add_project_link_arguments(fstack_cflags, language: 'c')
|
||||
endif
|
||||
|
||||
if supported_cc_flags.contains('-Wlogical-op')
|
||||
|
Loading…
x
Reference in New Issue
Block a user