All of lore.kernel.org
 help / color / mirror / Atom feed
* [PULL 00/24] QEMU patches for 2022-12-21
@ 2022-12-21 18:01 Paolo Bonzini
  2022-12-21 18:01 ` [PULL 01/24] typedefs: Forward-declare AccelState Paolo Bonzini
                   ` (24 more replies)
  0 siblings, 25 replies; 26+ messages in thread
From: Paolo Bonzini @ 2022-12-21 18:01 UTC (permalink / raw)
  To: qemu-devel

The following changes since commit d038d2645acabf6f52fd61baeaa021c3ebe97714:

  Merge tag 'for-upstream' of https://repo.or.cz/qemu/kevin into staging (2022-12-16 13:26:09 +0000)

are available in the Git repository at:

  https://gitlab.com/bonzini/qemu.git tags/for-upstream

for you to fetch changes up to 4a4c1382c8c3fe6e25c782bfda5de753ced3f6a1:

  i386: SGX: remove deprecated member of SGXInfo (2022-12-20 15:45:45 +0100)

----------------------------------------------------------------
* Atomic memslot updates for KVM (Emanuele, David)
* Always send errors to logfile when daemonized (Greg)
* Add support for IDE CompactFlash card (Lubomir)
* First round of build system cleanups (myself)
* First round of feature removals (myself)
* Reduce "qemu/accel.h" inclusion (Philippe)

----------------------------------------------------------------
Greg Kurz (1):
      util/log: Always send errors to logfile when daemonized

Kai Huang (1):
      target/i386: Add SGX aex-notify and EDECCSSA support

Lubomir Rintel (2):
      ide: Add 8-bit data mode
      ide: Add "ide-cf" driver, a CompactFlash card

Paolo Bonzini (18):
      util/log: do not close and reopen log files when flags are turned off
      configure: remove useless write_c_skeleton
      configure: remove dead function
      configure: cleanup $cpu tests
      configure: preserve qemu-ga variables
      configure: remove backwards-compatibility and obsolete options
      meson: tweak hardening options for Windows
      meson: cleanup dummy-cpus.c rules
      tests/qapi-schema: remove Meson workaround
      configure: test all warnings
      meson: support meson 0.64 -Doptimization=plain
      meson: cleanup compiler detection
      meson: accept relative symlinks in "meson introspect --installed" data
      docs: do not talk about past removal as happening in the future
      KVM: remove support for kernel-irqchip=off
      util: remove support for hex numbers with a scaling suffix
      util: remove support -chardev tty and -chardev parport
      i386: SGX: remove deprecated member of SGXInfo

Philippe Mathieu-Daudé (2):
      typedefs: Forward-declare AccelState
      hw: Reduce "qemu/accel.h" inclusion

 accel/meson.build               |  9 +----
 chardev/char.c                  | 33 +---------------
 configure                       | 74 +++++++++---------------------------
 docs/about/deprecated.rst       | 34 -----------------
 docs/about/removed-features.rst | 41 ++++++++++++++++++--
 docs/qdev-device-use.txt        |  4 +-
 hw/core/machine.c               |  1 +
 hw/i386/amd_iommu.c             |  2 +-
 hw/i386/intel_iommu.c           |  4 +-
 hw/i386/sgx.c                   | 15 +++-----
 hw/ide/core.c                   | 43 ++++++++++++++++-----
 hw/ide/qdev.c                   | 32 ++++++++++++++++
 include/hw/boards.h             |  1 -
 include/hw/i386/apic_internal.h |  2 +-
 include/hw/ide/internal.h       |  1 +
 include/qemu/accel.h            |  4 +-
 include/qemu/typedefs.h         |  1 +
 meson.build                     | 83 ++++++++++++++++++++--------------------
 qapi/misc-target.json           | 12 +-----
 qemu-options.hx                 | 11 +-----
 scripts/symlink-install-tree.py |  1 -
 target/i386/cpu-sysemu.c        | 15 ++++++--
 target/i386/cpu.c               |  4 +-
 tests/qapi-schema/meson.build   |  6 +--
 tests/unit/test-cutils.c        |  8 ++++
 util/cutils.c                   | 14 ++-----
 util/log.c                      | 84 ++++++++++++++++++++++++++++-------------
 27 files changed, 271 insertions(+), 268 deletions(-)
-- 
2.38.1



^ permalink raw reply	[flat|nested] 26+ messages in thread

* [PULL 01/24] typedefs: Forward-declare AccelState
  2022-12-21 18:01 [PULL 00/24] QEMU patches for 2022-12-21 Paolo Bonzini
@ 2022-12-21 18:01 ` Paolo Bonzini
  2022-12-21 18:01 ` [PULL 02/24] hw: Reduce "qemu/accel.h" inclusion Paolo Bonzini
                   ` (23 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Paolo Bonzini @ 2022-12-21 18:01 UTC (permalink / raw)
  To: qemu-devel; +Cc: Philippe Mathieu-Daudé, Fabiano Rosas

From: Philippe Mathieu-Daudé <philmd@linaro.org>

Forward-declare AccelState in "qemu/typedefs.h" so structures
using a reference of it (like MachineState in "hw/boards.h")
don't have to include "qemu/accel.h".

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Message-Id: <20221130135641.85328-2-philmd@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 include/qemu/accel.h    | 4 ++--
 include/qemu/typedefs.h | 1 +
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/include/qemu/accel.h b/include/qemu/accel.h
index ce4747634a7c..e84db2e3e504 100644
--- a/include/qemu/accel.h
+++ b/include/qemu/accel.h
@@ -26,10 +26,10 @@
 #include "qom/object.h"
 #include "exec/hwaddr.h"
 
-typedef struct AccelState {
+struct AccelState {
     /*< private >*/
     Object parent_obj;
-} AccelState;
+};
 
 typedef struct AccelClass {
     /*< private >*/
diff --git a/include/qemu/typedefs.h b/include/qemu/typedefs.h
index 688408e0481e..073abab9988a 100644
--- a/include/qemu/typedefs.h
+++ b/include/qemu/typedefs.h
@@ -21,6 +21,7 @@
  * Incomplete struct types
  * Please keep this list in case-insensitive alphabetical order.
  */
+typedef struct AccelState AccelState;
 typedef struct AdapterInfo AdapterInfo;
 typedef struct AddressSpace AddressSpace;
 typedef struct AioContext AioContext;
-- 
2.38.1



^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PULL 02/24] hw: Reduce "qemu/accel.h" inclusion
  2022-12-21 18:01 [PULL 00/24] QEMU patches for 2022-12-21 Paolo Bonzini
  2022-12-21 18:01 ` [PULL 01/24] typedefs: Forward-declare AccelState Paolo Bonzini
