]> www.infradead.org Git - users/dwmw2/qemu.git/commitdiff
meson.build: Fix the check for a usable libfdt
authorThomas Huth <thuth@redhat.com>
Fri, 27 Aug 2021 12:08:59 +0000 (14:08 +0200)
committerThomas Huth <thuth@redhat.com>
Mon, 6 Sep 2021 07:07:00 +0000 (09:07 +0200)
The check for libfdt currently has a flaw: If there is a system libfdt, the
meson.build code initialized the fdt variable with fdt = cc.find_library(...).
However, if this libfdt is too old and there is no internal dtc module
available, it continues with "fdt" pointing to the old and unusable version.
The check later in the file that tries to detect whether libfdt is necessary
then fails to trigger:

 if not fdt.found() and fdt_required.length() > 0
  error('fdt not available but required by targets ' + ', '.join(fdt_required))
 endif

The build fails then during compilation instead, which is of course bad
since this is quite confusing and already wasted quite some time of the user.
Thus if libfdt is not usable, we should unset the "fdt" variable immediately
again, so that the build already fails during the configuration phase.

Resolves: https://gitlab.com/qemu-project/qemu/-/issues/255
Message-Id: <20210827120901.150276-2-thuth@redhat.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
meson.build

index bf637848125044134f0aa9c7b25b7efcba3d59b1..6f7177428efa3aee1729661f1ee4e772c8d9872a 100644 (file)
@@ -1916,6 +1916,7 @@ if have_system
       fdt_opt = 'internal'
     else
       fdt_opt = 'disabled'
+      fdt = not_found
     endif
   endif
   if fdt_opt == 'internal'