All of lore.kernel.org
 help / color / mirror / Atom feed
* [PULL v2 00/48] Misc patches for QEMU 6.1 soft freeze
@ 2021-07-10 18:58 Paolo Bonzini
  2021-07-10 18:58 ` [PULL v2 05/48] modules: add modinfo macros Paolo Bonzini
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Paolo Bonzini @ 2021-07-10 18:58 UTC (permalink / raw)
  To: qemu-devel

The following changes since commit 05de778b5b8ab0b402996769117b88c7ea5c7c61:

  Merge remote-tracking branch 'remotes/mst/tags/for_upstream' into staging (2021-07-09 14:30:01 +0100)

are available in the Git repository at:

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

for you to fetch changes up to 411ad8dd80077e98ed465775b044caf1a9482f6c:

  meson: Use input/output for entitlements target (2021-07-09 18:21:34 +0200)

v1->v2: fix docs build, add final patch for entitlements target

----------------------------------------------------------------
* More SVM fixes (Lara)
* Module annotation database (Gerd)
* Memory leak fixes (myself)
* Build fixes (myself)
* --with-devices-* support (Alex)

----------------------------------------------------------------
Akihiko Odaki (1):
      meson: Use input/output for entitlements target

Alex Bennée (4):
      hw/arm: add dependency on OR_IRQ for XLNX_VERSAL
      hw/arm: move CONFIG_V7M out of default-devices
      configs: rename default-configs to configs and reorganise
      configure: allow the selection of alternate config in the build

Gerd Hoffmann (32):
      modules: add modinfo macros
      modules: collect module meta-data
      modules: generate modinfo.c
      modules: add qxl module annotations
      modules: add virtio-gpu module annotations
      modules: add chardev module annotations
      modules: add audio module annotations
      modules: add usb-redir module annotations
      modules: add ccid module annotations
      modules: add ui module annotations
      modules: add s390x module annotations
      modules: add block module annotations
      modules: use modinfo for dependencies
      modules: use modinfo for qom load
      modules: use modinfo for qemu opts load
      modules: add tracepoints
      modules: check arch and block load on mismatch
      modules: check arch on qom lookup
      modules: target-specific module build infrastructure
      modules: add documentation for module sourcesets
      modules: add module_obj() note to QOM docs
      modules: hook up modules.h to docs build
      accel: autoload modules
      accel: add qtest module annotations
      accel: build qtest modular
      accel: add tcg module annotations
      accel: build tcg modular
      monitor: allow register hmp commands
      usb: drop usb_host_dev_is_scsi_storage hook
      monitor/usb: register 'info usbhost' dynamically
      usb: build usb-host as module
      monitor/tcg: move tcg hmp commands to accel/tcg, register them dynamically

Jose R. Ziviani (1):
      modules: check if all dependencies can be satisfied

Lara Lazier (2):
      target/i386: Added MSRPM and IOPM size check
      target/i386: Added DR6 and DR7 consistency checks

Miroslav Rezanina (2):
      configure: fix libdaxctl options
      configure: fix libpmem configuration option

Paolo Bonzini (5):
      meson: fix missing preprocessor symbols
      osdep: fix HAVE_BROKEN_SIZE_MAX case
      target/i386: fix exceptions for MOV to DR
      vl: fix leak of qdict_crumple return value
      meson: switch function tests from compilation to linking

Philippe Mathieu-Daudé (1):
      meson: Introduce target-specific Kconfig

 Kconfig                                            |   1 +
 MAINTAINERS                                        |  22 ++-
 accel/accel-common.c                               |   2 +-
 accel/accel-softmmu.c                              |   2 +-
 accel/qtest/meson.build                            |   8 +-
 accel/qtest/qtest.c                                |   2 +
 accel/tcg/hmp.c                                    |  29 +++
 accel/tcg/meson.build                              |   6 +-
 accel/tcg/tcg-accel-ops.c                          |   1 +
 accel/tcg/tcg-all.c                                |   1 +
 audio/spiceaudio.c                                 |   2 +
 block/iscsi-opts.c                                 |   1 +
 block/meson.build                                  |   2 +-
 chardev/baum.c                                     |   1 +
 chardev/spice.c                                    |   4 +
 .../devices/aarch64-softmmu/default.mak            |   2 +-
 configs/devices/aarch64-softmmu/minimal.mak        |   9 +
 .../devices/alpha-softmmu/default.mak              |   0
 .../devices/arm-softmmu/default.mak                |   3 -
 .../devices/avr-softmmu/default.mak                |   0
 .../devices/cris-softmmu/default.mak               |   0
 .../devices/hppa-softmmu/default.mak               |   0
 .../devices/i386-softmmu/default.mak               |   0
 .../devices/m68k-softmmu/default.mak               |   0
 .../devices/microblaze-softmmu/default.mak         |   0
 .../devices/microblazeel-softmmu/default.mak       |   2 +-
 .../devices/mips-softmmu/common.mak                |   0
 .../devices/mips-softmmu/default.mak               |   2 +-
 .../devices/mips64-softmmu/default.mak             |   2 +-
 .../devices/mips64el-softmmu/default.mak           |   2 +-
 .../devices/mipsel-softmmu/default.mak             |   2 +-
 .../devices/nios2-softmmu/default.mak              |   0
 .../devices/or1k-softmmu/default.mak               |   0
 .../devices/ppc-softmmu/default.mak                |   0
 .../devices/ppc64-softmmu/default.mak              |   2 +-
 .../devices/riscv32-softmmu/default.mak            |   0
 .../devices/riscv64-softmmu/default.mak            |   0
 .../devices/rx-softmmu/default.mak                 |   0
 .../devices/s390x-softmmu/default.mak              |   0
 .../devices/sh4-softmmu/default.mak                |   0
 .../devices/sh4eb-softmmu/default.mak              |   2 +-
 .../devices/sparc-softmmu/default.mak              |   0
 .../devices/sparc64-softmmu/default.mak            |   0
 .../devices/tricore-softmmu/default.mak            |   0
 .../devices/x86_64-softmmu/default.mak             |   2 +-
 .../devices/xtensa-softmmu/default.mak             |   0
 configs/devices/xtensaeb-softmmu/default.mak       |   3 +
 .../targets/aarch64-linux-user.mak                 |   0
 .../targets/aarch64-softmmu.mak                    |   0
 .../targets/aarch64_be-linux-user.mak              |   0
 .../targets/alpha-linux-user.mak                   |   0
 .../targets/alpha-softmmu.mak                      |   0
 .../targets/arm-linux-user.mak                     |   0
 .../targets/arm-softmmu.mak                        |   0
 .../targets/armeb-linux-user.mak                   |   0
 .../targets/avr-softmmu.mak                        |   0
 .../targets/cris-linux-user.mak                    |   0
 .../targets/cris-softmmu.mak                       |   0
 .../targets/hexagon-linux-user.mak                 |   0
 .../targets/hppa-linux-user.mak                    |   0
 .../targets/hppa-softmmu.mak                       |   0
 .../targets/i386-bsd-user.mak                      |   0
 .../targets/i386-linux-user.mak                    |   0
 .../targets/i386-softmmu.mak                       |   0
 .../targets/m68k-linux-user.mak                    |   0
 .../targets/m68k-softmmu.mak                       |   0
 .../targets/microblaze-linux-user.mak              |   0
 .../targets/microblaze-softmmu.mak                 |   0
 .../targets/microblazeel-linux-user.mak            |   0
 .../targets/microblazeel-softmmu.mak               |   0
 .../targets/mips-linux-user.mak                    |   0
 .../targets/mips-softmmu.mak                       |   0
 .../targets/mips64-linux-user.mak                  |   0
 .../targets/mips64-softmmu.mak                     |   0
 .../targets/mips64el-linux-user.mak                |   0
 .../targets/mips64el-softmmu.mak                   |   0
 .../targets/mipsel-linux-user.mak                  |   0
 .../targets/mipsel-softmmu.mak                     |   0
 .../targets/mipsn32-linux-user.mak                 |   0
 .../targets/mipsn32el-linux-user.mak               |   0
 .../targets/nios2-linux-user.mak                   |   0
 .../targets/nios2-softmmu.mak                      |   0
 .../targets/or1k-linux-user.mak                    |   0
 .../targets/or1k-softmmu.mak                       |   0
 .../targets/ppc-linux-user.mak                     |   0
 .../targets/ppc-softmmu.mak                        |   0
 .../targets/ppc64-linux-user.mak                   |   0
 .../targets/ppc64-softmmu.mak                      |   0
 .../targets/ppc64abi32-linux-user.mak              |   0
 .../targets/ppc64le-linux-user.mak                 |   0
 .../targets/riscv32-linux-user.mak                 |   0
 .../targets/riscv32-softmmu.mak                    |   0
 .../targets/riscv64-linux-user.mak                 |   0
 .../targets/riscv64-softmmu.mak                    |   0
 .../targets/rx-softmmu.mak                         |   0
 .../targets/s390x-linux-user.mak                   |   0
 .../targets/s390x-softmmu.mak                      |   0
 .../targets/sh4-linux-user.mak                     |   0
 .../targets/sh4-softmmu.mak                        |   0
 .../targets/sh4eb-linux-user.mak                   |   0
 .../targets/sh4eb-softmmu.mak                      |   0
 .../targets/sparc-linux-user.mak                   |   0
 .../targets/sparc-softmmu.mak                      |   0
 .../targets/sparc32plus-linux-user.mak             |   0
 .../targets/sparc64-linux-user.mak                 |   0
 .../targets/sparc64-softmmu.mak                    |   0
 .../targets/tricore-softmmu.mak                    |   0
 .../targets/x86_64-bsd-user.mak                    |   0
 .../targets/x86_64-linux-user.mak                  |   0
 .../targets/x86_64-softmmu.mak                     |   0
 .../targets/xtensa-linux-user.mak                  |   0
 .../targets/xtensa-softmmu.mak                     |   0
 .../targets/xtensaeb-linux-user.mak                |   0
 .../targets/xtensaeb-softmmu.mak                   |   0
 configure                                          |  44 +++--
 contrib/vhost-user-gpu/meson.build                 |   2 +-
 default-configs/devices/xtensaeb-softmmu.mak       |   3 -
 docs/devel/build-system.rst                        |  17 ++
 docs/devel/index.rst                               |   1 +
 docs/devel/modules.rst                             |   5 +
 docs/devel/qom.rst                                 |   8 +
 hmp-commands-info.hx                               |   3 -
 hw/arm/Kconfig                                     |   4 +
 hw/display/qxl.c                                   |   4 +
 hw/display/vhost-user-gpu-pci.c                    |   1 +
 hw/display/vhost-user-gpu.c                        |   1 +
 hw/display/vhost-user-vga.c                        |   1 +
 hw/display/virtio-gpu-base.c                       |   1 +
 hw/display/virtio-gpu-gl.c                         |   3 +
 hw/display/virtio-gpu-pci-gl.c                     |   3 +
 hw/display/virtio-gpu-pci.c                        |   2 +
 hw/display/virtio-gpu.c                            |   1 +
 hw/display/virtio-vga-gl.c                         |   3 +
 hw/display/virtio-vga.c                            |   2 +
 hw/ppc/spapr.c                                     |   2 +-
 hw/s390x/virtio-ccw-gpu.c                          |   3 +
 hw/usb/ccid-card-emulated.c                        |   1 +
 hw/usb/ccid-card-passthru.c                        |   1 +
 hw/usb/dev-storage-bot.c                           |   1 +
 hw/usb/dev-storage-classic.c                       |   1 +
 hw/usb/dev-uas.c                                   |   1 +
 hw/usb/host-libusb.c                               |  38 +---
 hw/usb/host-stub.c                                 |  45 -----
 hw/usb/meson.build                                 |  10 +-
 hw/usb/redirect.c                                  |   1 +
 include/hw/usb.h                                   |   7 +-
 include/monitor/monitor.h                          |   3 +
 include/qemu/module.h                              |  79 ++++++++
 include/qemu/osdep.h                               |   2 +-
 meson.build                                        | 142 ++++++++++++---
 monitor/hmp.c                                      |   7 +
 monitor/misc.c                                     |  34 ++--
 scripts/entitlement.sh                             |  10 +-
 scripts/modinfo-collect.py                         |  67 +++++++
 scripts/modinfo-generate.py                        |  97 ++++++++++
 softmmu/vl.c                                       |  37 ++--
 stubs/module-opts.c                                |   4 -
 target/Kconfig                                     |  19 ++
 target/alpha/Kconfig                               |   2 +
 target/arm/Kconfig                                 |   6 +
 target/avr/Kconfig                                 |   2 +
 target/cris/Kconfig                                |   2 +
 target/hppa/Kconfig                                |   2 +
 target/i386/Kconfig                                |   5 +
 target/i386/cpu.h                                  |   2 +
 target/i386/helper.h                               |   3 +-
 target/i386/svm.h                                  |   3 +
 target/i386/tcg/bpt_helper.c                       |  21 ---
 target/i386/tcg/sysemu/bpt_helper.c                |  47 +++--
 target/i386/tcg/sysemu/svm_helper.c                |  24 ++-
 target/i386/tcg/translate.c                        |   1 +
 target/m68k/Kconfig                                |   2 +
 target/microblaze/Kconfig                          |   2 +
 target/mips/Kconfig                                |   6 +
 target/nios2/Kconfig                               |   2 +
 target/openrisc/Kconfig                            |   2 +
 target/ppc/Kconfig                                 |   5 +
 target/riscv/Kconfig                               |   5 +
 target/rx/Kconfig                                  |   2 +
 target/s390x/Kconfig                               |   2 +
 target/sh4/Kconfig                                 |   2 +
 target/sparc/Kconfig                               |   5 +
 target/tricore/Kconfig                             |   2 +
 target/xtensa/Kconfig                              |   2 +
 tests/Makefile.include                             |   2 +-
 ui/egl-headless.c                                  |   4 +
 ui/gtk.c                                           |   4 +
 ui/sdl2.c                                          |   4 +
 ui/spice-app.c                                     |   3 +
 ui/spice-core.c                                    |   5 +
 util/meson.build                                   |   2 +-
 util/module.c                                      | 200 ++++++++++++---------
 util/trace-events                                  |   4 +
 193 files changed, 885 insertions(+), 340 deletions(-)
 create mode 100644 accel/tcg/hmp.c
 rename default-configs/devices/aarch64-softmmu.mak => configs/devices/aarch64-softmmu/default.mak (82%)
 create mode 100644 configs/devices/aarch64-softmmu/minimal.mak
 rename default-configs/devices/alpha-softmmu.mak => configs/devices/alpha-softmmu/default.mak (100%)
 rename default-configs/devices/arm-softmmu.mak => configs/devices/arm-softmmu/default.mak (89%)
 rename default-configs/devices/avr-softmmu.mak => configs/devices/avr-softmmu/default.mak (100%)
 rename default-configs/devices/cris-softmmu.mak => configs/devices/cris-softmmu/default.mak (100%)
 rename default-configs/devices/hppa-softmmu.mak => configs/devices/hppa-softmmu/default.mak (100%)
 rename default-configs/devices/i386-softmmu.mak => configs/devices/i386-softmmu/default.mak (100%)
 rename default-configs/devices/m68k-softmmu.mak => configs/devices/m68k-softmmu/default.mak (100%)
 rename default-configs/devices/microblaze-softmmu.mak => configs/devices/microblaze-softmmu/default.mak (100%)
 rename default-configs/devices/microblazeel-softmmu.mak => configs/devices/microblazeel-softmmu/default.mak (54%)
 rename default-configs/devices/mips-softmmu-common.mak => configs/devices/mips-softmmu/common.mak (100%)
 rename default-configs/devices/mips-softmmu.mak => configs/devices/mips-softmmu/default.mak (56%)
 rename default-configs/devices/mips64-softmmu.mak => configs/devices/mips64-softmmu/default.mak (62%)
 rename default-configs/devices/mips64el-softmmu.mak => configs/devices/mips64el-softmmu/default.mak (88%)
 rename default-configs/devices/mipsel-softmmu.mak => configs/devices/mipsel-softmmu/default.mak (55%)
 rename default-configs/devices/nios2-softmmu.mak => configs/devices/nios2-softmmu/default.mak (100%)
 rename default-configs/devices/or1k-softmmu.mak => configs/devices/or1k-softmmu/default.mak (100%)
 rename default-configs/devices/ppc-softmmu.mak => configs/devices/ppc-softmmu/default.mak (100%)
 rename default-configs/devices/ppc64-softmmu.mak => configs/devices/ppc64-softmmu/default.mak (79%)
 rename default-configs/devices/riscv32-softmmu.mak => configs/devices/riscv32-softmmu/default.mak (100%)
 rename default-configs/devices/riscv64-softmmu.mak => configs/devices/riscv64-softmmu/default.mak (100%)
 rename default-configs/devices/rx-softmmu.mak => configs/devices/rx-softmmu/default.mak (100%)
 rename default-configs/devices/s390x-softmmu.mak => configs/devices/s390x-softmmu/default.mak (100%)
 rename default-configs/devices/sh4-softmmu.mak => configs/devices/sh4-softmmu/default.mak (100%)
 rename default-configs/devices/sh4eb-softmmu.mak => configs/devices/sh4eb-softmmu/default.mak (55%)
 rename default-configs/devices/sparc-softmmu.mak => configs/devices/sparc-softmmu/default.mak (100%)
 rename default-configs/devices/sparc64-softmmu.mak => configs/devices/sparc64-softmmu/default.mak (100%)
 rename default-configs/devices/tricore-softmmu.mak => configs/devices/tricore-softmmu/default.mak (100%)
 rename default-configs/devices/x86_64-softmmu.mak => configs/devices/x86_64-softmmu/default.mak (55%)
 rename default-configs/devices/xtensa-softmmu.mak => configs/devices/xtensa-softmmu/default.mak (100%)
 create mode 100644 configs/devices/xtensaeb-softmmu/default.mak
 rename {default-configs => configs}/targets/aarch64-linux-user.mak (100%)
 rename {default-configs => configs}/targets/aarch64-softmmu.mak (100%)
 rename {default-configs => configs}/targets/aarch64_be-linux-user.mak (100%)
 rename {default-configs => configs}/targets/alpha-linux-user.mak (100%)
 rename {default-configs => configs}/targets/alpha-softmmu.mak (100%)
 rename {default-configs => configs}/targets/arm-linux-user.mak (100%)
 rename {default-configs => configs}/targets/arm-softmmu.mak (100%)
 rename {default-configs => configs}/targets/armeb-linux-user.mak (100%)
 rename {default-configs => configs}/targets/avr-softmmu.mak (100%)
 rename {default-configs => configs}/targets/cris-linux-user.mak (100%)
 rename {default-configs => configs}/targets/cris-softmmu.mak (100%)
 rename {default-configs => configs}/targets/hexagon-linux-user.mak (100%)
 rename {default-configs => configs}/targets/hppa-linux-user.mak (100%)
 rename {default-configs => configs}/targets/hppa-softmmu.mak (100%)
 rename {default-configs => configs}/targets/i386-bsd-user.mak (100%)
 rename {default-configs => configs}/targets/i386-linux-user.mak (100%)
 rename {default-configs => configs}/targets/i386-softmmu.mak (100%)
 rename {default-configs => configs}/targets/m68k-linux-user.mak (100%)
 rename {default-configs => configs}/targets/m68k-softmmu.mak (100%)
 rename {default-configs => configs}/targets/microblaze-linux-user.mak (100%)
 rename {default-configs => configs}/targets/microblaze-softmmu.mak (100%)
 rename {default-configs => configs}/targets/microblazeel-linux-user.mak (100%)
 rename {default-configs => configs}/targets/microblazeel-softmmu.mak (100%)
 rename {default-configs => configs}/targets/mips-linux-user.mak (100%)
 rename {default-configs => configs}/targets/mips-softmmu.mak (100%)
 rename {default-configs => configs}/targets/mips64-linux-user.mak (100%)
 rename {default-configs => configs}/targets/mips64-softmmu.mak (100%)
 rename {default-configs => configs}/targets/mips64el-linux-user.mak (100%)
 rename {default-configs => configs}/targets/mips64el-softmmu.mak (100%)
 rename {default-configs => configs}/targets/mipsel-linux-user.mak (100%)
 rename {default-configs => configs}/targets/mipsel-softmmu.mak (100%)
 rename {default-configs => configs}/targets/mipsn32-linux-user.mak (100%)
 rename {default-configs => configs}/targets/mipsn32el-linux-user.mak (100%)
 rename {default-configs => configs}/targets/nios2-linux-user.mak (100%)
 rename {default-configs => configs}/targets/nios2-softmmu.mak (100%)
 rename {default-configs => configs}/targets/or1k-linux-user.mak (100%)
 rename {default-configs => configs}/targets/or1k-softmmu.mak (100%)
 rename {default-configs => configs}/targets/ppc-linux-user.mak (100%)
 rename {default-configs => configs}/targets/ppc-softmmu.mak (100%)
 rename {default-configs => configs}/targets/ppc64-linux-user.mak (100%)
 rename {default-configs => configs}/targets/ppc64-softmmu.mak (100%)
 rename {default-configs => configs}/targets/ppc64abi32-linux-user.mak (100%)
 rename {default-configs => configs}/targets/ppc64le-linux-user.mak (100%)
 rename {default-configs => configs}/targets/riscv32-linux-user.mak (100%)
 rename {default-configs => configs}/targets/riscv32-softmmu.mak (100%)
 rename {default-configs => configs}/targets/riscv64-linux-user.mak (100%)
 rename {default-configs => configs}/targets/riscv64-softmmu.mak (100%)
 rename {default-configs => configs}/targets/rx-softmmu.mak (100%)
 rename {default-configs => configs}/targets/s390x-linux-user.mak (100%)
 rename {default-configs => configs}/targets/s390x-softmmu.mak (100%)
 rename {default-configs => configs}/targets/sh4-linux-user.mak (100%)
 rename {default-configs => configs}/targets/sh4-softmmu.mak (100%)
 rename {default-configs => configs}/targets/sh4eb-linux-user.mak (100%)
 rename {default-configs => configs}/targets/sh4eb-softmmu.mak (100%)
 rename {default-configs => configs}/targets/sparc-linux-user.mak (100%)
 rename {default-configs => configs}/targets/sparc-softmmu.mak (100%)
 rename {default-configs => configs}/targets/sparc32plus-linux-user.mak (100%)
 rename {default-configs => configs}/targets/sparc64-linux-user.mak (100%)
 rename {default-configs => configs}/targets/sparc64-softmmu.mak (100%)
 rename {default-configs => configs}/targets/tricore-softmmu.mak (100%)
 rename {default-configs => configs}/targets/x86_64-bsd-user.mak (100%)
 rename {default-configs => configs}/targets/x86_64-linux-user.mak (100%)
 rename {default-configs => configs}/targets/x86_64-softmmu.mak (100%)
 rename {default-configs => configs}/targets/xtensa-linux-user.mak (100%)
 rename {default-configs => configs}/targets/xtensa-softmmu.mak (100%)
 rename {default-configs => configs}/targets/xtensaeb-linux-user.mak (100%)
 rename {default-configs => configs}/targets/xtensaeb-softmmu.mak (100%)
 delete mode 100644 default-configs/devices/xtensaeb-softmmu.mak
 create mode 100644 docs/devel/modules.rst
 delete mode 100644 hw/usb/host-stub.c
 create mode 100755 scripts/modinfo-collect.py
 create mode 100755 scripts/modinfo-generate.py
 create mode 100644 target/Kconfig
 create mode 100644 target/alpha/Kconfig
 create mode 100644 target/arm/Kconfig
 create mode 100644 target/avr/Kconfig
 create mode 100644 target/cris/Kconfig
 create mode 100644 target/hppa/Kconfig
 create mode 100644 target/i386/Kconfig
 create mode 100644 target/m68k/Kconfig
 create mode 100644 target/microblaze/Kconfig
 create mode 100644 target/mips/Kconfig
 create mode 100644 target/nios2/Kconfig
 create mode 100644 target/openrisc/Kconfig
 create mode 100644 target/ppc/Kconfig
 create mode 100644 target/riscv/Kconfig
 create mode 100644 target/rx/Kconfig
 create mode 100644 target/s390x/Kconfig
 create mode 100644 target/sh4/Kconfig
 create mode 100644 target/sparc/Kconfig
 create mode 100644 target/tricore/Kconfig
 create mode 100644 target/xtensa/Kconfig
-- 
2.31.1



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

* [PULL v2 05/48] modules: add modinfo macros
  2021-07-10 18:58 [PULL v2 00/48] Misc patches for QEMU 6.1 soft freeze Paolo Bonzini
@ 2021-07-10 18:58 ` Paolo Bonzini
  2021-07-10 18:58 ` [PULL v2 48/48] meson: Use input/output for entitlements target Paolo Bonzini
  2021-07-12 10:01 ` [PULL v2 00/48] Misc patches for QEMU 6.1 soft freeze Peter Maydell
  2 siblings, 0 replies; 5+ messages in thread