@ 2022-12-21 18:01 ` Paolo Bonzini
  2022-12-21 18:01 ` [PULL 03/24] util/log: do not close and reopen log files when flags are turned off Paolo Bonzini
                   ` (22 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Paolo Bonzini @ 2022-12-21 18:01 UTC (permalink / raw)
  To: qemu-devel; +Cc: Philippe Mathieu-Daudé, Fabiano Rosas

From: Philippe Mathieu-Daudé <philmd@linaro.org>

Move "qemu/accel.h" include from the heavily included
"hw/boards.h" to hw/core/machine.c, the single file using
the AccelState definition.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Message-Id: <20221130135641.85328-3-philmd@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 hw/core/machine.c   | 1 +
 include/hw/boards.h | 1 -
 2 files changed, 1 insertion(+), 1 deletion(-)

diff --git a/hw/core/machine.c b/hw/core/machine.c
index 644b34cd24d0..3e51a5d8eb2c 100644
--- a/hw/core/machine.c
+++ b/hw/core/machine.c
@@ -12,6 +12,7 @@
 
 #include "qemu/osdep.h"
 #include "qemu/option.h"
+#include "qemu/accel.h"
 #include "qapi/qmp/qerror.h"
 #include "sysemu/replay.h"
 #include "qemu/units.h"
diff --git a/include/hw/boards.h b/include/hw/boards.h
index 90f1dd3aeb79..f00f74c5f40e 100644
--- a/include/hw/boards.h
+++ b/include/hw/boards.h
@@ -6,7 +6,6 @@
 #include "exec/memory.h"
 #include "sysemu/hostmem.h"
 #include "sysemu/blockdev.h"
-#include "qemu/accel.h"
 #include "qapi/qapi-types-machine.h"
 #include "qemu/module.h"
 #include "qom/object.h"
-- 
2.38.1



^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PULL 03/24] util/log: do not close and reopen log files when flags are turned off
  2022-12-21 18:01 [PULL 00/24] QEMU patches for 2022-12-21 Paolo Bonzini
  2022-12-21 18:01 ` [PULL 01/24] typedefs: Forward-declare AccelState Paolo Bonzini
  2022-12-21 18:01 ` [PULL 02/24] hw: Reduce "qemu/accel.h" inclusion Paolo Bonzini
@ 2022-12-21 18:01 ` Paolo Bonzini
  2022-12-21 18:01 ` [PULL 04/24] util/log: Always send errors to logfile when daemonized Paolo Bonzini
                   ` (21 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Paolo Bonzini @ 2022-12-21 18:01 UTC (permalink / raw)
  To: qemu-devel; +Cc: Alex Bennée, Richard Henderson, Greg Kurz

log_append makes sure that if you turn off the logging (which clears
log_flags and makes need_to_open_file false) the old log is not
overwritten.  The usecase is that if you remove or move the file
QEMU will not keep writing to the old file.  However, this is
not always the desited behavior, in particular having log_append==1
after changing the file name makes little sense.

When qemu_set_log_internal is called from the logfile monitor
command, filename must be non-NULL and therefore changed_name must
be true.  Therefore, the only case where the file is closed and
need_to_open_file == false is indeed when log_flags becomes
zero.  In this case, just flush the file and do not bother
closing it, thus faking the same append behavior as previously.

The behavioral change is that changing the logfile twice, for
example log1 -> log2 -> log1, will cause log1 to be overwritten.
This can simply be documented, since it is not a particularly
surprising behavior.

Suggested-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Greg Kurz <groug@kaod.org>
Message-Id: <20221025092119.236224-1-pbonzini@redhat.com>
[groug: nullify global_file before actually closing the file]
Signed-off-by: Greg Kurz <groug@kaod.org>
Message-Id: <20221108140032.1460307-2-groug@kaod.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 util/log.c | 14 ++++++--------
 1 file changed, 6 insertions(+), 8 deletions(-)

diff --git a/util/log.c b/util/log.c
index c2198badf240..fb843453dd49 100644
--- a/util/log.c
+++ b/util/log.c
@@ -45,7 +45,6 @@ static __thread FILE *thread_file;
 static __thread Notifier qemu_log_thread_cleanup_notifier;
 
 int qemu_loglevel;
-static bool log_append;
 static bool log_per_thread;
 static GArray *debug_regions;
 
@@ -277,19 +276,20 @@ static bool qemu_set_log_internal(const char *filename, bool changed_name,
     daemonized = is_daemonized();
     need_to_open_file = log_flags && !per_thread && (!daemonized || filename);
 
-    if (logfile && (!need_to_open_file || changed_name)) {
-        qatomic_rcu_set(&global_file, NULL);
-        if (logfile != stderr) {
+    if (logfile) {
+        fflush(logfile);
+        if (changed_name && logfile != stderr) {
             RCUCloseFILE *r = g_new0(RCUCloseFILE, 1);
             r->fd = logfile;
+            qatomic_rcu_set(&global_file, NULL);
             call_rcu(r, rcu_close_file, rcu);
+            logfile = NULL;
         }
-        logfile = NULL;
     }
 
     if (!logfile && need_to_open_file) {
         if (filename) {
-            logfile = fopen(filename, log_append ? "a" : "w");
+            logfile = fopen(filename, "w");
             if (!logfile) {
                 error_setg_errno(errp, errno, "Error opening logfile %s",
                                  filename);
@@ -308,8 +308,6 @@ static bool qemu_set_log_internal(const char *filename, bool changed_name,
             logfile = stderr;
         }
 
-        log_append = 1;
-
         qatomic_rcu_set(&global_file, logfile);
     }
     return true;
-- 
2.38.1



^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PULL 04/24] util/log: Always send errors to logfile when daemonized
  2022-12-21 18:01 [PULL 00/24] QEMU patches for 2022-12-21 Paolo Bonzini
                   ` (2 preceding siblings ...)
  2022-12-21 18:01 ` [PULL 03/24] util/log: do not close and reopen log files when flags are turned off Paolo Bonzini
@ 2022-12-21 18:01 ` Paolo Bonzini
  2022-12-21 18:01 ` [PULL 05/24] ide: Add 8-bit data mode Paolo Bonzini
                   ` (20 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Paolo Bonzini @ 2022-12-21 18:01 UTC (permalink / raw)
  To: qemu-devel; +Cc: Greg Kurz

From: Greg Kurz <groug@kaod.org>

When QEMU is started with `-daemonize`, all stdio descriptors get
redirected to `/dev/null`. This basically means that anything
printed with error_report() and friends is lost.

Current logging code allows to redirect to a file with `-D` but
this requires to enable some logging item with `-d` as well to
be functional.

Relax the check on the log flags when QEMU is daemonized, so that
other users of stderr can benefit from the redirection, without the
need to enable unwanted debug logs. Previous behaviour is retained
for the non-daemonized case. The logic is unrolled as an `if` for
better readability. The qemu_log_level and log_per_thread globals
reflect the state we want to transition to at this point : use
them instead of the intermediary locals for correctness.

qemu_set_log_internal() is adapted to open a per-thread log file
when '-d tid' is passed. This is done by hijacking qemu_try_lock()
which seems simpler that refactoring the code.

Signed-off-by: Greg Kurz <groug@kaod.org>
Message-Id: <20221108140032.1460307-3-groug@kaod.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 util/log.c | 72 ++++++++++++++++++++++++++++++++++++++++--------------
 1 file changed, 53 insertions(+), 19 deletions(-)

diff --git a/util/log.c b/util/log.c
index fb843453dd49..7837ff991769 100644
--- a/util/log.c
+++ b/util/log.c
@@ -79,13 +79,15 @@ static int log_thread_id(void)
 
 static void qemu_log_thread_cleanup(Notifier *n, void *unused)
 {
-    fclose(thread_file);
-    thread_file = NULL;
+    if (thread_file != stderr) {
+        fclose(thread_file);
+        thread_file = NULL;
+    }
 }
 
 /* Lock/unlock output. */
 
-FILE *qemu_log_trylock(void)
+static FILE *qemu_log_trylock_with_err(Error **errp)
 {
     FILE *logfile;
 
@@ -96,6 +98,9 @@ FILE *qemu_log_trylock(void)
                 = g_strdup_printf(global_filename, log_thread_id());
             logfile = fopen(filename, "w");
             if (!logfile) {
+                error_setg_errno(errp, errno,
+                                 "Error opening logfile %s for thread %d",
+                                 filename, log_thread_id());
                 return NULL;
             }
             thread_file = logfile;
@@ -122,6 +127,11 @@ FILE *qemu_log_trylock(void)
     return logfile;
 }
 
+FILE *qemu_log_trylock(void)
+{
+    return qemu_log_trylock_with_err(NULL);
+}
+
 void qemu_log_unlock(FILE *logfile)
 {
     if (logfile) {
@@ -265,16 +275,21 @@ static bool qemu_set_log_internal(const char *filename, bool changed_name,
 #endif
     qemu_loglevel = log_flags;
 
-    /*
-     * In all cases we only log if qemu_loglevel is set.
-     * Also:
-     *   If per-thread, open the file for each thread in qemu_log_lock.
-     *   If not daemonized we will always log either to stderr
-     *     or to a file (if there is a filename).
-     *   If we are daemonized, we will only log if there is a filename.
-     */
     daemonized = is_daemonized();
-    need_to_open_file = log_flags && !per_thread && (!daemonized || filename);
+    need_to_open_file = false;
+    if (!daemonized) {
+        /*
+         * If not daemonized we only log if qemu_loglevel is set, either to
+         * stderr or to a file (if there is a filename).
+         * If per-thread, open the file for each thread in qemu_log_trylock().
+         */
+        need_to_open_file = qemu_loglevel && !log_per_thread;
+    } else {
+        /*
+         * If we are daemonized, we will only log if there is a filename.
+         */
+        need_to_open_file = filename != NULL;
+    }
 
     if (logfile) {
         fflush(logfile);
@@ -287,19 +302,34 @@ static bool qemu_set_log_internal(const char *filename, bool changed_name,
         }
     }
 
+    if (log_per_thread && daemonized) {
+        logfile = thread_file;
+    }
+
     if (!logfile && need_to_open_file) {
         if (filename) {
-            logfile = fopen(filename, "w");
-            if (!logfile) {
-                error_setg_errno(errp, errno, "Error opening logfile %s",
-                                 filename);
-                return false;
+            if (log_per_thread) {
+                logfile = qemu_log_trylock_with_err(errp);
+                if (!logfile) {
+                    return false;
+                }
+                qemu_log_unlock(logfile);
+            } else {
+                logfile = fopen(filename, "w");
+                if (!logfile) {
+                    error_setg_errno(errp, errno, "Error opening logfile %s",
+                                     filename);
+                    return false;
+                }
             }
             /* In case we are a daemon redirect stderr to logfile */
             if (daemonized) {
                 dup2(fileno(logfile), STDERR_FILENO);
                 fclose(logfile);
-                /* This will skip closing logfile in rcu_close_file. */
+                /*
+                 * This will skip closing logfile in rcu_close_file()
+                 * or qemu_log_thread_cleanup().
+                 */
                 logfile = stderr;
             }
         } else {
@@ -308,7 +338,11 @@ static bool qemu_set_log_internal(const char *filename, bool changed_name,
             logfile = stderr;
         }
 
-        qatomic_rcu_set(&global_file, logfile);
+        if (log_per_thread && daemonized) {
+            thread_file = logfile;
+        } else {
+            qatomic_rcu_set(&global_file, logfile);
+        }
     }
     return true;
 }
-- 
2.38.1



^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PULL 05/24] ide: Add 8-bit data mode
  2022-12-21 18:01 [PULL 00/24] QEMU patches for 2022-12-21 Paolo Bonzini
                   ` (3 preceding siblings ...)
  2022-12-21 18:01 ` [PULL 04/24] util/log: Always send errors to logfile when daemonized Paolo Bonzini
@ 2022-12-21 18:01 ` Paolo Bonzini
  2022-12-21 18:01 ` [PULL 06/24] ide: Add "ide-cf" driver, a CompactFlash card Paolo Bonzini
                   ` (19 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Paolo Bonzini @ 2022-12-21 18:01 UTC (permalink / raw)
  To: qemu-devel; +Cc: Lubomir Rintel

From: Lubomir Rintel <lkundrak@v3.sk>

CompactFlash uses features 0x01 and 0x81 to enable/disable 8-bit data
path. Implement them.

Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
Message-Id: <20221130120238.706717-1-lkundrak@v3.sk>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 hw/ide/core.c             | 43 ++++++++++++++++++++++++++++++---------
 include/hw/ide/internal.h |  1 +
 2 files changed, 34 insertions(+), 10 deletions(-)

diff --git a/hw/ide/core.c b/hw/ide/core.c
index 39afdc0006b9..5d1039378f1d 100644
--- a/hw/ide/core.c
+++ b/hw/ide/core.c
@@ -1648,6 +1648,13 @@ static bool cmd_set_features(IDEState *s, uint8_t cmd)
 
     /* XXX: valid for CDROM ? */
     switch (s->feature) {
+    case 0x01: /* 8-bit I/O enable (CompactFlash) */
+    case 0x81: /* 8-bit I/O disable (CompactFlash) */
+        if (s->drive_kind != IDE_CFATA) {
+            goto abort_cmd;
+        }
+        s->io8 = !(s->feature & 0x80);
+        return true;
     case 0x02: /* write cache enable */
         blk_set_enable_write_cache(s->blk, true);
         identify_data = (uint16_t *)s->identify_data;
@@ -2374,12 +2381,20 @@ void ide_data_writew(void *opaque, uint32_t addr, uint32_t val)
     }
 
     p = s->data_ptr;
-    if (p + 2 > s->data_end) {
-        return;
-    }
+    if (s->io8) {
+        if (p + 1 > s->data_end) {
+            return;
+        }
 
-    *(uint16_t *)p = le16_to_cpu(val);
-    p += 2;
+        *p++ = val;
+    } else {
+        if (p + 2 > s->data_end) {
+            return;
+        }
+
+        *(uint16_t *)p = le16_to_cpu(val);
+        p += 2;
+    }
     s->data_ptr = p;
     if (p >= s->data_end) {
         s->status &= ~DRQ_STAT;
@@ -2401,12 +2416,20 @@ uint32_t ide_data_readw(void *opaque, uint32_t addr)
     }
 
     p = s->data_ptr;
-    if (p + 2 > s->data_end) {
-        return 0;
-    }
+    if (s->io8) {
+        if (p + 1 > s->data_end) {
+            return 0;
+        }
 
-    ret = cpu_to_le16(*(uint16_t *)p);
-    p += 2;
+        ret = *p++;
+    } else {
+        if (p + 2 > s->data_end) {
+            return 0;
+        }
+
+        ret = cpu_to_le16(*(uint16_t *)p);
+        p += 2;
+    }
     s->data_ptr = p;
     if (p >= s->data_end) {
         s->status &= ~DRQ_STAT;
diff --git a/include/hw/ide/internal.h b/include/hw/ide/internal.h
index b17f36df957d..fc0aa81a88b9 100644
--- a/include/hw/ide/internal.h
+++ b/include/hw/ide/internal.h
@@ -402,6 +402,7 @@ struct IDEState {
     uint8_t select;
     uint8_t status;
 
+    bool io8;
     bool reset_reverts;
 
     /* set for lba48 access */
-- 
2.38.1



^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PULL 06/24] ide: Add "ide-cf" driver, a CompactFlash card
  2022-12-21 18:01 [PULL 00/24] QEMU patches for 2022-12-21 Paolo Bonzini
                   ` (4 preceding siblings ...)
  2022-12-21 18:01 ` [PULL 05/24] ide: Add 8-bit data mode Paolo Bonzini
@ 2022-12-21 18:01 ` Paolo Bonzini
  2022-12-21 18:01 ` [PULL 07/24] configure: remove useless write_c_skeleton Paolo Bonzini
                   ` (18 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Paolo Bonzini @ 2022-12-21 18:01 UTC (permalink / raw)
  To: qemu-devel; +Cc: Lubomir Rintel

From: Lubomir Rintel <lkundrak@v3.sk>

This allows attaching IDE_CFATA device to an IDE bus. Behaves like a
CompactFlash card in True IDE mode.

Tested with:

  qemu-system-i386 \
    -device driver=ide-cf,drive=cf,bus=ide.0 \
    -drive id=cf,index=0,format=raw,if=none,file=cf.img

Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
Message-Id: <20221130120319.706885-1-lkundrak@v3.sk>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 hw/ide/qdev.c | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/hw/ide/qdev.c b/hw/ide/qdev.c
index 618045b85ace..6f6c7462f3b6 100644
--- a/hw/ide/qdev.c
+++ b/hw/ide/qdev.c
@@ -283,6 +283,11 @@ static void ide_cd_realize(IDEDevice *dev, Error **errp)
     ide_dev_initfn(dev, IDE_CD, errp);
 }
 
+static void ide_cf_realize(IDEDevice *dev, Error **errp)
+{
+    ide_dev_initfn(dev, IDE_CFATA, errp);
+}
+
 #define DEFINE_IDE_DEV_PROPERTIES()                     \
     DEFINE_BLOCK_PROPERTIES(IDEDrive, dev.conf),        \
     DEFINE_BLOCK_ERROR_PROPERTIES(IDEDrive, dev.conf),  \
@@ -341,6 +346,32 @@ static const TypeInfo ide_cd_info = {
     .class_init    = ide_cd_class_init,
 };
 
+static Property ide_cf_properties[] = {
+    DEFINE_IDE_DEV_PROPERTIES(),
+    DEFINE_BLOCK_CHS_PROPERTIES(IDEDrive, dev.conf),
+    DEFINE_PROP_BIOS_CHS_TRANS("bios-chs-trans",
+                IDEDrive, dev.chs_trans, BIOS_ATA_TRANSLATION_AUTO),
+    DEFINE_PROP_END_OF_LIST(),
+};
+
+static void ide_cf_class_init(ObjectClass *klass, void *data)
+{
+    DeviceClass *dc = DEVICE_CLASS(klass);
+    IDEDeviceClass *k = IDE_DEVICE_CLASS(klass);
+
+    k->realize  = ide_cf_realize;
+    dc->fw_name = "drive";
+    dc->desc    = "virtual CompactFlash card";
+    device_class_set_props(dc, ide_cf_properties);
+}
+
+static const TypeInfo ide_cf_info = {
+    .name          = "ide-cf",
+    .parent        = TYPE_IDE_DEVICE,
+    .instance_size = sizeof(IDEDrive),
+    .class_init    = ide_cf_class_init,
+};
+
 static void ide_device_class_init(ObjectClass *klass, void *data)
 {
     DeviceClass *k = DEVICE_CLASS(klass);
@@ -365,6 +396,7 @@ static void ide_register_types(void)
     type_register_static(&ide_bus_info);
     type_register_static(&ide_hd_info);
     type_register_static(&ide_cd_info);
+    type_register_static(&ide_cf_info);
     type_register_static(&ide_device_type_info);
 }
 
-- 
2.38.1



^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PULL 07/24] configure: remove useless write_c_skeleton
  2022-12-21 18:01 [PULL 00/24] QEMU patches for 2022-12-21 Paolo Bonzini
                   ` (5 preceding siblings ...)
  2022-12-21 18:01 ` [PULL 06/24] ide: Add "ide-cf" driver, a CompactFlash card Paolo Bonzini
@ 2022-12-21 18:01 ` Paolo Bonzini
  2022-12-21 18:01 ` [PULL 08/24] configure: remove dead function Paolo Bonzini
                   ` (17 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Paolo Bonzini @ 2022-12-21 18:01 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

This is not needed ever since QEMU stopped detecting -liberty; this
happened with the Meson switch but it is quite likely that the
library was not really necessary years before.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure | 1 -
 1 file changed, 1 deletion(-)

diff --git a/configure b/configure
index 26c7bc515468..e31d4522ea63 100755
--- a/configure
+++ b/configure
@@ -638,7 +638,6 @@ if test "$mingw32" = "yes" ; then
   EXESUF=".exe"
   # MinGW needs -mthreads for TLS and macro _MT.
   CONFIGURE_CFLAGS="-mthreads $CONFIGURE_CFLAGS"
-  write_c_skeleton;
   prefix="/qemu"
   bindir=""
   qemu_suffix=""
-- 
2.38.1



^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PULL 08/24] configure: remove dead function
  2022-12-21 18:01 [PULL 00/24] QEMU patches for 2022-12-21 Paolo Bonzini
                   ` (6 preceding siblings ...)
  2022-12-21 18:01 ` [PULL 07/24] configure: remove useless write_c_skeleton Paolo Bonzini
@ 2022-12-21 18:01 ` Paolo Bonzini
  2022-12-21 18:01 ` [PULL 09/24] configure: cleanup $cpu tests Paolo Bonzini
                   ` (16 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Paolo Bonzini @ 2022-12-21 18:01 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/configure b/configure
index e31d4522ea63..543fd5a48bf0 100755
--- a/configure
+++ b/configure
@@ -210,10 +210,6 @@ version_ge () {
     done
 }
 
-glob() {
-    eval test -z '"${1#'"$2"'}"'
-}
-
 if printf %s\\n "$source_path" "$PWD" | grep -q "[[:space:]:]";
 then
   error_exit "main directory cannot contain spaces nor colons"
-- 
2.38.1



^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PULL 09/24] configure: cleanup $cpu tests
  2022-12-21 18:01 [PULL 00/24] QEMU patches for 2022-12-21 Paolo Bonzini
                   ` (7 preceding siblings ...)
  2022-12-21 18:01 ` [PULL 08/24] configure: remove dead function Paolo Bonzini
@ 2022-12-21 18:01 ` Paolo Bonzini
  2022-12-21 18:01 ` [PULL 10/24] configure: preserve qemu-ga variables Paolo Bonzini
                   ` (15 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Paolo Bonzini @ 2022-12-21 18:01 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

$cpu is derived from preprocessor defines rather than uname these days,
so do not bother using isainfo on Solaris.  Likewise do not recognize
BeOS's uname -m output.

Keep the other, less OS-specific canonicalizations for the benefit
of people using --cpu.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure | 19 +++++++------------
 1 file changed, 7 insertions(+), 12 deletions(-)

diff --git a/configure b/configure
index 543fd5a48bf0..9cbbeaa269d1 100755
--- a/configure
+++ b/configure
@@ -337,9 +337,6 @@ for opt do
   ;;
   esac
 done
-# OS specific
-# Using uname is really, really broken.  Once we have the right set of checks
-# we can eliminate its usage altogether.
 
 # Preferred compiler:
 #  ${CC} (if set)
@@ -489,13 +486,6 @@ sunos)
   QEMU_CFLAGS="-D_XOPEN_SOURCE=600 $QEMU_CFLAGS"
 # needed for TIOCWIN* defines in termios.h
   QEMU_CFLAGS="-D__EXTENSIONS__ $QEMU_CFLAGS"
-  # $(uname -m) returns i86pc even on an x86_64 box, so default based on isainfo
-  # Note that this check is broken for cross-compilation: if you're
-  # cross-compiling to one of these OSes then you'll need to specify
-  # the correct CPU with the --cpu option.
-  if test -z "$cpu" && test "$(isainfo -k)" = "amd64"; then
-    cpu="x86_64"
-  fi
 ;;
 haiku)
   pie="no"
@@ -550,16 +540,21 @@ elif check_define __aarch64__ ; then
 elif check_define __loongarch64 ; then
   cpu="loongarch64"
 else
+  # Using uname is really broken, but it is just a fallback for architectures
+  # that are going to use TCI anyway
   cpu=$(uname -m)
+  echo "WARNING: unrecognized host CPU, proceeding with 'uname -m' output '$cpu'"
 fi
 
-# Normalise host CPU name, set multilib cflags
+# Normalise host CPU name and set multilib cflags.  The canonicalization
+# isn't really necessary, because the architectures that we check for
+# should not hit the 'uname -m' case, but better safe than sorry.
 # Note that this case should only have supported host CPUs, not guests.
 case "$cpu" in
   armv*b|armv*l|arm)
     cpu="arm" ;;
 
-  i386|i486|i586|i686|i86pc|BePC)
+  i386|i486|i586|i686)
     cpu="i386"
     CPU_CFLAGS="-m32" ;;
   x32)
-- 
2.38.1



^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PULL 10/24] configure: preserve qemu-ga variables
  2022-12-21 18:01 [PULL 00/24] QEMU patches for 2022-12-21 Paolo Bonzini
                   ` (8 preceding siblings ...)
  2022-12-21 18:01 ` [PULL 09/24] configure: cleanup $cpu tests Paolo Bonzini
@ 2022-12-21 18:01 ` Paolo Bonzini
  2022-12-21 18:01 ` [PULL 11/24] configure: remove backwards-compatibility and obsolete options Paolo Bonzini
                   ` (14 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Paolo Bonzini @ 2022-12-21 18:01 UTC (permalink / raw)
  To: qemu-devel; +Cc: Marc-André Lureau

Ensure that qemu-ga variables set at configure time are kept
later when the script is rerun.  For preserve_env to work,
the variables need to be empty so move the default values
to config-host.mak generation.

Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure | 23 ++++++-----------------
 1 file changed, 6 insertions(+), 17 deletions(-)

diff --git a/configure b/configure
index 9cbbeaa269d1..4958ac99bcef 100755
--- a/configure
+++ b/configure
@@ -2227,20 +2227,6 @@ if test "$have_ubsan" = "yes"; then
   QEMU_LDFLAGS="-fsanitize=undefined $QEMU_LDFLAGS"
 fi
 
-##########################################
-# Guest agent Windows MSI package
-
-if test "$QEMU_GA_MANUFACTURER" = ""; then
-  QEMU_GA_MANUFACTURER=QEMU
-fi
-if test "$QEMU_GA_DISTRO" = ""; then
-  QEMU_GA_DISTRO=Linux
-fi
-if test "$QEMU_GA_VERSION" = ""; then
-    QEMU_GA_VERSION=$(cat "$source_path"/VERSION)
-fi
-
-
 #######################################
 # cross-compiled firmware targets
 
@@ -2336,9 +2322,9 @@ if test "$debug_tcg" = "yes" ; then
 fi
 if test "$mingw32" = "yes" ; then
   echo "CONFIG_WIN32=y" >> $config_host_mak
-  echo "QEMU_GA_MANUFACTURER=${QEMU_GA_MANUFACTURER}" >> $config_host_mak
-  echo "QEMU_GA_DISTRO=${QEMU_GA_DISTRO}" >> $config_host_mak
-  echo "QEMU_GA_VERSION=${QEMU_GA_VERSION}" >> $config_host_mak
+  echo "QEMU_GA_MANUFACTURER=${QEMU_GA_MANUFACTURER-QEMU}" >> $config_host_mak
+  echo "QEMU_GA_DISTRO=${QEMU_GA_DISTRO-Linux}" >> $config_host_mak
+  echo "QEMU_GA_VERSION=${QEMU_GA_VERSION-$(cat "$source_path"/VERSION)}" >> $config_host_mak
 else
   echo "CONFIG_POSIX=y" >> $config_host_mak
 fi
@@ -2652,6 +2638,9 @@ preserve_env PKG_CONFIG
 preserve_env PKG_CONFIG_LIBDIR
 preserve_env PKG_CONFIG_PATH
 preserve_env PYTHON
+preserve_env QEMU_GA_MANUFACTURER
+preserve_env QEMU_GA_DISTRO
+preserve_env QEMU_GA_VERSION
 preserve_env SDL2_CONFIG
 preserve_env SMBD
 preserve_env STRIP
-- 
2.38.1



^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PULL 11/24] configure: remove backwards-compatibility and obsolete options
  2022-12-21 18:01 [PULL 00/24] QEMU patches for 2022-12-21 Paolo Bonzini
                   ` (9 preceding siblings ...)
  2022-12-21 18:01 ` [PULL 10/24] configure: preserve qemu-ga variables Paolo Bonzini
@ 2022-12-21 18:01 ` Paolo Bonzini
  2022-12-21 18:01 ` [PULL 12/24] meson: tweak hardening options for Windows Paolo Bonzini
                   ` (13 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Paolo Bonzini @ 2022-12-21 18:01 UTC (permalink / raw)
  To: qemu-devel; +Cc: Marc-André Lureau

Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure | 20 --------------------
 1 file changed, 20 deletions(-)

diff --git a/configure b/configure
index 4958ac99bcef..0667dde1654c 100755
--- a/configure
+++ b/configure
@@ -843,17 +843,6 @@ for opt do
   ;;
   --with-coroutine=*) coroutine="$optarg"
   ;;
-  --disable-zlib-test)
-  ;;
-  --disable-virtio-blk-data-plane|--enable-virtio-blk-data-plane)
-      echo "$0: $opt is obsolete, virtio-blk data-plane is always on" >&2
-  ;;
-  --enable-vhdx|--disable-vhdx)
-      echo "$0: $opt is obsolete, VHDX driver is always built" >&2
-  ;;
-  --enable-uuid|--disable-uuid)
-      echo "$0: $opt is obsolete, UUID support is always built" >&2
-  ;;
   --with-git=*) git="$optarg"
   ;;
   --with-git-submodules=*)
