On 11/05/21 17:53, Philippe Mathieu-Daudé wrote:
diff --git a/meson.build b/meson.build index 0b41ff41188..1ffb4bccdb2 100644 --- a/meson.build +++ b/meson.build @@ -1612,7 +1612,7 @@ int main(void) { fdt_check_full(NULL, 0); return 0; }''', dependencies: fdt) fdt_opt = 'system' - elif have_internal + elif have_internal and fdt_opt in ['enabled', 'auto'] fdt_opt = 'internal' else
This will disable FDT silently for --enable-fdt=system instead of failing the build. What about: diff --git a/meson.build b/meson.build index 60040cd7cf..efb38ca780 100644 --- a/meson.build +++ b/meson.build @@ -1610,11 +1610,18 @@ if have_system fdt = cc.find_library('fdt', kwargs: static_kwargs, required: fdt_opt == 'system' or fdt_opt == 'enabled' and not have_internal) - if fdt.found() and cc.links(''' + if fdt.found() and not cc.links(''' #include <libfdt.h> #include <libfdt_env.h> int main(void) { fdt_check_full(NULL, 0); return 0; }''', dependencies: fdt) + if fdt_opt == 'system' or + fdt_opt == 'enabled' and not have_internal then + error('libfdt is too old, version 1.5.1 required') + endif + fdt = not_found + endif + if fdt.found() fdt_opt = 'system' elif have_internal fdt_opt = 'internal' Paolo