QEMU-Devel Archive mirror
 help / color / mirror / Atom feed
From: Paolo Bonzini <pbonzini@redhat.com>
To: qemu-devel@nongnu.org
Cc: philmd@linaro.org
Subject: [PATCH v2 0/6] kconfig: express dependency of individual boards on libfdt
Date: Wed,  8 May 2024 09:50:59 +0200	[thread overview]
Message-ID: <20240508075105.15510-1-pbonzini@redhat.com> (raw)

This is a follow up to the "default y" patch series at
https://lore.kernel.org/qemu-devel/20240423131612.28362-1-pbonzini@redhat.com/
and shows an example of what that series enables.

With this change, individual boards will be enabled/disabled depending
on whether libfdt is present or not.  In particular, x86 will simply
disable microvm and build the "traditional" chipsets if libfdt is not
found.

All boards or targets that need libfdt now have an explicit "depends on
FDT" (sometimes the boards delegate that to the target).  TARGET_NEED_FDT
is only used for targets that absolutely cannot build without libfdt,
or for which all boards require it.

For simplicity, patch 1 simplifies the libfdt handling in meson.build,
removing the ability to force use of the subproject.  There is no
use case that I can imagine, if you want to use the subproject just
delete libfdt from your OS installation.

Paolo

v1->v2:
- use libfdt CPPFLAGS when building target-specific files
- limited scope of libfdt detection changes: keep it enabled when building
  --without-default-features (see commit message for 0577e84d374,
  "configure: Disable capstone and slirp in the --without-default-features
  mode", 2022-02-21)
- patch 6 does not 
- split patch 3 in two parts
- fix compilation errors due to missing qmp_dumpdtb/hmp_dumpdtb
- make MIPS_BOSTON depend on FDT

Paolo Bonzini (6):
  meson: pick libfdt from common_ss when building target-specific files
  meson: move libfdt together with other dependencies
  kconfig: allow compiling out QEMU device tree code per target
  kconfig: express dependency of individual boards on libfdt
  hw/xtensa: require libfdt
  configs: disable emulators that require it if libfdt is not found

 configs/targets/aarch64-softmmu.mak      |   1 +
 configs/targets/arm-softmmu.mak          |   1 +
 configs/targets/i386-softmmu.mak         |   1 -
 configs/targets/loongarch64-softmmu.mak  |   1 +
 configs/targets/microblaze-softmmu.mak   |   1 +
 configs/targets/microblazeel-softmmu.mak |   1 +
 configs/targets/mips64el-softmmu.mak     |   1 -
 configs/targets/or1k-softmmu.mak         |   1 +
 configs/targets/ppc-softmmu.mak          |   1 -
 configs/targets/ppc64-softmmu.mak        |   1 +
 configs/targets/riscv32-softmmu.mak      |   1 +
 configs/targets/riscv64-softmmu.mak      |   1 +
 configs/targets/rx-softmmu.mak           |   1 +
 configs/targets/x86_64-softmmu.mak       |   1 -
 meson.build                              | 100 +++++++++++++----------
 include/monitor/hmp.h                    |   1 +
 include/sysemu/device_tree.h             |   1 -
 hw/xtensa/xtfpga.c                       |   9 --
 monitor/hmp-cmds.c                       |  17 ++++
 system/device_tree-stub.c                |  10 +++
 system/device_tree.c                     |  14 ----
 .gitlab-ci.d/buildtest.yml               |   8 +-
 Kconfig.host                             |   3 +
 hw/arm/Kconfig                           |   5 ++
 hw/arm/meson.build                       |   2 +-
 hw/core/Kconfig                          |   9 +-
 hw/core/meson.build                      |   2 +-
 hw/i386/Kconfig                          |   3 +-
 hw/loongarch/Kconfig                     |   3 +-
 hw/loongarch/meson.build                 |   2 +-
 hw/mips/Kconfig                          |   3 +-
 hw/mips/meson.build                      |   2 +-
 hw/openrisc/Kconfig                      |   2 +
 hw/openrisc/meson.build                  |   4 +-
 hw/ppc/Kconfig                           |  15 ++--
 hw/ppc/meson.build                       |   4 +-
 hw/riscv/Kconfig                         |   4 +
 hw/riscv/meson.build                     |   2 +-
 hw/rx/Kconfig                            |   3 +-
 hw/xtensa/Kconfig                        |   3 +-
 system/meson.build                       |   4 +-
 target/arm/Kconfig                       |   2 +
 target/microblaze/Kconfig                |   1 +
 target/openrisc/Kconfig                  |   1 +
 target/riscv/Kconfig                     |   2 +
 45 files changed, 154 insertions(+), 101 deletions(-)
 create mode 100644 system/device_tree-stub.c

-- 
2.45.0



             reply	other threads:[~2024-05-08  7:51 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-05-08  7:50 Paolo Bonzini [this message]
2024-05-08  7:51 ` [PATCH 1/6] meson: pick libfdt from common_ss when building target-specific files Paolo Bonzini
2024-05-08  8:24   ` Philippe Mathieu-Daudé
2024-05-08  7:51 ` [PATCH 2/6] meson: move libfdt together with other dependencies Paolo Bonzini
2024-05-08  8:21   ` Philippe Mathieu-Daudé
2024-05-08  7:51 ` [PATCH 3/6] kconfig: allow compiling out QEMU device tree code per target Paolo Bonzini
2024-05-08  7:51 ` [PATCH 4/6] kconfig: express dependency of individual boards on libfdt Paolo Bonzini
2024-05-08  7:51 ` [PATCH 5/6] hw/xtensa: require libfdt Paolo Bonzini
2024-05-08  7:51 ` [PATCH 6/6] configs: disable emulators that require it if libfdt is not found Paolo Bonzini

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240508075105.15510-1-pbonzini@redhat.com \
    --to=pbonzini@redhat.com \
    --cc=philmd@linaro.org \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).