@@ -873,19 +862,10 @@ for opt do
   ;;
   --gdb=*) gdb_bin="$optarg"
   ;;
-  # backwards compatibility options
-  --enable-trace-backend=*) meson_option_parse "--enable-trace-backends=$optarg" "$optarg"
-  ;;
-  --disable-blobs) meson_option_parse --disable-install-blobs ""
-  ;;
   --enable-vfio-user-server) vfio_user_server="enabled"
   ;;
   --disable-vfio-user-server) vfio_user_server="disabled"
   ;;
-  --enable-tcmalloc) meson_option_parse --enable-malloc=tcmalloc tcmalloc
-  ;;
-  --enable-jemalloc) meson_option_parse --enable-malloc=jemalloc jemalloc
-  ;;
   # everything else has the same name in configure and meson
   --*) meson_option_parse "$opt" "$optarg"
   ;;
-- 
2.38.1



^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PULL 12/24] meson: tweak hardening options for Windows
  2022-12-21 18:01 [PULL 00/24] QEMU patches for 2022-12-21 Paolo Bonzini
                   ` (10 preceding siblings ...)
  2022-12-21 18:01 ` [PULL 11/24] configure: remove backwards-compatibility and obsolete options Paolo Bonzini
@ 2022-12-21 18:01 ` Paolo Bonzini
  2022-12-21 18:01 ` [PULL 13/24] meson: cleanup dummy-cpus.c rules Paolo Bonzini
                   ` (12 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Paolo Bonzini @ 2022-12-21 18:01 UTC (permalink / raw)
  To: qemu-devel

meson.build has been enabling ASLR _only_ for debug builds since
commit d2147e04f95f ("configure: move Windows flags detection to meson",
2022-05-07); instead it was supposed to disable it for debug builds.

However, the flag has been enabled for DLLs upstream for roughly 2
years (https://sourceware.org/bugzilla/show_bug.cgi?id=19011), and
also by some distros including Debian for 6 years even
(https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=836365).

Enable it unconditionally; we can fix the reversed logic of commit
d2147e04f95f later if there are any reports, but for now just
enable the hardening.

Also add -Wl,--high-entropy-va, which also controls ASLR.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 meson.build | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/meson.build b/meson.build
index 5c6b5a1c757f..d61c7a82f112 100644
--- a/meson.build
+++ b/meson.build
@@ -193,10 +193,7 @@ qemu_ldflags += cc.get_supported_link_arguments('-Wl,-z,relro', '-Wl,-z,now')
 
 if targetos == 'windows'
   qemu_ldflags += cc.get_supported_link_arguments('-Wl,--no-seh', '-Wl,--nxcompat')
-  # Disable ASLR for debug builds to allow debugging with gdb
-  if get_option('optimization') == '0'
-    qemu_ldflags += cc.get_supported_link_arguments('-Wl,--dynamicbase')
-  endif
+  qemu_ldflags += cc.get_supported_link_arguments('-Wl,--dynamicbase', '-Wl,--high-entropy-va')
 endif
 
 if get_option('gprof')
-- 
2.38.1



^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PULL 13/24] meson: cleanup dummy-cpus.c rules
  2022-12-21 18:01 [PULL 00/24] QEMU patches for 2022-12-21 Paolo Bonzini
                   ` (11 preceding siblings ...)
  2022-12-21 18:01 ` [PULL 12/24] meson: tweak hardening options for Windows Paolo Bonzini
@ 2022-12-21 18:01 ` Paolo Bonzini
  2022-12-21 18:01 ` [PULL 14/24] tests/qapi-schema: remove Meson workaround Paolo Bonzini
                   ` (11 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Paolo Bonzini @ 2022-12-21 18:01 UTC (permalink / raw)
  To: qemu-devel; +Cc: Marc-André Lureau

Now that qtest is available on all targets including Windows, dummy-cpus.c
is included unconditionally in the build.  It also does not need to be
compiled per-target.

Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 accel/meson.build | 9 ++-------
 1 file changed, 2 insertions(+), 7 deletions(-)

diff --git a/accel/meson.build b/accel/meson.build
index 259c35c4c882..3a480cc2efef 100644
--- a/accel/meson.build
+++ b/accel/meson.build
@@ -11,10 +11,5 @@ if have_system
   subdir('stubs')
 endif
 
-dummy_ss = ss.source_set()
-dummy_ss.add(files(
-  'dummy-cpus.c',
-))
-
-specific_ss.add_all(when: ['CONFIG_SOFTMMU'], if_true: dummy_ss)
-specific_ss.add_all(when: ['CONFIG_XEN'], if_true: dummy_ss)
+# qtest
+softmmu_ss.add(files('dummy-cpus.c'))
-- 
2.38.1



^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PULL 14/24] tests/qapi-schema: remove Meson workaround
  2022-12-21 18:01 [PULL 00/24] QEMU patches for 2022-12-21 Paolo Bonzini
                   ` (12 preceding siblings ...)
  2022-12-21 18:01 ` [PULL 13/24] meson: cleanup dummy-cpus.c rules Paolo Bonzini