From: Paolo Bonzini @ 2021-07-10 18:58 UTC (permalink / raw)
  To: qemu-devel; +Cc: Gerd Hoffmann, Jose R . Ziviani

From: Gerd Hoffmann <kraxel@redhat.com>

Add macros for module info annotations.

Instead of having that module meta-data stored in lists in util/module.c
place directly in the module source code.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Jose R. Ziviani <jziviani@suse.de>
Message-Id: <20210624103836.2382472-2-kraxel@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 include/qemu/module.h | 61 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 61 insertions(+)

diff --git a/include/qemu/module.h b/include/qemu/module.h
index 944d403cbd..b595f15975 100644
--- a/include/qemu/module.h
+++ b/include/qemu/module.h
@@ -73,4 +73,65 @@ bool module_load_one(const char *prefix, const char *lib_name, bool mayfail);
 void module_load_qom_one(const char *type);
 void module_load_qom_all(void);
 
+/**
+ * DOC: module info annotation macros
+ *
+ * `scripts/modinfo-collect.py` will collect module info,
+ * using the preprocessor and -DQEMU_MODINFO.
+ *
+ * `scripts/modinfo-generate.py` will create a module meta-data database
+ * from the collected information so qemu knows about module
+ * dependencies and QOM objects implemented by modules.
+ *
+ * See `*.modinfo` and `modinfo.c` in the build directory to check the
+ * script results.
+ */
+#ifdef QEMU_MODINFO
+# define modinfo(kind, value) \
+    MODINFO_START kind value MODINFO_END
+#else
+# define modinfo(kind, value)
+#endif
+
+/**
+ * module_obj
+ *
+ * @name: QOM type.
+ *
+ * This module implements QOM type @name.
+ */
+#define module_obj(name) modinfo(obj, name)
+
+/**
+ * module_dep
+ *
+ * @name: module name
+ *
+ * This module depends on module @name.
+ */
+#define module_dep(name) modinfo(dep, name)
+
+/**
+ * module_arch
+ *
+ * @name: target architecture
+ *
+ * This module is for target architecture @arch.
+ *
+ * Note that target-dependent modules are tagged automatically, so
+ * this is only needed in case target-independent modules should be
+ * restricted.  Use case example: the ccw bus is implemented by s390x
+ * only.
+ */
+#define module_arch(name) modinfo(arch, name)
+
+/**
+ * module_opts
+ *
+ * @name: QemuOpts name
+ *
+ * This module registers QemuOpts @name.
+ */
+#define module_opts(name) modinfo(opts, name)
+
 #endif
