On 4/28/21 6:34 PM, Richard Henderson wrote: > On 4/28/21 7:48 AM, Philippe Mathieu-Daudé wrote: >> seccomp = not_found >> -if not get_option('seccomp').auto() or have_system or have_tools >> +if not get_option('seccomp').auto() or have_system or have_tools or >> not get_option('virtiofsd').auto() >> seccomp = dependency('libseccomp', version: '>=2.3.0', >> required: get_option('seccomp'), >> method: 'pkg-config', kwargs: static_kwargs) > > This construct is wrong, both before and after, as I read it. > > not get_option(foo).auto() is true for both enabled and disabled. If > disabled, why are we examining the dependency? If auto, if we have all > of the dependencies we want to enable the feature -- if we don't probe > for the dependency, how can we enable it? > > This error seems to be offset by the OR have_* tests, for which the > logic also seems off. > > I think the test should have been > > if (have_system or have_tools) and
Yes but virtiofsd is not a tool... It is a standalone binary. Maybe have_system is the culprit here: have_system = have_system or target.endswith('-softmmu') We should somewhere add: have_system = have_system or something('virtiofsd') However I wonder if we aren't going to build many objects that are irrelevant for virtiofsd. > (not get_option('seccomp').disabled() or > not get_option('virtiofsd').disabled()) > > Then we need to combine the required: argument, probably like > > required: get_option('seccomp').enabled() or > get_option('virtiofsd').enabled() > > > r~ >