no 'system' llibfdt (or too old), subprojects/dtc/ populated, ./configure --disable-download fails Description of problem: ./configure ... --disable-download, with subprojects/ pre-populated, fails. Steps to reproduce: 1. ensure libfdt/dtc files/libs/binaries are *not* found in system 2. have subprojects/dtc pre-populated 3. ./configure --target-list=riscv32-softmmu --prefix=/opt/riscv --enable-debug --without-default-features --without-default-devices --disable-download configure fails with: ``` ../meson.build:3171:13: ERROR: C shared or static library 'fdt' not found A full log can be found at /home/too/vc/ext/qemu/build/meson-logs/meson-log.txt ERROR: meson setup failed ``` If I outcomment the following lines in meson.build: ``` #if get_option('wrap_mode') == 'nodownload' # fdt_opt = 'system' #endif ``` Then the above command line works (with --disable-download) Additional information: The case is where one wants to ensure that configure does not try to access network while doing its job. And in a system where dtc/libfdt is not available, (or is too old, line in Centos/RHEL 7) one has dowloaded the files already in subprojects/dtc/. The meson.build clearly sets (as of 2024-03-05) expectation that dtc/libfdt/ has to come from 'system' if 'wrap_mode' is set to 'nodownload'. Without this check it it works nicely -- and if subprojects/dtc/ was not populated, the error message is ``` Library fdt found: NO ../meson.build:3187:18: ERROR: Automatic wrap-based subproject downloading is disabled A full log can be found at /home/too/vc/ext/qemu/build/meson-logs/meson-log.txt ERROR: meson setup failed ``` So -- to me -- that looks like it could be a suitable solution to this problem.