-- 
2.31.1




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

* [PULL v2 48/48] meson: Use input/output for entitlements target
  2021-07-10 18:58 [PULL v2 00/48] Misc patches for QEMU 6.1 soft freeze Paolo Bonzini
  2021-07-10 18:58 ` [PULL v2 05/48] modules: add modinfo macros Paolo Bonzini
@ 2021-07-10 18:58 ` Paolo Bonzini
  2021-07-12 10:01 ` [PULL v2 00/48] Misc patches for QEMU 6.1 soft freeze Peter Maydell
  2 siblings, 0 replies; 5+ messages in thread
From: Paolo Bonzini @ 2021-07-10 18:58 UTC (permalink / raw)
  To: qemu-devel; +Cc: Akihiko Odaki

From: Akihiko Odaki <akihiko.odaki@gmail.com>

input/output parameters respect dependencies.

Signed-off-by: Akihiko Odaki <akihiko.odaki@gmail.com>
Message-Id: <20210709012533.58262-1-akihiko.odaki@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 meson.build            | 30 +++++++++++++++++-------------
 scripts/entitlement.sh | 10 +++++-----
 2 files changed, 22 insertions(+), 18 deletions(-)

diff --git a/meson.build b/meson.build
index 651c3b114b..b2e8731410 100644
--- a/meson.build
+++ b/meson.build
@@ -2609,28 +2609,32 @@ foreach target : target_dirs
                link_args: link_args,
                gui_app: exe['gui'])
 
-    if 'CONFIG_HVF' in config_target
-      entitlements = meson.current_source_dir() / 'accel/hvf/entitlements.plist'
-    else
-      entitlements = '/dev/null'
-    endif
     if targetos == 'darwin'
-      icon = meson.current_source_dir() / 'pc-bios/qemu.rsrc'
+      icon = 'pc-bios/qemu.rsrc'
+      build_input = [emulator, files(icon)]
+      install_input = [
+        get_option('bindir') / exe_name,
+        meson.current_source_dir() / icon
+      ]
+      if 'CONFIG_HVF' in config_target
+        entitlements = 'accel/hvf/entitlements.plist'
+        build_input += files(entitlements)
+        install_input += meson.current_source_dir() / entitlements
+      endif
+
       emulators += {exe['name'] : custom_target(exe['name'],
-                   depends: emulator,
+                   input: build_input,
                    output: exe['name'],
                    command: [
-                     meson.current_source_dir() / 'scripts/entitlement.sh',
-                     meson.current_build_dir() / exe_name,
-                     meson.current_build_dir() / exe['name'],
-                     entitlements, icon
+                     files('scripts/entitlement.sh'),
+                     '@OUTPUT@',
+                     '@INPUT@'
                    ])
       }
 
       meson.add_install_script('scripts/entitlement.sh', '--install',
-                               get_option('bindir') / exe_name,
                                get_option('bindir') / exe['name'],
-                               entitlements, icon)
+                               install_input)
     else
       emulators += {exe['name']: emulator}
     endif
diff --git a/scripts/entitlement.sh b/scripts/entitlement.sh
index d2a7079ce3..e2c956a3ac 100755
--- a/scripts/entitlement.sh
+++ b/scripts/entitlement.sh
@@ -8,10 +8,10 @@ if [ "$1" = --install ]; then
   in_place=false
 fi
 
-SRC="$1"
-DST="$2"
-ENTITLEMENT="$3"
-ICON="$4"
+DST="$1"
+SRC="$2"
+ICON="$3"
+ENTITLEMENT="$4"
 
 if $in_place; then
   trap 'rm "$DST.tmp"' exit
@@ -21,7 +21,7 @@ else
   cd "$MESON_INSTALL_DESTDIR_PREFIX"
 fi
 
-if test "$ENTITLEMENT" != '/dev/null'; then
+if test -n "$ENTITLEMENT"; then
   codesign --entitlements "$ENTITLEMENT" --force -s - "$SRC"
 fi
 
-- 
2.31.1



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

* Re: [PULL v2 00/48] Misc patches for QEMU 6.1 soft freeze
  2021-07-10 18:58 [PULL v2 00/48] Misc patches for QEMU 6.1 soft freeze Paolo Bonzini
  2021-07-10 18:58 ` [PULL v2 05/48] modules: add modinfo macros Paolo Bonzini
  2021-07-10 18:58 ` [PULL v2 48/48] meson: Use input/output for entitlements target Paolo Bonzini
@ 2021-07-12 10:01 ` Peter Maydell
  2021-07-12 12:27   ` Daniel P. Berrangé
  2 siblings, 1 reply; 5+ messages in thread
From: Peter Maydell @ 2021-07-12 10:01 UTC (permalink / raw)
  To: Paolo Bonzini; +Cc: QEMU Developers

On Sat, 10 Jul 2021 at 20:01, Paolo Bonzini <pbonzini@redhat.com> wrote:
>
> The following changes since commit 05de778b5b8ab0b402996769117b88c7ea5c7c61:
>
>   Merge remote-tracking branch 'remotes/mst/tags/for_upstream' into staging (2021-07-09 14:30:01 +0100)
>
> are available in the Git repository at:
>
>   https://gitlab.com/bonzini/qemu.git tags/for-upstream
>
> for you to fetch changes up to 411ad8dd80077e98ed465775b044caf1a9482f6c:
>
>   meson: Use input/output for entitlements target (2021-07-09 18:21:34 +0200)
>
> v1->v2: fix docs build, add final patch for entitlements target
>
> ----------------------------------------------------------------
> * More SVM fixes (Lara)
> * Module annotation database (Gerd)
> * Memory leak fixes (myself)
> * Build fixes (myself)
> * --with-devices-* support (Alex)
>
> ----------------------------------------------------------------


Applied, thanks.

Please update the changelog at https://wiki.qemu.org/ChangeLog/6.1
for any user-visible changes.

-- PMM


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

* Re: [PULL v2 00/48] Misc patches for QEMU 6.1 soft freeze
  2021-07-12 10:01 ` [PULL v2 00/48] Misc patches for QEMU 6.1 soft freeze Peter Maydell