@ 2022-12-21 18:01 ` Paolo Bonzini
  2022-12-21 18:01 ` [PULL 15/24] configure: test all warnings Paolo Bonzini
                   ` (10 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Paolo Bonzini @ 2022-12-21 18:01 UTC (permalink / raw)
  To: qemu-devel

The referenced issue has been fixed since version 0.61, so remove the
workaround.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 tests/qapi-schema/meson.build | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/tests/qapi-schema/meson.build b/tests/qapi-schema/meson.build
index 406bc7255d23..9dfe98bc9a68 100644
--- a/tests/qapi-schema/meson.build
+++ b/tests/qapi-schema/meson.build
@@ -277,10 +277,6 @@ if build_docs
                                     command: ['perl', '-pe', '$x = chr 13; s/$x$//', '@INPUT@'],
                                     capture: true)
 
-  # "full_path()" needed here to work around
-  # https://github.com/mesonbuild/meson/issues/7585
-  test('QAPI rST doc', diff, args: ['-u', qapi_doc_ref_nocr[0].full_path(),
-                                    qapi_doc_out_nocr[0].full_path()],
-       depends: [qapi_doc_ref_nocr, qapi_doc_out_nocr],
+  test('QAPI rST doc', diff, args: ['-u', qapi_doc_ref_nocr[0], qapi_doc_out_nocr[0]],
        suite: ['qapi-schema', 'qapi-doc'])
 endif
-- 
2.38.1



^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PULL 15/24] configure: test all warnings
  2022-12-21 18:01 [PULL 00/24] QEMU patches for 2022-12-21 Paolo Bonzini
                   ` (13 preceding siblings ...)
  2022-12-21 18:01 ` [PULL 14/24] tests/qapi-schema: remove Meson workaround Paolo Bonzini
@ 2022-12-21 18:01 ` Paolo Bonzini
  2022-12-21 18:01 ` [PULL 16/24] meson: support meson 0.64 -Doptimization=plain Paolo Bonzini
                   ` (9 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Paolo Bonzini @ 2022-12-21 18:01 UTC (permalink / raw)
  To: qemu-devel; +Cc: Philippe Mathieu-Daudé

Some warnings are hardcoded in QEMU_CFLAGS and not tested.  There is
no particular reason to single out these five, as many more -W flags are
present on all the supported compilers.  For homogeneity when moving
the detection to meson, make them use the same warn_flags infrastructure.

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 configure | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/configure b/configure
index 0667dde1654c..df19605ec398 100755
--- a/configure
+++ b/configure
@@ -378,8 +378,6 @@ sdl2_config="${SDL2_CONFIG-${cross_prefix}sdl2-config}"
 # 2s-complement style results. (Both clang and gcc agree that it
 # provides these semantics.)
 QEMU_CFLAGS="-fno-strict-aliasing -fno-common -fwrapv"
-QEMU_CFLAGS="-Wundef -Wwrite-strings -Wmissing-prototypes $QEMU_CFLAGS"
-QEMU_CFLAGS="-Wstrict-prototypes -Wredundant-decls $QEMU_CFLAGS"
 QEMU_CFLAGS="-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE $QEMU_CFLAGS"
 
 QEMU_LDFLAGS=
@@ -1166,6 +1164,11 @@ fi
 # just silently disable some features, so it's too error prone.
 
 warn_flags=
+add_to warn_flags -Wundef
+add_to warn_flags -Wwrite-strings
+add_to warn_flags -Wmissing-prototypes
+add_to warn_flags -Wstrict-prototypes
+add_to warn_flags -Wredundant-decls
 add_to warn_flags -Wold-style-declaration
 add_to warn_flags -Wold-style-definition
 add_to warn_flags -Wtype-limits
-- 
2.38.1



^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PULL 16/24] meson: support meson 0.64 -Doptimization=plain
  2022-12-21 18:01 [PULL 00/24] QEMU patches for 2022-12-21 Paolo Bonzini
                   ` (14 preceding siblings ...)
  2022-12-21 18:01 ` [PULL 15/24] configure: test all warnings Paolo Bonzini
@ 2022-12-21 18:01 ` Paolo Bonzini
  2022-12-21 18:01 ` [PULL 17/24] meson: cleanup compiler detection Paolo Bonzini
                   ` (8 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Paolo Bonzini @ 2022-12-21 18:01 UTC (permalink / raw)
  To: qemu-devel; +Cc: Marc-André Lureau

In Meson 0.64, the optimization built-in option now accepts the "plain" value,
which will not set any optimization flags.  While QEMU does not check the
contents of the option and therefore does not suffer any ill effect
from the new value, it uses get_option to print the optimization flags
in the summary.  Clean the code up to remove duplication, and check for
-Doptimization=plain at the same time.

Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 meson.build | 16 +++++++---------
 1 file changed, 7 insertions(+), 9 deletions(-)

diff --git a/meson.build b/meson.build
index d61c7a82f112..dbd0b5563446 100644
--- a/meson.build
+++ b/meson.build
@@ -3752,18 +3752,16 @@ endif
 if targetos == 'darwin'
   summary_info += {'Objective-C compiler': ' '.join(meson.get_compiler('objc').cmd_array())}
 endif
-summary_info += {'CFLAGS':            ' '.join(get_option('c_args')
-                                               + ['-O' + get_option('optimization')]
-                                               + (get_option('debug') ? ['-g'] : []))}
+option_cflags = (get_option('debug') ? ['-g'] : [])
+if get_option('optimization') != 'plain'
+  option_cflags += ['-O' + get_option('optimization')]
+endif
+summary_info += {'CFLAGS':            ' '.join(get_option('c_args') + option_cflags)}
 if link_language == 'cpp'
-  summary_info += {'CXXFLAGS':        ' '.join(get_option('cpp_args')
-                                               + ['-O' + get_option('optimization')]
-                                               + (get_option('debug') ? ['-g'] : []))}
+  summary_info += {'CXXFLAGS':        ' '.join(get_option('cpp_args') + option_cflags)}
 endif
 if targetos == 'darwin'
-  summary_info += {'OBJCFLAGS':       ' '.join(get_option('objc_args')
-                                               + ['-O' + get_option('optimization')]
-                                               + (get_option('debug') ? ['-g'] : []))}
+  summary_info += {'OBJCFLAGS':       ' '.join(get_option('objc_args') + option_cflags)}
 endif
 link_args = get_option(link_language + '_link_args')
 if link_args.length() > 0
-- 
2.38.1



^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PULL 17/24] meson: cleanup compiler detection
  2022-12-21 18:01 [PULL 00/24] QEMU patches for 2022-12-21 Paolo Bonzini
                   ` (15 preceding siblings ...)
  2022-12-21 18:01 ` [PULL 16/24] meson: support meson 0.64 -Doptimization=plain Paolo Bonzini
@ 2022-12-21 18:01 ` Paolo Bonzini
  2022-12-21 18:01 ` [PULL 18/24] meson: accept relative symlinks in "meson introspect --installed" data Paolo Bonzini
                   ` (7 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Paolo Bonzini @ 2022-12-21 18:01 UTC (permalink / raw)
  To: qemu-devel; +Cc: Marc-André Lureau

Detect all compilers at the beginning of meson.build, and store
the available languages in an array.

Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 meson.build | 62 ++++++++++++++++++++++++++++++-----------------------
 1 file changed, 35 insertions(+), 27 deletions(-)

diff --git a/meson.build b/meson.build
index dbd0b5563446..81920844448d 100644
--- a/meson.build
+++ b/meson.build
@@ -14,8 +14,8 @@ keyval = import('keyval')
 ss = import('sourceset')
 fs = import('fs')
 
+targetos = host_machine.system()
 sh = find_program('sh')
-cc = meson.get_compiler('c')
 config_host = keyval.load(meson.current_build_dir() / 'config-host.mak')
 enable_modules = 'CONFIG_MODULES' in config_host
 enable_static = 'CONFIG_STATIC' in config_host
@@ -23,6 +23,18 @@ enable_static = 'CONFIG_STATIC' in config_host
 # Allow both shared and static libraries unless --enable-static
 static_kwargs = enable_static ? {'static': true} : {}
 
+cc = meson.get_compiler('c')
+all_languages = ['c']
+if add_languages('cpp', required: false, native: false)
+  all_languages += ['cpp']
+  cxx = meson.get_compiler('cpp')
+endif
+if targetos == 'darwin' and \
+   add_languages('objc', required: get_option('cocoa'), native: false)
+  all_languages += ['objc']
+  objc = meson.get_compiler('objc')
+endif
+
 # Temporary directory used for files created while
 # configure runs. Since it is in the build directory
 # we can safely blow away any previous version of it
@@ -58,8 +70,6 @@ if cpu in ['riscv32', 'riscv64']
   cpu = 'riscv'
 endif
 
-targetos = host_machine.system()
-
 target_dirs = config_host['TARGET_DIRS'].split()
 have_linux_user = false
 have_bsd_user = false
@@ -165,7 +175,7 @@ if 'dtrace' in get_option('trace_backends')
     # semaphores are linked into the main binary and not the module's shared
     # object.
     add_global_arguments('-DSTAP_SDT_V2',
-                         native: false, language: ['c', 'cpp', 'objc'])
+                         native: false, language: all_languages)
   endif
 endif
 
