diff mbox series

stub: Fix build failure with --enable-user --disable-system --enable-tools

Message ID 20250121154318.214680-1-zhao1.liu@intel.com (mailing list archive)
State New
Headers show
Series stub: Fix build failure with --enable-user --disable-system --enable-tools | expand

Commit Message

Zhao Liu Jan. 21, 2025, 3:43 p.m. UTC
Configuring "--enable-user --disable-system --enable-tools" causes the
build failure with the following information:

/usr/bin/ld: libhwcore.a.p/hw_core_qdev.c.o: in function `device_finalize':
/qemu/build/../hw/core/qdev.c:688: undefined reference to `qapi_event_send_device_deleted'
collect2: error: ld returned 1 exit status

To fix the above issue, add qdev.c stub when build with `have_tools`.

With this fix, QEMU could be successfully built in the following cases:
 --enable-user --disable-system --enable-tools
 --enable-user --disable-system --disable-tools
 --enable-user --disable-system

Cc: qemu-stable@nongnu.org
Fixes: 388b849fb6c3 ("stubs: avoid duplicate symbols in libqemuutil.a")
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2766
Signed-off-by: Zhao Liu <zhao1.liu@intel.com>
---
 stubs/meson.build | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Paolo Bonzini Jan. 21, 2025, 3:54 p.m. UTC | #1
On 1/21/25 16:43, Zhao Liu wrote:
> Configuring "--enable-user --disable-system --enable-tools" causes the
> build failure with the following information:
> 
> /usr/bin/ld: libhwcore.a.p/hw_core_qdev.c.o: in function `device_finalize':
> /qemu/build/../hw/core/qdev.c:688: undefined reference to `qapi_event_send_device_deleted'
> collect2: error: ld returned 1 exit status
> 
> To fix the above issue, add qdev.c stub when build with `have_tools`.
> 
> With this fix, QEMU could be successfully built in the following cases:
>   --enable-user --disable-system --enable-tools
>   --enable-user --disable-system --disable-tools
>   --enable-user --disable-system
> 
> Cc: qemu-stable@nongnu.org
> Fixes: 388b849fb6c3 ("stubs: avoid duplicate symbols in libqemuutil.a")
> Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2766
> Signed-off-by: Zhao Liu <zhao1.liu@intel.com>
> ---
>   stubs/meson.build | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/stubs/meson.build b/stubs/meson.build
> index e91614a874dc..a8b3aeb56450 100644
> --- a/stubs/meson.build
> +++ b/stubs/meson.build
> @@ -57,8 +57,8 @@ if have_user
>     stub_ss.add(files('cpu-synchronize-state.c'))
>   
>     # Stubs for QAPI events.  Those can always be included in the build, but
> -  # they are not built at all for --disable-system --disable-tools builds.
> -  if not (have_system or have_tools)
> +  # they are not built at all for --disable-system builds.
> +  if not have_system
>       stub_ss.add(files('qdev.c'))
>     endif

Matches

if have_system
   qapi_all_modules += [
     'acpi',
     'audio',
     'cryptodev',
     'qdev',
     'pci',
     'rocker',
     'tpm',
   ]
endif

Queued, thanks.

Paolo
diff mbox series

Patch

diff --git a/stubs/meson.build b/stubs/meson.build
index e91614a874dc..a8b3aeb56450 100644
--- a/stubs/meson.build
+++ b/stubs/meson.build
@@ -57,8 +57,8 @@  if have_user
   stub_ss.add(files('cpu-synchronize-state.c'))
 
   # Stubs for QAPI events.  Those can always be included in the build, but
-  # they are not built at all for --disable-system --disable-tools builds.
-  if not (have_system or have_tools)
+  # they are not built at all for --disable-system builds.
+  if not have_system
     stub_ss.add(files('qdev.c'))
   endif
 endif