@ 2021-07-12 12:27   ` Daniel P. Berrangé
  0 siblings, 0 replies; 5+ messages in thread
From: Daniel P. Berrangé @ 2021-07-12 12:27 UTC (permalink / raw)
  To: Peter Maydell; +Cc: Paolo Bonzini, QEMU Developers

On Mon, Jul 12, 2021 at 11:01:55AM +0100, Peter Maydell wrote:
> On Sat, 10 Jul 2021 at 20:01, Paolo Bonzini <pbonzini@redhat.com> wrote:
> >
> > The following changes since commit 05de778b5b8ab0b402996769117b88c7ea5c7c61:
> >
> >   Merge remote-tracking branch 'remotes/mst/tags/for_upstream' into staging (2021-07-09 14:30:01 +0100)
> >
> > are available in the Git repository at:
> >
> >   https://gitlab.com/bonzini/qemu.git tags/for-upstream
> >
> > for you to fetch changes up to 411ad8dd80077e98ed465775b044caf1a9482f6c:
> >
> >   meson: Use input/output for entitlements target (2021-07-09 18:21:34 +0200)
> >
> > v1->v2: fix docs build, add final patch for entitlements target
> >
> > ----------------------------------------------------------------
> > * More SVM fixes (Lara)
> > * Module annotation database (Gerd)
> > * Memory leak fixes (myself)
> > * Build fixes (myself)
> > * --with-devices-* support (Alex)
> >
> > ----------------------------------------------------------------
> 
> 
> Applied, thanks.
> 
> Please update the changelog at https://wiki.qemu.org/ChangeLog/6.1
> for any user-visible changes.

This series has broken the build for me:

/usr/bin/ld: libqemuutil.a(util_async.c.o): in function `aio_setup_linux_io_uring':
/home/berrange/src/virt/qemu/build/../util/async.c:421: undefined reference to `luring_init'
/usr/bin/ld: /home/berrange/src/virt/qemu/build/../util/async.c:426: undefined reference to `luring_attach_aio_context'
/usr/bin/ld: libqemuutil.a(util_async.c.o): in function `aio_ctx_finalize':
/home/berrange/src/virt/qemu/build/../util/async.c:334: undefined reference to `luring_detach_aio_context'
/usr/bin/ld: /home/berrange/src/virt/qemu/build/../util/async.c:335: undefined reference to `luring_cleanup'
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.

git bisect blames:

commit 63a7f853063133fd1aa34ab0744b009fa3d7e183 (refs/bisect/bad)
Author: Paolo Bonzini <pbonzini@redhat.com>
Date:   Thu Jul 8 13:50:06 2021 +0200

    meson: fix missing preprocessor symbols
    
    While most libraries do not need a CONFIG_* symbol because the
    "when:" clauses are enough, some do.  Add them back or stop
    using them if possible.
    
    In the case of libpmem, the statement to add the CONFIG_* symbol
    was still in configure, but could not be triggered because it
    checked for "no" instead of "disabled" (and it would be wrong anyway
    since the test for the library has not been done yet).
    
    Reported-by: Li Zhijian <lizhijian@cn.fujitsu.com>
    Fixes: 587d59d6cc ("configure, meson: convert virgl detection to meson", 2021-07-06)
    Fixes: 83ef16821a ("configure, meson: convert libdaxctl detection to meson", 2021-07-06)
    Fixes: e36e8c70f6 ("configure, meson: convert libpmem detection to meson", 2021-07-06)
    Fixes: 53c22b68e3 ("configure, meson: convert liburing detection to meson", 2021-07-06)
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>




IIUC, we didn't detect this in gitlab CI because liburing-devel is not
present in any of the dockerfiles currently in git master. This omission
is fixed in my series here which will be in Alex's next pull:

  https://lists.gnu.org/archive/html/qemu-devel/2021-06/msg06374.html

Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|



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

end of thread, other threads:[~2021-07-12 12:39 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-10 18:58 [PULL v2 00/48] Misc patches for QEMU 6.1 soft freeze Paolo Bonzini
2021-07-10 18:58 ` [PULL v2 05/48] modules: add modinfo macros Paolo Bonzini
2021-07-10 18:58 ` [PULL v2 48/48] meson: Use input/output for entitlements target Paolo Bonzini
2021-07-12 10:01 ` [PULL v2 00/48] Misc patches for QEMU 6.1 soft freeze Peter Maydell
2021-07-12 12:27   ` Daniel P. Berrangé

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.