@@ -207,7 +217,7 @@ endif
 if get_option('fuzzing')
   add_project_link_arguments(['-Wl,-T,',
                               (meson.current_source_dir() / 'tests/qtest/fuzz/fork_fuzz.ld')],
-                             native: false, language: ['c', 'cpp', 'objc'])
+                             native: false, language: all_languages)
 
   # Specify a filter to only instrument code that is directly related to
   # virtual-devices.
@@ -220,7 +230,7 @@ if get_option('fuzzing')
                  args: ['-fsanitize-coverage-allowlist=/dev/null',
                         '-fsanitize-coverage=trace-pc'] )
     add_global_arguments('-fsanitize-coverage-allowlist=instrumentation-filter',
-                         native: false, language: ['c', 'cpp', 'objc'])
+                         native: false, language: all_languages)
   endif
 
   if get_option('fuzzing_engine') == ''
@@ -229,9 +239,9 @@ if get_option('fuzzing')
     # everything with fsanitize=fuzzer-no-link. Otherwise, the linker will be
     # unable to bind the fuzzer-related callbacks added by instrumentation.
     add_global_arguments('-fsanitize=fuzzer-no-link',
-                         native: false, language: ['c', 'cpp', 'objc'])
+                         native: false, language: all_languages)
     add_global_link_arguments('-fsanitize=fuzzer-no-link',
-                              native: false, language: ['c', 'cpp', 'objc'])
+                              native: false, language: all_languages)
     # For the actual fuzzer binaries, we need to link against the libfuzzer
     # library. They need to be configurable, to support OSS-Fuzz
     fuzz_exe_ldflags = ['-fsanitize=fuzzer']
@@ -242,15 +252,11 @@ if get_option('fuzzing')
   endif
 endif
 
-add_global_arguments(qemu_cflags, native: false, language: ['c'])
-add_global_arguments(qemu_objcflags, native: false, language: ['objc'])
-
 # Check that the C++ compiler exists and works with the C compiler.
 link_language = 'c'
 linker = cc
 qemu_cxxflags = []
-if add_languages('cpp', required: false, native: false)
-  cxx = meson.get_compiler('cpp')
+if 'cpp' in all_languages
   add_global_arguments(['-D__STDC_LIMIT_MACROS', '-D__STDC_CONSTANT_MACROS', '-D__STDC_FORMAT_MACROS'],
                        native: false, language: 'cpp')
   foreach k: qemu_cflags
@@ -259,7 +265,6 @@ if add_languages('cpp', required: false, native: false)
       qemu_cxxflags += [k]
     endif
   endforeach
-  add_global_arguments(qemu_cxxflags, native: false, language: 'cpp')
 
   if cxx.links(files('scripts/main.c'), args: qemu_cflags)
     link_language = 'cpp'
@@ -275,22 +280,21 @@ if targetos != 'sunos' and not config_host.has_key('CONFIG_TSAN')
   qemu_ldflags += linker.get_supported_link_arguments('-Wl,--warn-common')
 endif
 
-add_global_link_arguments(qemu_ldflags, native: false, language: ['c', 'cpp', 'objc'])
+add_global_link_arguments(qemu_ldflags, native: false, language: all_languages)
 
+add_global_arguments(qemu_cflags, native: false, language: 'c')
+add_global_arguments(qemu_cxxflags, native: false, language: 'cpp')
+add_global_arguments(qemu_objcflags, native: false, language: 'objc')
 if targetos == 'linux'
   add_project_arguments('-isystem', meson.current_source_dir() / 'linux-headers',
                         '-isystem', 'linux-headers',
-                        language: ['c', 'cpp'])
+                        language: all_languages)
 endif
 
 add_project_arguments('-iquote', '.',
                       '-iquote', meson.current_source_dir(),
                       '-iquote', meson.current_source_dir() / 'include',
-                      language: ['c', 'cpp', 'objc'])
-
-if host_machine.system() == 'darwin'
-  add_languages('objc', required: false, native: false)
-endif
+                      language: all_languages)
 
 sparse = find_program('cgcc', required: get_option('sparse'))
 if sparse.found()
@@ -472,7 +476,7 @@ if get_option('tcg').allowed()
     tcg_arch = 'ppc'
   endif
   add_project_arguments('-iquote', meson.current_source_dir() / 'tcg' / tcg_arch,
-                        language: ['c', 'cpp', 'objc'])
+                        language: all_languages)
 
   accelerators += 'CONFIG_TCG'
   config_host += { 'CONFIG_TCG': 'y' }
