On Sat, Jan 20, 2024 at 11:29:32PM +0100, Andrea Bolognani wrote: > 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 the 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. > > The only platform where -fstack-protector is known to still have > issues is alpha, so single that one out. Alpha is not a supported arch in any distro we target & the hardware hasn't been made since before libvirt even existed. So I think that special case should just be removed. > > Best viewed with 'git show -w'. > > Signed-off-by: Andrea Bolognani <abologna@xxxxxxxxxx> > --- > Test pipeline: https://gitlab.com/abologna/libvirt/-/pipelines/1145401848 > > Notice how all aarch64 jobs are fine - even the macOS ones. > > meson.build | 33 +++++++++++++++++---------------- > 1 file changed, 17 insertions(+), 16 deletions(-) > > diff --git a/meson.build b/meson.build > index 611cc582c0..01cb49b306 100644 > --- a/meson.build > +++ b/meson.build > @@ -442,22 +442,23 @@ 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 > - > - # 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 > + if host_machine.system() == 'linux' and host_machine.cpu_family() == 'alpha' > + # On alpha, gcc advertises support for -fstack-protector but then > + # raises a warning when you actually try to use it > + fstack_cflags = [] > + else > + # 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 > + 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') > -- > 2.43.0 > _______________________________________________ > Devel mailing list -- devel@xxxxxxxxxxxxxxxxx > To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxx With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :| _______________________________________________ Devel mailing list -- devel@xxxxxxxxxxxxxxxxx To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxx