[PULL,v2,15/15] hw/core: Only build guest-loader if libfdt is available

Message ID 20210317072216.16316-16-alex.bennee@linaro.org
State New
Headers show
Series
  • misc fixes (strtoz, plugins, guest-loader)
Related show

Commit Message

Alex Bennée March 17, 2021, 7:22 a.m.
From: Philippe Mathieu-Daudé <philmd@redhat.com>


Add a Kconfig entry for guest-loader so we can optionally deselect
it (default is built in), and add a Meson dependency on libfdt.

This fixes when building with --disable-fdt:

  /usr/bin/ld: libcommon.fa.p/hw_core_guest-loader.c.o: in function `loader_insert_platform_data':
  hw/core/guest-loader.c:56: undefined reference to `qemu_fdt_add_subnode'
  /usr/bin/ld: hw/core/guest-loader.c:57: undefined reference to `qemu_fdt_setprop'
  /usr/bin/ld: hw/core/guest-loader.c:61: undefined reference to `qemu_fdt_setprop_string_array'
  /usr/bin/ld: hw/core/guest-loader.c:68: undefined reference to `qemu_fdt_setprop_string'
  /usr/bin/ld: hw/core/guest-loader.c:74: undefined reference to `qemu_fdt_setprop_string_array'
  collect2: error: ld returned 1 exit status

Fixes: a33ff6d2c6b ("hw/core: implement a guest-loader to support static hypervisor guests")
Reported-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>

Tested-by: Christian Borntraeger <borntraeger@de.ibm.com>

Reviewed-by: Alistair Francis <alistair.francis@wdc.com>

Message-Id: <20210315170439.2868903-1-philmd@redhat.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>


-- 
2.20.1

Comments

Philippe Mathieu-Daudé March 17, 2021, 12:10 p.m. | #1
Hi Alex,

On 3/17/21 8:22 AM, Alex Bennée wrote:
> From: Philippe Mathieu-Daudé <philmd@redhat.com>

> 

> Add a Kconfig entry for guest-loader so we can optionally deselect

> it (default is built in), and add a Meson dependency on libfdt.

> 

> This fixes when building with --disable-fdt:

> 

>   /usr/bin/ld: libcommon.fa.p/hw_core_guest-loader.c.o: in function `loader_insert_platform_data':

>   hw/core/guest-loader.c:56: undefined reference to `qemu_fdt_add_subnode'

>   /usr/bin/ld: hw/core/guest-loader.c:57: undefined reference to `qemu_fdt_setprop'

>   /usr/bin/ld: hw/core/guest-loader.c:61: undefined reference to `qemu_fdt_setprop_string_array'

>   /usr/bin/ld: hw/core/guest-loader.c:68: undefined reference to `qemu_fdt_setprop_string'

>   /usr/bin/ld: hw/core/guest-loader.c:74: undefined reference to `qemu_fdt_setprop_string_array'

>   collect2: error: ld returned 1 exit status

> 

> Fixes: a33ff6d2c6b ("hw/core: implement a guest-loader to support static hypervisor guests")

> Reported-by: Christian Borntraeger <borntraeger@de.ibm.com>

> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>

> Tested-by: Christian Borntraeger <borntraeger@de.ibm.com>

> Reviewed-by: Alistair Francis <alistair.francis@wdc.com>

> Message-Id: <20210315170439.2868903-1-philmd@redhat.com>

> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>


On Mon, Mar 15, 2021 at 06:04:39PM +0100, Philippe Mathieu-Daudé wrote:
>Add a Kconfig entry for guest-loader so we can optionally deselect

>it (default is built in), and add a Meson dependency on libfdt.

>

>This fixes when building with --disable-fdt:

>

>  /usr/bin/ld: libcommon.fa.p/hw_core_guest-loader.c.o: in function

`loader_insert_platform_data':
>  hw/core/guest-loader.c:56: undefined reference to `qemu_fdt_add_subnode'

>  /usr/bin/ld: hw/core/guest-loader.c:57: undefined reference to

`qemu_fdt_setprop'
>  /usr/bin/ld: hw/core/guest-loader.c:61: undefined reference to

`qemu_fdt_setprop_string_array'
>  /usr/bin/ld: hw/core/guest-loader.c:68: undefined reference to

`qemu_fdt_setprop_string'
>  /usr/bin/ld: hw/core/guest-loader.c:74: undefined reference to

`qemu_fdt_setprop_string_array'
>  collect2: error: ld returned 1 exit status

>

>Fixes: a33ff6d2c6b ("hw/core: implement a guest-loader to support

static hypervisor guests")
>Reported-by: Christian Borntraeger <borntraeger@de.ibm.com>

>Tested-by: Christian Borntraeger <borntraeger@de.ibm.com>

>Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>


If you have to post a v3 due to merge conflict, this patch
also had:

Reviewed-by: Anthoine Bourgeois <anthoine.bourgeois@gmail.com>

Tested-by: Anthoine Bourgeois <anthoine.bourgeois@gmail.com>


(but it was sent off-list).

Thanks,

Phil.

Patch

diff --git a/hw/core/Kconfig b/hw/core/Kconfig
index fdf03514d7..9397503656 100644
--- a/hw/core/Kconfig
+++ b/hw/core/Kconfig
@@ -11,6 +11,11 @@  config GENERIC_LOADER
     bool
     default y
 
+config GUEST_LOADER
+    bool
+    default y
+    depends on TCG
+
 config OR_IRQ
     bool
 
diff --git a/hw/core/meson.build b/hw/core/meson.build
index 9cd72edf51..59f1605bb0 100644
--- a/hw/core/meson.build
+++ b/hw/core/meson.build
@@ -16,6 +16,7 @@  hwcore_files = files(
 common_ss.add(files('cpu.c'))
 common_ss.add(when: 'CONFIG_FITLOADER', if_true: files('loader-fit.c'))
 common_ss.add(when: 'CONFIG_GENERIC_LOADER', if_true: files('generic-loader.c'))
+common_ss.add(when: ['CONFIG_GUEST_LOADER', fdt], if_true: files('guest-loader.c'))
 common_ss.add(when: 'CONFIG_OR_IRQ', if_true: files('or-irq.c'))
 common_ss.add(when: 'CONFIG_PLATFORM_BUS', if_true: files('platform-bus.c'))
 common_ss.add(when: 'CONFIG_PTIMER', if_true: files('ptimer.c'))
@@ -37,8 +38,6 @@  softmmu_ss.add(files(
   'clock-vmstate.c',
 ))
 
-softmmu_ss.add(when: 'CONFIG_TCG', if_true: files('guest-loader.c'))
-
 specific_ss.add(when: 'CONFIG_SOFTMMU', if_true: files(
   'machine-qmp-cmds.c',
   'numa.c',