@@ -498,7 +502,7 @@ endif
 # The path to glib.h is added to all compilation commands.  This was
 # grandfathered in from the QEMU Makefiles.
 add_project_arguments(config_host['GLIB_CFLAGS'].split(),
-                      native: false, language: ['c', 'cpp', 'objc'])
+                      native: false, language: all_languages)
 glib = declare_dependency(compile_args: config_host['GLIB_CFLAGS'].split(),
                           link_args: config_host['GLIB_LIBS'].split(),
                           version: config_host['GLIB_VERSION'],
@@ -1723,8 +1727,8 @@ if get_option('cfi')
       error('-fno-sanitize-trap=cfi-icall is not supported by the compiler')
     endif
   endif
-  add_global_arguments(cfi_flags, native: false, language: ['c', 'cpp', 'objc'])
-  add_global_link_arguments(cfi_flags, native: false, language: ['c', 'cpp', 'objc'])
+  add_global_arguments(cfi_flags, native: false, language: all_languages)
+  add_global_link_arguments(cfi_flags, native: false, language: all_languages)
 endif
 
 have_host_block_device = (targetos != 'darwin' or
@@ -3768,8 +3772,12 @@ if link_args.length() > 0
   summary_info += {'LDFLAGS':         ' '.join(link_args)}
 endif
 summary_info += {'QEMU_CFLAGS':       ' '.join(qemu_cflags)}
-summary_info += {'QEMU_CXXFLAGS':     ' '.join(qemu_cxxflags)}
-summary_info += {'QEMU_OBJCFLAGS':    ' '.join(qemu_objcflags)}
+if 'cpp' in all_languages
+  summary_info += {'QEMU_CXXFLAGS':     ' '.join(qemu_cxxflags)}
+endif
+if 'objc' in all_languages
+  summary_info += {'QEMU_OBJCFLAGS':    ' '.join(qemu_objcflags)}
+endif
 summary_info += {'QEMU_LDFLAGS':      ' '.join(qemu_ldflags)}
 summary_info += {'profiler':          get_option('profiler')}
 summary_info += {'link-time optimization (LTO)': get_option('b_lto')}
-- 
2.38.1



^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PULL 18/24] meson: accept relative symlinks in "meson introspect --installed" data
  2022-12-21 18:01 [PULL 00/24] QEMU patches for 2022-12-21 Paolo Bonzini
                   ` (16 preceding siblings ...)
  2022-12-21 18:01 ` [PULL 17/24] meson: cleanup compiler detection Paolo Bonzini
@ 2022-12-21 18:01 ` Paolo Bonzini
  2022-12-21 18:01 ` [PULL 19/24] docs: do not talk about past removal as happening in the future Paolo Bonzini
                   ` (6 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Paolo Bonzini @ 2022-12-21 18:01 UTC (permalink / raw)
  To: qemu-devel; +Cc: qemu-stable

When installing shared libraries, as is the case for libvfio-user.so,
Meson will include relative symbolic links in the output of
"meson introspect --installed":

  {
    "libvfio-user.so": "/usr/local/lib64/libvfio-user.so",
    ...
  }

In the case of scripts/symlink-install-tree.py, this will
be a symbolic link to a symbolic link but, in any case, there is
no issue in creating it.

Cc: qemu-stable@nongnu.org
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 scripts/symlink-install-tree.py | 1 -
 1 file changed, 1 deletion(-)

diff --git a/scripts/symlink-install-tree.py b/scripts/symlink-install-tree.py
index a5bf0b0d6d7c..67cb86dd523a 100644
--- a/scripts/symlink-install-tree.py
+++ b/scripts/symlink-install-tree.py
@@ -17,7 +17,6 @@ def destdir_join(d1: str, d2: str) -> str:
 out = subprocess.run([*introspect.split(' '), '--installed'],
                      stdout=subprocess.PIPE, check=True).stdout
 for source, dest in json.loads(out).items():
-    assert os.path.isabs(source)
     bundle_dest = destdir_join('qemu-bundle', dest)
     path = os.path.dirname(bundle_dest)
     try:
-- 
2.38.1



^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PULL 19/24] docs: do not talk about past removal as happening in the future
  2022-12-21 18:01 [PULL 00/24] QEMU patches for 2022-12-21 Paolo Bonzini
                   ` (17 preceding siblings ...)
  2022-12-21 18:01 ` [PULL 18/24] meson: accept relative symlinks in "meson introspect --installed" data Paolo Bonzini
@ 2022-12-21 18:01 ` Paolo Bonzini
  2022-12-21 18:01 ` [PULL 20/24] KVM: remove support for kernel-irqchip=off Paolo Bonzini
                   ` (5 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Paolo Bonzini @ 2022-12-21 18:01 UTC (permalink / raw)
  To: qemu-devel

KVM guest support on 32-bit Arm hosts *has* been removed, so rephrase
the sentence describing it.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 docs/about/removed-features.rst | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/docs/about/removed-features.rst b/docs/about/removed-features.rst
index 63df9848fda2..7e12145c120d 100644
--- a/docs/about/removed-features.rst
+++ b/docs/about/removed-features.rst
@@ -565,9 +565,8 @@ KVM guest support on 32-bit Arm hosts (removed in 5.2)
 ''''''''''''''''''''''''''''''''''''''''''''''''''''''
 
 The Linux kernel has dropped support for allowing 32-bit Arm systems
-to host KVM guests as of the 5.7 kernel. Accordingly, QEMU is deprecating
-its support for this configuration and will remove it in a future version.
-Running 32-bit guests on a 64-bit Arm host remains supported.
+to host KVM guests as of the 5.7 kernel, and was thus removed from QEMU
+as well.  Running 32-bit guests on a 64-bit Arm host remains supported.
 
 RISC-V ISA Specific CPUs (removed in 5.1)
 '''''''''''''''''''''''''''''''''''''''''
-- 
2.38.1



^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PULL 20/24] KVM: remove support for kernel-irqchip=off
  2022-12-21 18:01 [PULL 00/24] QEMU patches for 2022-12-21 Paolo Bonzini
                   ` (18 preceding siblings ...)
  2022-12-21 18:01 ` [PULL 19/24] docs: do not talk about past removal as happening in the future Paolo Bonzini
@ 2022-12-21 18:01 ` Paolo Bonzini
  2022-12-21 18:01 ` [PULL 21/24] util: remove support for hex numbers with a scaling suffix Paolo Bonzini
                   ` (4 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Paolo Bonzini @ 2022-12-21 18:01 UTC (permalink / raw)
  To: qemu-devel

-machine kernel-irqchip=off is broken for many guest OSes; kernel-irqchip=split
is the replacement that works, so remove the deprecated support for the former.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 docs/about/deprecated.rst       |  7 -------
 docs/about/removed-features.rst | 10 ++++++++++
 hw/i386/amd_iommu.c             |  2 +-
 hw/i386/intel_iommu.c           |  4 ++--
 include/hw/i386/apic_internal.h |  2 +-
 target/i386/cpu-sysemu.c        | 15 +++++++++++----
 6 files changed, 25 insertions(+), 15 deletions(-)

diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst
index 93affe3669ff..5414289ffaf3 100644
--- a/docs/about/deprecated.rst
+++ b/docs/about/deprecated.rst
@@ -58,13 +58,6 @@ and will cause a warning.
 The replacement for the ``nodelay`` short-form boolean option is ``nodelay=on``
 rather than ``delay=off``.
 
-Userspace local APIC with KVM (x86, since 6.0)
-''''''''''''''''''''''''''''''''''''''''''''''
-
-Using ``-M kernel-irqchip=off`` with x86 machine types that include a local
-APIC is deprecated.  The ``split`` setting is supported, as is using
-``-M kernel-irqchip=off`` with the ISA PC machine type.
-
 hexadecimal sizes with scaling multipliers (since 6.0)
 ''''''''''''''''''''''''''''''''''''''''''''''''''''''
 
diff --git a/docs/about/removed-features.rst b/docs/about/removed-features.rst
index 7e12145c120d..78b332faf50a 100644
--- a/docs/about/removed-features.rst
+++ b/docs/about/removed-features.rst
@@ -616,6 +616,16 @@ x86 ``Icelake-Client`` CPU (removed in 7.1)
 There isn't ever Icelake Client CPU, it is some wrong and imaginary one.
 Use ``Icelake-Server`` instead.
 
+System accelerators
+-------------------
+
+Userspace local APIC with KVM (x86, removed 8.0)
+''''''''''''''''''''''''''''''''''''''''''''''''
+
+``-M kernel-irqchip=off`` cannot be used on KVM if the CPU model includes
+a local APIC.  The ``split`` setting is supported, as is using ``-M
+kernel-irqchip=off`` when the CPU does not have a local APIC.
+
 System emulator machines
 ------------------------
 
diff --git a/hw/i386/amd_iommu.c b/hw/i386/amd_iommu.c
index 725f69095b9e..bcd016f5c5a5 100644
--- a/hw/i386/amd_iommu.c
+++ b/hw/i386/amd_iommu.c
@@ -1368,7 +1368,7 @@ static MemTxResult amdvi_mem_ir_write(void *opaque, hwaddr addr,
         return MEMTX_ERROR;
     }
 
-    apic_get_class()->send_msi(&to);
+    apic_get_class(NULL)->send_msi(&to);
 
     trace_amdvi_mem_ir_write(to.address, to.data);
     return MEMTX_OK;
diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c
index a08ee85edf2a..98a5c304a7d7 100644
--- a/hw/i386/intel_iommu.c
+++ b/hw/i386/intel_iommu.c
@@ -396,7 +396,7 @@ static void vtd_generate_interrupt(IntelIOMMUState *s, hwaddr mesg_addr_reg,
 
     trace_vtd_irq_generate(msi.address, msi.data);
 
-    apic_get_class()->send_msi(&msi);
+    apic_get_class(NULL)->send_msi(&msi);
 }
 
 /* Generate a fault event to software via MSI if conditions are met.
@@ -3529,7 +3529,7 @@ static MemTxResult vtd_mem_ir_write(void *opaque, hwaddr addr,
         return MEMTX_ERROR;
     }
 
-    apic_get_class()->send_msi(&to);
+    apic_get_class(NULL)->send_msi(&to);
 
     return MEMTX_OK;
 }
diff --git a/include/hw/i386/apic_internal.h b/include/hw/i386/apic_internal.h
index c175e7e71816..968b6648b3a4 100644
--- a/include/hw/i386/apic_internal.h
+++ b/include/hw/i386/apic_internal.h
@@ -226,6 +226,6 @@ static inline int apic_get_bit(uint32_t *tab, int index)
     return !!(tab[i] & mask);
 }
 
-APICCommonClass *apic_get_class(void);
+APICCommonClass *apic_get_class(Error **errp);
 
 #endif /* QEMU_APIC_INTERNAL_H */
diff --git a/target/i386/cpu-sysemu.c b/target/i386/cpu-sysemu.c
index fc97213a73cf..28115edf44f7 100644
--- a/target/i386/cpu-sysemu.c
+++ b/target/i386/cpu-sysemu.c
@@ -247,12 +247,16 @@ void x86_cpu_machine_reset_cb(void *opaque)
     cpu_reset(CPU(cpu));
 }
 
-APICCommonClass *apic_get_class(void)
+APICCommonClass *apic_get_class(Error **errp)
 {
     const char *apic_type = "apic";
 
     /* TODO: in-kernel irqchip for hvf */
-    if (kvm_apic_in_kernel()) {
+    if (kvm_enabled()) {
+        if (!kvm_apic_in_kernel()) {
+            error_setg(errp, "KVM does not support userspace APIC");
+            return NULL;
+        }
         apic_type = "kvm-apic";
     } else if (xen_enabled()) {
         apic_type = "xen-apic";
@@ -266,10 +270,13 @@ APICCommonClass *apic_get_class(void)
 void x86_cpu_apic_create(X86CPU *cpu, Error **errp)
 {
     APICCommonState *apic;
-    ObjectClass *apic_class = OBJECT_CLASS(apic_get_class());
+    APICCommonClass *apic_class = apic_get_class(errp);
 
-    cpu->apic_state = DEVICE(object_new_with_class(apic_class));
+    if (!apic_class) {
+        return;
+    }
 
+    cpu->apic_state = DEVICE(object_new_with_class(OBJECT_CLASS(apic_class)));
     object_property_add_child(OBJECT(cpu), "lapic",
                               OBJECT(cpu->apic_state));
     object_unref(OBJECT(cpu->apic_state));
-- 
2.38.1



^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PULL 21/24] util: remove support for hex numbers with a scaling suffix
  2022-12-21 18:01 [PULL 00/24] QEMU patches for 2022-12-21 Paolo Bonzini
                   ` (19 preceding siblings ...)
  2022-12-21 18:01 ` [PULL 20/24] KVM: remove support for kernel-irqchip=off Paolo Bonzini
@ 2022-12-21 18:01 ` Paolo Bonzini
  2022-12-21 18:01 ` [PULL 22/24] util: remove support -chardev tty and -chardev parport Paolo Bonzini
                   ` (3 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Paolo Bonzini @ 2022-12-21 18:01 UTC (permalink / raw)
  To: qemu-devel

This was deprecated in 6.0 and can now be removed.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 docs/about/deprecated.rst       |  8 --------
 docs/about/removed-features.rst |  8 ++++++++
 tests/unit/test-cutils.c        |  8 ++++++++
 util/cutils.c                   | 14 +++-----------
 4 files changed, 19 insertions(+), 19 deletions(-)

diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst
index 5414289ffaf3..e2ca3c8b566d 100644
--- a/docs/about/deprecated.rst
+++ b/docs/about/deprecated.rst
@@ -58,14 +58,6 @@ and will cause a warning.
 The replacement for the ``nodelay`` short-form boolean option is ``nodelay=on``
 rather than ``delay=off``.
 
-hexadecimal sizes with scaling multipliers (since 6.0)
-''''''''''''''''''''''''''''''''''''''''''''''''''''''
-
-Input parameters that take a size value should only use a size suffix
-(such as 'k' or 'M') when the base is written in decimal, and not when
-the value is hexadecimal.  That is, '0x20M' is deprecated, and should
-be written either as '32M' or as '0x2000000'.
-
 ``-spice password=string`` (since 6.0)
 ''''''''''''''''''''''''''''''''''''''
 
diff --git a/docs/about/removed-features.rst b/docs/about/removed-features.rst
index 78b332faf50a..724a83142511 100644
--- a/docs/about/removed-features.rst
+++ b/docs/about/removed-features.rst
@@ -408,6 +408,14 @@ pcspk-audiodev=<name>``.
 
 Use ``-device`` instead.
 
+Hexadecimal sizes with scaling multipliers (since 8.0)
+''''''''''''''''''''''''''''''''''''''''''''''''''''''
+
+Input parameters that take a size value should only use a size suffix
+(such as 'k' or 'M') when the base is written in decimal, and not when
+the value is hexadecimal.  That is, '0x20M' should be written either as
+'32M' or as '0x2000000'.
+
 
 QEMU Machine Protocol (QMP) commands
 ------------------------------------
diff --git a/tests/unit/test-cutils.c b/tests/unit/test-cutils.c
index 86caddcf6498..2126b463919b 100644
--- a/tests/unit/test-cutils.c
+++ b/tests/unit/test-cutils.c
@@ -2315,6 +2315,14 @@ static void test_qemu_strtosz_invalid(void)
     g_assert_cmpint(res, ==, 0xbaadf00d);
     g_assert(endptr == str);
 
+    /* No suffixes */
+    str = "0x18M";
+    endptr = NULL;
+    err = qemu_strtosz(str, &endptr, &res);
+    g_assert_cmpint(err, ==, -EINVAL);
+    g_assert_cmpint(res, ==, 0xbaadf00d);
+    g_assert(endptr == str);
+
     /* No negative values */
     str = "-0";
     endptr = NULL;
diff --git a/util/cutils.c b/util/cutils.c
index def9c746cede..5887e7441405 100644
--- a/util/cutils.c
+++ b/util/cutils.c
@@ -197,10 +197,8 @@ static int64_t suffix_mul(char suffix, int64_t unit)
  *   fractional portion is truncated to byte
  * - 0x7fEE - hexadecimal, unit determined by @default_suffix
  *
- * The following cause a deprecation warning, and may be removed in the future
- * - 0xabc{kKmMgGtTpP} - hex with scaling suffix
- *
  * The following are intentionally not supported
+ * - hex with scaling suffix, such as 0x20M
  * - octal, such as 08
  * - fractional hex, such as 0x1.8
  * - floating point exponents, such as 1e3
@@ -222,7 +220,6 @@ static int do_strtosz(const char *nptr, const char **end,
     int retval;
     const char *endptr, *f;
     unsigned char c;
-    bool hex = false;
     uint64_t val, valf = 0;
     int64_t mul;
 
@@ -237,17 +234,16 @@ static int do_strtosz(const char *nptr, const char **end,
         goto out;
     }
     if (val == 0 && (*endptr == 'x' || *endptr == 'X')) {
-        /* Input looks like hex, reparse, and insist on no fraction. */
+        /* Input looks like hex; reparse, and insist on no fraction or suffix. */
         retval = qemu_strtou64(nptr, &endptr, 16, &val);
         if (retval) {
             goto out;
         }
-        if (*endptr == '.') {
+        if (*endptr == '.' || suffix_mul(*endptr, unit) > 0) {
             endptr = nptr;
             retval = -EINVAL;
             goto out;
         }
-        hex = true;
     } else if (*endptr == '.') {
         /*
          * Input looks like a fraction.  Make sure even 1.k works
@@ -272,10 +268,6 @@ static int do_strtosz(const char *nptr, const char **end,
     c = *endptr;
     mul = suffix_mul(c, unit);
     if (mul > 0) {
-        if (hex) {
-            warn_report("Using a multiplier suffix on hex numbers "
-                        "is deprecated: %s", nptr);
-        }
         endptr++;
     } else {
         mul = suffix_mul(default_suffix, unit);
-- 
2.38.1



^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PULL 22/24] util: remove support -chardev tty and -chardev parport
  2022-12-21 18:01 [PULL 00/24] QEMU patches for 2022-12-21 Paolo Bonzini
                   ` (20 preceding siblings ...)
  2022-12-21 18:01 ` [PULL 21/24] util: remove support for hex numbers with a scaling suffix Paolo Bonzini
@ 2022-12-21 18:01 ` Paolo Bonzini
  2022-12-21 18:01 ` [PULL 23/24] target/i386: Add SGX aex-notify and EDECCSSA support Paolo Bonzini
                   ` (2 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Paolo Bonzini @ 2022-12-21 18:01 UTC (permalink / raw)
  To: qemu-devel

These were deprecated in 6.0 and can now be removed.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 chardev/char.c                  | 33 ++-------------------------------
 docs/about/deprecated.rst       |  6 ------
 docs/about/removed-features.rst |  5 +++++
 docs/qdev-device-use.txt        |  4 ++--
 qemu-options.hx                 | 11 +----------
 5 files changed, 10 insertions(+), 49 deletions(-)

diff --git a/chardev/char.c b/chardev/char.c
index 4c5de164025d..87ab6efbcca0 100644
--- a/chardev/char.c
+++ b/chardev/char.c
@@ -530,19 +530,6 @@ static const ChardevClass *char_get_class(const char *driver, Error **errp)
     return cc;
 }
 
-static struct ChardevAlias {
-    const char *typename;
-    const char *alias;
-    bool deprecation_warning_printed;
-} chardev_alias_table[] = {
-#ifdef HAVE_CHARDEV_PARPORT
-    { "parallel", "parport" },
-#endif
-#ifdef HAVE_CHARDEV_SERIAL
-    { "serial", "tty" },
-#endif
-};
-
 typedef struct ChadevClassFE {
     void (*fn)(const char *name, void *opaque);
     void *opaque;
@@ -578,28 +565,12 @@ help_string_append(const char *name, void *opaque)
     g_string_append_printf(str, "\n  %s", name);
 }
 
-static const char *chardev_alias_translate(const char *name)
-{
-    int i;
-    for (i = 0; i < (int)ARRAY_SIZE(chardev_alias_table); i++) {
-        if (g_strcmp0(chardev_alias_table[i].alias, name) == 0) {
-            if (!chardev_alias_table[i].deprecation_warning_printed) {
-                warn_report("The alias '%s' is deprecated, use '%s' instead",
-                            name, chardev_alias_table[i].typename);
-                chardev_alias_table[i].deprecation_warning_printed = true;
-            }
-            return chardev_alias_table[i].typename;
-        }
-    }
-    return name;
-}
-
 ChardevBackend *qemu_chr_parse_opts(QemuOpts *opts, Error **errp)
 {
     Error *local_err = NULL;
     const ChardevClass *cc;
     ChardevBackend *backend = NULL;
-    const char *name = chardev_alias_translate(qemu_opt_get(opts, "backend"));
+    const char *name = qemu_opt_get(opts, "backend");
 
     if (name == NULL) {
         error_setg(errp, "chardev: \"%s\" missing backend",
@@ -637,7 +608,7 @@ Chardev *qemu_chr_new_from_opts(QemuOpts *opts, GMainContext *context,
     const ChardevClass *cc;
     Chardev *chr = NULL;
     ChardevBackend *backend = NULL;
-    const char *name = chardev_alias_translate(qemu_opt_get(opts, "backend"));
+    const char *name = qemu_opt_get(opts, "backend");
     const char *id = qemu_opts_id(opts);
     char *bid = NULL;
 
diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst
index e2ca3c8b566d..91015ce5da3b 100644
--- a/docs/about/deprecated.rst
+++ b/docs/about/deprecated.rst
@@ -39,12 +39,6 @@ should specify an ``audiodev=`` property.  Additionally, when using
 vnc, you should specify an ``audiodev=`` property if you plan to
 transmit audio through the VNC protocol.
 
-``-chardev`` backend aliases ``tty`` and ``parport`` (since 6.0)
-''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
-
-``tty`` and ``parport`` are aliases that will be removed. Instead, the
-actual backend names ``serial`` and ``parallel`` should be used.
-
 Short-form boolean options (since 6.0)
 ''''''''''''''''''''''''''''''''''''''
 
diff --git a/docs/about/removed-features.rst b/docs/about/removed-features.rst
index 724a83142511..44bd299142ca 100644
--- a/docs/about/removed-features.rst
+++ b/docs/about/removed-features.rst
@@ -416,6 +416,11 @@ Input parameters that take a size value should only use a size suffix
 the value is hexadecimal.  That is, '0x20M' should be written either as
 '32M' or as '0x2000000'.
 
+``-chardev`` backend aliases ``tty`` and ``parport`` (removed in 8.0)
+'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+
+``tty`` and ``parport`` used to be aliases for ``serial`` and ``parallel``
+respectively. The actual backend names should be used instead.
 
 QEMU Machine Protocol (QMP) commands
 ------------------------------------
diff --git a/docs/qdev-device-use.txt b/docs/qdev-device-use.txt
index 240888933482..c98c86d82802 100644
--- a/docs/qdev-device-use.txt
+++ b/docs/qdev-device-use.txt
@@ -216,11 +216,11 @@ LEGACY-CHARDEV translates to -chardev HOST-OPTS... as follows:
 
 * unix:FNAME becomes -chardev socket,path=FNAME
 
-* /dev/parportN becomes -chardev parport,file=/dev/parportN
+* /dev/parportN becomes -chardev parallel,file=/dev/parportN
 
 * /dev/ppiN likewise
 
-* Any other /dev/FNAME becomes -chardev tty,path=/dev/FNAME
+* Any other /dev/FNAME becomes -chardev serial,path=/dev/FNAME
 
 * mon:LEGACY-CHARDEV is special: it multiplexes the monitor onto the
   character device defined by LEGACY-CHARDEV.  -chardev provides more
diff --git a/qemu-options.hx b/qemu-options.hx
index 7f99d15b231f..f3d5e1313ca1 100644
--- a/qemu-options.hx
+++ b/qemu-options.hx
@@ -3379,11 +3379,9 @@ DEF("chardev", HAS_ARG, QEMU_OPTION_chardev,
 #if defined(__linux__) || defined(__sun__) || defined(__FreeBSD__) \
         || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)
     "-chardev serial,id=id,path=path[,mux=on|off][,logfile=PATH][,logappend=on|off]\n"
-    "-chardev tty,id=id,path=path[,mux=on|off][,logfile=PATH][,logappend=on|off]\n"
 #endif
 #if defined(__linux__) || defined(__FreeBSD__) || defined(__DragonFly__)
     "-chardev parallel,id=id,path=path[,mux=on|off][,logfile=PATH][,logappend=on|off]\n"
-    "-chardev parport,id=id,path=path[,mux=on|off][,logfile=PATH][,logappend=on|off]\n"
 #endif
 #if defined(CONFIG_SPICE)
     "-chardev spicevmc,id=id,name=name[,debug=debug][,logfile=PATH][,logappend=on|off]\n"
@@ -3398,7 +3396,7 @@ The general form of a character device option is:
 ``-chardev backend,id=id[,mux=on|off][,options]``
     Backend is one of: ``null``, ``socket``, ``udp``, ``msmouse``,
     ``vc``, ``ringbuf``, ``file``, ``pipe``, ``console``, ``serial``,
-    ``pty``, ``stdio``, ``braille``, ``tty``, ``parallel``, ``parport``,
+    ``pty``, ``stdio``, ``braille``, ``parallel``,
     ``spicevmc``, ``spiceport``. The specific backend will determine the
     applicable options.
 
@@ -3622,15 +3620,8 @@ The available backends are:
     Connect to a local BrlAPI server. ``braille`` does not take any
     options.
 
-``-chardev tty,id=id,path=path``
-    ``tty`` is only available on Linux, Sun, FreeBSD, NetBSD, OpenBSD
-    and DragonFlyBSD hosts. It is an alias for ``serial``.
-
-    ``path`` specifies the path to the tty. ``path`` is required.
-
 ``-chardev parallel,id=id,path=path``
   \
-``-chardev parport,id=id,path=path``
     ``parallel`` is only available on Linux, FreeBSD and DragonFlyBSD
     hosts.
 
-- 
2.38.1



^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PULL 23/24] target/i386: Add SGX aex-notify and EDECCSSA support
  2022-12-21 18:01 [PULL 00/24] QEMU patches for 2022-12-21 Paolo Bonzini
                   ` (21 preceding siblings ...)
  2022-12-21 18:01 ` [PULL 22/24] util: remove support -chardev tty and -chardev parport Paolo Bonzini
@ 2022-12-21 18:01 ` Paolo Bonzini
  2022-12-21 18:01 ` [PULL 24/24] i386: SGX: remove deprecated member of SGXInfo Paolo Bonzini
  2023-01-03 13:34 ` [PULL 00/24] QEMU patches for 2022-12-21 Peter Maydell
  24 siblings, 0 replies; 26+ messages in thread
From: Paolo Bonzini @ 2022-12-21 18:01 UTC (permalink / raw)
  To: qemu-devel; +Cc: Kai Huang, Yang Zhong

From: Kai Huang <kai.huang@intel.com>

The new SGX Asynchronous Exit (AEX) notification mechanism (AEX-notify)
allows one enclave to receive a notification in the ERESUME after the
enclave exit due to an AEX.  EDECCSSA is a new SGX user leaf function
(ENCLU[EDECCSSA]) to facilitate the AEX notification handling.

Whether the hardware supports to create enclave with AEX-notify support
is enumerated via CPUID.(EAX=0x12,ECX=0x1):EAX[10].  The new EDECCSSA
user leaf function is enumerated via CPUID.(EAX=0x12,ECX=0x0):EAX[11].

Add support to allow to expose the new SGX AEX-notify feature and the
new EDECCSSA user leaf function to KVM guest.

Link: https://lore.kernel.org/lkml/166760360549.4906.809756297092548496.tip-bot2@tip-bot2/
Link: https://lore.kernel.org/lkml/166760360934.4906.2427175408052308969.tip-bot2@tip-bot2/
Reviewed-by: Yang Zhong <yang.zhong@linux.intel.com>
Signed-off-by: Kai Huang <kai.huang@intel.com>
Message-Id: <20221109024834.172705-1-kai.huang@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 target/i386/cpu.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/target/i386/cpu.c b/target/i386/cpu.c
index ae502f0bfeab..6c742c891022 100644
--- a/target/i386/cpu.c
+++ b/target/i386/cpu.c
@@ -1233,7 +1233,7 @@ FeatureWordInfo feature_word_info[FEATURE_WORDS] = {
         .feat_names = {
             "sgx1", "sgx2", NULL, NULL,
             NULL, NULL, NULL, NULL,
-            NULL, NULL, NULL, NULL,
+            NULL, NULL, NULL, "sgx-edeccssa",
             NULL, NULL, NULL, NULL,
             NULL, NULL, NULL, NULL,
             NULL, NULL, NULL, NULL,
@@ -1273,7 +1273,7 @@ FeatureWordInfo feature_word_info[FEATURE_WORDS] = {
         .feat_names = {
             NULL, "sgx-debug", "sgx-mode64", NULL,
             "sgx-provisionkey", "sgx-tokenkey", NULL, "sgx-kss",
-            NULL, NULL, NULL, NULL,
+            NULL, NULL, "sgx-aex-notify", NULL,
             NULL, NULL, NULL, NULL,
             NULL, NULL, NULL, NULL,
             NULL, NULL, NULL, NULL,
-- 
2.38.1



^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PULL 24/24] i386: SGX: remove deprecated member of SGXInfo
  2022-12-21 18:01 [PULL 00/24] QEMU patches for 2022-12-21 Paolo Bonzini
                   ` (22 preceding siblings ...)
  2022-12-21 18:01 ` [PULL 23/24] target/i386: Add SGX aex-notify and EDECCSSA support Paolo Bonzini
@ 2022-12-21 18:01 ` Paolo Bonzini
  2023-01-03 13:34 ` [PULL 00/24] QEMU patches for 2022-12-21 Peter Maydell
  24 siblings, 0 replies; 26+ messages in thread
From: Paolo Bonzini @ 2022-12-21 18:01 UTC (permalink / raw)
  To: qemu-devel

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 docs/about/deprecated.rst       | 13 -------------
 docs/about/removed-features.rst | 13 +++++++++++++
 hw/i386/sgx.c                   | 15 ++++++---------
 qapi/misc-target.json           | 12 ++----------
 4 files changed, 21 insertions(+), 32 deletions(-)

diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst
index 91015ce5da3b..c3a874dee806 100644
--- a/docs/about/deprecated.rst
+++ b/docs/about/deprecated.rst
@@ -165,19 +165,6 @@ accepted incorrect commands will return an error. Users should make sure that
 all arguments passed to ``device_add`` are consistent with the documented
 property types.
 
-``query-sgx`` return value member ``section-size`` (since 7.0)
-''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
-
-Member ``section-size`` in return value elements with meta-type ``uint64`` is
-deprecated.  Use ``sections`` instead.
-
-
-``query-sgx-capabilities`` return value member ``section-size`` (since 7.0)
-'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
-
-Member ``section-size`` in return value elements with meta-type ``uint64`` is
-deprecated.  Use ``sections`` instead.
-
 System accelerators
 -------------------
 
diff --git a/docs/about/removed-features.rst b/docs/about/removed-features.rst
index 44bd299142ca..c918cabd1aaa 100644
--- a/docs/about/removed-features.rst
+++ b/docs/about/removed-features.rst
@@ -507,6 +507,19 @@ type of array items in query-named-block-nodes.
 
 Specify the properties for the object as top-level arguments instead.
 
+``query-sgx`` return value member ``section-size`` (removed in 8.0)
+'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+
+Member ``section-size`` in the return value of ``query-sgx``
+was superseded by ``sections``.
+
+
+``query-sgx-capabilities`` return value member ``section-size`` (removed in 8.0)
+''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+
+Member ``section-size`` in the return value of ``query-sgx-capabilities``
+was superseded by ``sections``.
+
 Human Monitor Protocol (HMP) commands
 -------------------------------------
 
diff --git a/hw/i386/sgx.c b/hw/i386/sgx.c
index 09d9c7c73d9f..db004d17a65d 100644
--- a/hw/i386/sgx.c
+++ b/hw/i386/sgx.c
@@ -83,7 +83,7 @@ static uint64_t sgx_calc_section_metric(uint64_t low, uint64_t high)
            ((high & MAKE_64BIT_MASK(0, 20)) << 32);
 }
 
-static SGXEPCSectionList *sgx_calc_host_epc_sections(uint64_t *size)
+static SGXEPCSectionList *sgx_calc_host_epc_sections(void)
 {
     SGXEPCSectionList *head = NULL, **tail = &head;
     SGXEPCSection *section;
@@ -106,7 +106,6 @@ static SGXEPCSectionList *sgx_calc_host_epc_sections(uint64_t *size)
         section = g_new0(SGXEPCSection, 1);
         section->node = j++;
         section->size = sgx_calc_section_metric(ecx, edx);
-        *size += section->size;
         QAPI_LIST_APPEND(tail, section);
     }
 
@@ -157,7 +156,6 @@ SGXInfo *qmp_query_sgx_capabilities(Error **errp)
 {
     SGXInfo *info = NULL;
     uint32_t eax, ebx, ecx, edx;
-    uint64_t size = 0;
 
     int fd = qemu_open_old("/dev/sgx_vepc", O_RDWR);
     if (fd < 0) {
@@ -175,8 +173,7 @@ SGXInfo *qmp_query_sgx_capabilities(Error **errp)
     info->sgx1 = eax & (1U << 0) ? true : false;
     info->sgx2 = eax & (1U << 1) ? true : false;
 
-    info->sections = sgx_calc_host_epc_sections(&size);
-    info->section_size = size;
+    info->sections = sgx_calc_host_epc_sections();
 
     close(fd);
 
@@ -223,14 +220,12 @@ SGXInfo *qmp_query_sgx(Error **errp)
         return NULL;
     }
 
-    SGXEPCState *sgx_epc = &pcms->sgx_epc;
     info = g_new0(SGXInfo, 1);
 
     info->sgx = true;
     info->sgx1 = true;
     info->sgx2 = true;
     info->flc = true;
-    info->section_size = sgx_epc->size;
     info->sections = sgx_get_epc_sections_list();
 
     return info;
@@ -241,6 +236,7 @@ void hmp_info_sgx(Monitor *mon, const QDict *qdict)
     Error *err = NULL;
     SGXEPCSectionList *section_list, *section;
     g_autoptr(SGXInfo) info = qmp_query_sgx(&err);
+    uint64_t size = 0;
 
     if (err) {
         error_report_err(err);
@@ -254,8 +250,6 @@ void hmp_info_sgx(Monitor *mon, const QDict *qdict)
                    info->sgx2 ? "enabled" : "disabled");
     monitor_printf(mon, "FLC support: %s\n",
                    info->flc ? "enabled" : "disabled");
-    monitor_printf(mon, "size: %" PRIu64 "\n",
-                   info->section_size);
 
     section_list = info->sections;
     for (section = section_list; section; section = section->next) {
@@ -263,7 +257,10 @@ void hmp_info_sgx(Monitor *mon, const QDict *qdict)
                        section->value->node);
         monitor_printf(mon, "size=%" PRIu64 "\n",
                        section->value->size);
+        size += section->value->size;
     }
+    monitor_printf(mon, "total size=%" PRIu64 "\n",
+                   size);
 }
 
 bool sgx_epc_get_section(int section_nr, uint64_t *addr, uint64_t *size)
diff --git a/qapi/misc-target.json b/qapi/misc-target.json
index 4944c0528fe2..5b6a8e91850a 100644
--- a/qapi/misc-target.json
+++ b/qapi/misc-target.json
@@ -329,14 +329,8 @@
 #
 # @flc: true if FLC is supported
 #
-# @section-size: The EPC section size for guest
-#                Redundant with @sections.  Just for backward compatibility.
-#
 # @sections: The EPC sections info for guest (Since: 7.0)
 #
-# Features:
-# @deprecated: Member @section-size is deprecated.  Use @sections instead.
-#
 # Since: 6.2
 ##
 { 'struct': 'SGXInfo',
@@ -344,8 +338,6 @@
             'sgx1': 'bool',
             'sgx2': 'bool',
             'flc': 'bool',
-            'section-size': { 'type': 'uint64',
-                    'features': [ 'deprecated' ] },
             'sections': ['SGXEPCSection']},
    'if': 'TARGET_I386' }
 
@@ -362,7 +354,7 @@
 #
 # -> { "execute": "query-sgx" }
 # <- { "return": { "sgx": true, "sgx1" : true, "sgx2" : true,
-#                  "flc": true,  "section-size" : 96468992,
+#                  "flc": true,
 #                  "sections": [{"node": 0, "size": 67108864},
 #                  {"node": 1, "size": 29360128}]} }
 #
@@ -382,7 +374,7 @@
 #
 # -> { "execute": "query-sgx-capabilities" }
 # <- { "return": { "sgx": true, "sgx1" : true, "sgx2" : true,
-#                  "flc": true, "section-size" : 96468992,
+#                  "flc": true,
 #                  "section" : [{"node": 0, "size": 67108864},
 #                  {"node": 1, "size": 29360128}]} }
 #
-- 
2.38.1



^ permalink raw reply related	[flat|nested] 26+ messages in thread

* Re: [PULL 00/24] QEMU patches for 2022-12-21
  2022-12-21 18:01 [PULL 00/24] QEMU patches for 2022-12-21 Paolo Bonzini
                   ` (23 preceding siblings ...)
  2022-12-21 18:01 ` [PULL 24/24] i386: SGX: remove deprecated member of SGXInfo Paolo Bonzini
@ 2023-01-03 13:34 ` Peter Maydell
  24 siblings, 0 replies; 26+ messages in thread
From: Peter Maydell @ 2023-01-03 13:34 UTC (permalink / raw)
  To: Paolo Bonzini; +Cc: qemu-devel

On Wed, 21 Dec 2022 at 18:02, Paolo Bonzini <pbonzini@redhat.com> wrote:
>
> The following changes since commit d038d2645acabf6f52fd61baeaa021c3ebe97714:
>
>   Merge tag 'for-upstream' of https://repo.or.cz/qemu/kevin into staging (2022-12-16 13:26:09 +0000)
>
> are available in the Git repository at:
>
>   https://gitlab.com/bonzini/qemu.git tags/for-upstream
>
> for you to fetch changes up to 4a4c1382c8c3fe6e25c782bfda5de753ced3f6a1:
>
>   i386: SGX: remove deprecated member of SGXInfo (2022-12-20 15:45:45 +0100)
>
> ----------------------------------------------------------------
> * Atomic memslot updates for KVM (Emanuele, David)
> * Always send errors to logfile when daemonized (Greg)
> * Add support for IDE CompactFlash card (Lubomir)
> * First round of build system cleanups (myself)
> * First round of feature removals (myself)
> * Reduce "qemu/accel.h" inclusion (Philippe)

Hi; this fails to build on the centos-stream-8-x86_64 job:
https://gitlab.com/qemu-project/qemu/-/jobs/3513705785

ERROR: unknown option --enable-trace-backend=dtrace

thanks
-- PMM


^ permalink raw reply	[flat|nested] 26+ messages in thread

end of thread, other threads:[~2023-01-03 13:35 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-12-21 18:01 [PULL 00/24] QEMU patches for 2022-12-21 Paolo Bonzini
2022-12-21 18:01 ` [PULL 01/24] typedefs: Forward-declare AccelState Paolo Bonzini
2022-12-21 18:01 ` [PULL 02/24] hw: Reduce "qemu/accel.h" inclusion Paolo Bonzini
2022-12-21 18:01 ` [PULL 03/24] util/log: do not close and reopen log files when flags are turned off Paolo Bonzini
2022-12-21 18:01 ` [PULL 04/24] util/log: Always send errors to logfile when daemonized Paolo Bonzini
2022-12-21 18:01 ` [PULL 05/24] ide: Add 8-bit data mode Paolo Bonzini
2022-12-21 18:01 ` [PULL 06/24] ide: Add "ide-cf" driver, a CompactFlash card Paolo Bonzini
2022-12-21 18:01 ` [PULL 07/24] configure: remove useless write_c_skeleton Paolo Bonzini
2022-12-21 18:01 ` [PULL 08/24] configure: remove dead function Paolo Bonzini
2022-12-21 18:01 ` [PULL 09/24] configure: cleanup $cpu tests Paolo Bonzini
2022-12-21 18:01 ` [PULL 10/24] configure: preserve qemu-ga variables Paolo Bonzini
2022-12-21 18:01 ` [PULL 11/24] configure: remove backwards-compatibility and obsolete options Paolo Bonzini
2022-12-21 18:01 ` [PULL 12/24] meson: tweak hardening options for Windows Paolo Bonzini
2022-12-21 18:01 ` [PULL 13/24] meson: cleanup dummy-cpus.c rules Paolo Bonzini
2022-12-21 18:01 ` [PULL 14/24] tests/qapi-schema: remove Meson workaround Paolo Bonzini
2022-12-21 18:01 ` [PULL 15/24] configure: test all warnings Paolo Bonzini
2022-12-21 18:01 ` [PULL 16/24] meson: support meson 0.64 -Doptimization=plain Paolo Bonzini
2022-12-21 18:01 ` [PULL 17/24] meson: cleanup compiler detection Paolo Bonzini
2022-12-21 18:01 ` [PULL 18/24] meson: accept relative symlinks in "meson introspect --installed" data Paolo Bonzini
2022-12-21 18:01 ` [PULL 19/24] docs: do not talk about past removal as happening in the future Paolo Bonzini
2022-12-21 18:01 ` [PULL 20/24] KVM: remove support for kernel-irqchip=off Paolo Bonzini
2022-12-21 18:01 ` [PULL 21/24] util: remove support for hex numbers with a scaling suffix Paolo Bonzini
2022-12-21 18:01 ` [PULL 22/24] util: remove support -chardev tty and -chardev parport Paolo Bonzini
2022-12-21 18:01 ` [PULL 23/24] target/i386: Add SGX aex-notify and EDECCSSA support Paolo Bonzini
2022-12-21 18:01 ` [PULL 24/24] i386: SGX: remove deprecated member of SGXInfo Paolo Bonzini
2023-01-03 13:34 ` [PULL 00/24] QEMU patches for 2022-12-21 Peter Maydell

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.