Hi Paolo,
On 5/11/21 5:57 PM, Philippe Mathieu-Daudé wrote:
> On 5/11/21 5:53 PM, Philippe Mathieu-Daudé wrote:
>> Attempt to fix the issue reported by John when building
>> with an outdated libfdt.
>
> Unencoded version of this cover:
>
> For now it changes:
>
> hw/ppc/spapr_hcall.c: In function ‘h_update_dt’:
> hw/ppc/spapr_hcall.c:1966:9: warning: implicit declaration of function
> ‘fdt_check_full’; did you mean ‘fdt_check_header’?
> [-Wimplicit-function-declaration]
> 1966 | if (fdt_check_full(fdt, cb)) {
> | ^~~~~~~~~~~~~~
> | fdt_check_header
> hw/ppc/spapr_hcall.c:1966:9: warning: nested extern declaration of
> ‘fdt_check_full’ [-Wnested-externs]
> [...]
> /usr/bin/ld: libqemu-ppc64-softmmu.fa.p/hw_ppc_spapr_hcall.c.o: in
> function `h_update_dt':
> hw/ppc/spapr_hcall.c:1966: undefined reference to `fdt_check_full'
> collect2: error: ld returned 1 exit status
>
> by:
>
> qemu/meson.build:1352:4: ERROR: Running configure command failed.
> The following clauses were found for PSERIES
>
> CONFIG_PSERIES=y
> config PSERIES depends on FDT
>
This is triggered with:
fdt support: NO
having:
default-configs/targets/ppc64-softmmu.mak:6:TARGET_NEED_FDT=y
So this code doesn't seem to work:
if not fdt.found() and fdt_required.length() > 0
error('fdt not available but required by targets ' + ',
'.join(fdt_required))
endif
BTW I disagree FDT is target-dependent, it is machine-dependent IMO.
> which is not better, but one step at a time...
>
> John said: https://gitlab.com/qemu-project/qemu/-/issues/255#note_572421108
>
> Distributions usually don't used embedded copies of libraries,
> so the configure script should require the correct minimum version.
>
> Personally I'd rather allow users to build the most of QEMU with what is
> available, that is all possible machines except pSeries, making pSeries
> machine selected by default and deselected if not possible, with this
> change:
>
> -- >8 --
> diff --git a/default-configs/devices/ppc64-softmmu.mak
> b/default-configs/devices/ppc64-softmmu.mak
> index cca52665d90..62339661fca 100644
> --- a/default-configs/devices/ppc64-softmmu.mak
> +++ b/default-configs/devices/ppc64-softmmu.mak
> @@ -5,6 +5,3 @@ include ppc-softmmu.mak
>
> # For PowerNV
> CONFIG_POWERNV=y
> -
> -# For pSeries
> -CONFIG_PSERIES=y
> diff --git a/hw/ppc/Kconfig b/hw/ppc/Kconfig
> index 3935b73456f..706debd4fee 100644
> --- a/hw/ppc/Kconfig
> +++ b/hw/ppc/Kconfig
> @@ -1,5 +1,6 @@
> config PSERIES
> bool
> + default y
> depends on FDT
> imply PCI_DEVICES
> imply TEST_DEVICES
> ---
>
> But I suppose it breaks user expectations.
>
> Thoughts?
>
> ;)
>