Re: [PATCH v4 6/7] dump: Build once by adding stubs for non-x86 targets

2023-02-23 Thread Philippe Mathieu-Daudé

On 24/2/23 00:51, Richard Henderson wrote:

On 2/23/23 13:17, Philippe Mathieu-Daudé wrote:

Extract non-x86 stubs to win_dump-stub.c. We can now
build dump.o once for system emulation. Update meson.

Signed-off-by: Philippe Mathieu-Daudé 
---
  dump/dump.c  | 14 --
  dump/meson.build |  6 --
  dump/win_dump-stub.c | 23 +++
  3 files changed, 27 insertions(+), 16 deletions(-)
  create mode 100644 dump/win_dump-stub.c



diff --git a/dump/meson.build b/dump/meson.build
index 2eff29c3ea..6ae07e6fed 100644
--- a/dump/meson.build
+++ b/dump/meson.build
@@ -1,4 +1,6 @@
  softmmu_ss.add(files('dump-hmp-cmds.c'))
-specific_ss.add(when: 'CONFIG_SOFTMMU', if_true: [files('dump.c'), 
snappy, lzo])
-specific_ss.add(when: ['CONFIG_SOFTMMU', 'TARGET_X86_64'], if_true: 
files('win_dump.c'))
+softmmu_ss.add(when: 'CONFIG_SOFTMMU', if_true: [files('dump.c'), 
snappy, lzo])

+specific_ss.add(when: ['CONFIG_SOFTMMU', 'TARGET_X86_64'],
+    if_true: files('win_dump.c'),
+    if_false: files('win_dump-stub.c'))


Doesn't this add win_dump-stub.c when !(SOFTMMU && X86_64), i.e. 
!SOFTMMU || !X86_64?


I trying to imagine how well this will scale with ARM64, for the ongoing 
Windows on ARM project.  Would it just be easier have the stubs in 
win_dump.c, using ifdefs?


Yeah I realized that later, keeping one single file with #ifdef'ry
even simplifies meson rules. I over-engineered that :)
Also various methods from win_dump.c could be reused.



Re: [PATCH v4 6/7] dump: Build once by adding stubs for non-x86 targets

2023-02-23 Thread Richard Henderson

On 2/23/23 13:17, Philippe Mathieu-Daudé wrote:

Extract non-x86 stubs to win_dump-stub.c. We can now
build dump.o once for system emulation. Update meson.

Signed-off-by: Philippe Mathieu-Daudé 
---
  dump/dump.c  | 14 --
  dump/meson.build |  6 --
  dump/win_dump-stub.c | 23 +++
  3 files changed, 27 insertions(+), 16 deletions(-)
  create mode 100644 dump/win_dump-stub.c

diff --git a/dump/dump.c b/dump/dump.c
index b33a613d45..7cde3e326e 100644
--- a/dump/dump.c
+++ b/dump/dump.c
@@ -32,20 +32,6 @@
  #include "migration/blocker.h"
  #include "win_dump.h"
  
-#ifndef TARGET_X86_64

-bool win_dump_available(Error **errp)
-{
-error_setg(errp, "Windows dump is only available for x86-64");
-
-return false;
-}
-
-void create_win_dump(DumpState *s, Error **errp)
-{
-win_dump_available(errp);
-}
-#endif
-
  #include 
  #ifdef CONFIG_LZO
  #include 
diff --git a/dump/meson.build b/dump/meson.build
index 2eff29c3ea..6ae07e6fed 100644
--- a/dump/meson.build
+++ b/dump/meson.build
@@ -1,4 +1,6 @@
  softmmu_ss.add(files('dump-hmp-cmds.c'))
  
-specific_ss.add(when: 'CONFIG_SOFTMMU', if_true: [files('dump.c'), snappy, lzo])

-specific_ss.add(when: ['CONFIG_SOFTMMU', 'TARGET_X86_64'], if_true: 
files('win_dump.c'))
+softmmu_ss.add(when: 'CONFIG_SOFTMMU', if_true: [files('dump.c'), snappy, lzo])
+specific_ss.add(when: ['CONFIG_SOFTMMU', 'TARGET_X86_64'],
+if_true: files('win_dump.c'),
+if_false: files('win_dump-stub.c'))


Doesn't this add win_dump-stub.c when !(SOFTMMU && X86_64), i.e. !SOFTMMU || 
!X86_64?

I trying to imagine how well this will scale with ARM64, for the ongoing Windows on ARM 
project.  Would it just be easier have the stubs in win_dump.c, using ifdefs?



r~



[PATCH v4 6/7] dump: Build once by adding stubs for non-x86 targets

2023-02-23 Thread Philippe Mathieu-Daudé
Extract non-x86 stubs to win_dump-stub.c. We can now
build dump.o once for system emulation. Update meson.

Signed-off-by: Philippe Mathieu-Daudé 
---
 dump/dump.c  | 14 --
 dump/meson.build |  6 --
 dump/win_dump-stub.c | 23 +++
 3 files changed, 27 insertions(+), 16 deletions(-)
 create mode 100644 dump/win_dump-stub.c

diff --git a/dump/dump.c b/dump/dump.c
index b33a613d45..7cde3e326e 100644
--- a/dump/dump.c
+++ b/dump/dump.c
@@ -32,20 +32,6 @@
 #include "migration/blocker.h"
 #include "win_dump.h"
 
-#ifndef TARGET_X86_64
-bool win_dump_available(Error **errp)
-{
-error_setg(errp, "Windows dump is only available for x86-64");
-
-return false;
-}
-
-void create_win_dump(DumpState *s, Error **errp)
-{
-win_dump_available(errp);
-}
-#endif
-
 #include 
 #ifdef CONFIG_LZO
 #include 
diff --git a/dump/meson.build b/dump/meson.build
index 2eff29c3ea..6ae07e6fed 100644
--- a/dump/meson.build
+++ b/dump/meson.build
@@ -1,4 +1,6 @@
 softmmu_ss.add(files('dump-hmp-cmds.c'))
 
-specific_ss.add(when: 'CONFIG_SOFTMMU', if_true: [files('dump.c'), snappy, 
lzo])
-specific_ss.add(when: ['CONFIG_SOFTMMU', 'TARGET_X86_64'], if_true: 
files('win_dump.c'))
+softmmu_ss.add(when: 'CONFIG_SOFTMMU', if_true: [files('dump.c'), snappy, lzo])
+specific_ss.add(when: ['CONFIG_SOFTMMU', 'TARGET_X86_64'],
+if_true: files('win_dump.c'),
+if_false: files('win_dump-stub.c'))
diff --git a/dump/win_dump-stub.c b/dump/win_dump-stub.c
new file mode 100644
index 00..87cb699e3d
--- /dev/null
+++ b/dump/win_dump-stub.c
@@ -0,0 +1,23 @@
+/*
+ * Windows crashdump stubs for non-x86 targets
+ *
+ * Copyright (c) 2023 Linaro Ltd
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
+
+#include "qemu/osdep.h"
+#include "qapi/error.h"
+#include "win_dump.h"
+
+bool win_dump_available(Error **errp)
+{
+error_setg(errp, "Windows dump is only available for x86-64");
+
+return false;
+}
+
+void create_win_dump(DumpState *s, Error **errp)
+{
+win_dump_available(errp);
+}
-- 
2.38.1