On 7/17/19 2:20 PM, Aleksandar Markovic wrote: > But, does "configure" list somewhere unmet soft dependencies? (the > question is general, not looking at SDL only) Is there any other way for > an end user to have info on unmet dependencies (whether soft or hard), > other than see QEMU is not building, or something is not working in > QEMU run-time?
Yes - at the end of ./configure, the output includes a list similar to: ... profiler no static build no SDL support yes (2.0.9) SDL image support no GTK support yes (3.24.1) GTK GL support yes VTE support yes (0.54.4) TLS priority NORMAL GNUTLS support yes libgcrypt no nettle yes (3.4.1) ... so on my system, I have SDL 2.0.9 (auto-detected, so it is in use); whereas a system with no SDL or only SDL 1.2 would probably state "SDL support no". You can similarly observe how I lack libgcrypt but have libnettle. Basically, if configure exited with status 0, anything with a 'no' status was a soft dependency and you are building without that feature; but if you want to ensure that a feature is used, you could use './configure --enable-sdl=yes' to force configure to make SDL a hard dependency (fail it if was not found, instead of the default of probing if it is available and then deciding yes or no based on the probe results). Conversely, you can use './configure --disable-sdl' (also spelled './configure --enable-sdl=no') to forcefully build without SDL (and prove that it was a soft dependency, and to see what gets omitted from the build) even when the probe would otherwise have automatically built against SDL 2.0. > > Daniel, > > We had message "SDL 1.2 is going to be deprecated" in QEMU 3.0 > "configure" and, if I remember well, in QEMU 3.1 as well. And now, > when we finally deprecated it, is it true that there is no message > whatsoever on systems with SDL 1.2 only? You'll get the 'SDL supported no' message, but unless you were explicit at the configure command line, the default behavior is that it relies on system probing with silent fallback; you have to supply an --enable/--disable command-line option if you want better behavior than an implicit default. In fact, if you ever look at downstream packages, you'll notice that the packagers have a very long list of --enable/--disable to prove that their build is reproducible with the intended components instead of arbitrary based on whatever probing happened to find on the system at the time. -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3226 Virtualization: qemu.org | libvirt.org
signature.asc
Description: OpenPGP digital signature