On 5/8/2026 8:24 AM, Peter Maydell wrote: > We have a set of binaries that we call "tools": they're built based on > the --enable-tools/--disable-tools configure setting, they're > documented in docs/tools, and they're standalone executables of one > form or another. > > Currently the sources for these are a bit scattered: many still in the > top level source directory, some in contrib, one or two actually in > the tools directory. > > As an initial attempt at cleanup, this patchset moves the sources for > qemu-bridge-helper, qemu-edid, qemu-img, qemu-io, qemu-nbd, > qemu-keymap, qemu-vmsr-helper and elf2dmp into the tools/ directory. > > The patchseries also moves the ebfp skeleton sources from tools/ebpf/ > to ebpf/bpf-src/, because this isn't a tool by the above definition. > > As per my thread from a while back, I would ultimately like us to > clean up contrib/: > https://lore.kernel.org/qemu-devel/CAFEAcA_5HvGriDsWnb1ALuA_dgG320eKv7yuM2kThv=rfos...@mail.gmail.com/ > But parts of that clearly need more discussion. So this is just doing > some parts that I hope are not controversial. > > Annoyingly, meson doesn't seem to provide any way for a subdirectory > meson.build to say "the foo.c in this subdir builds into a foo > executable that lives at the top level of the builddir". And we have a > lot of test harness stuff plus user muscle memory that assumes that > qemu-img and qemu-io live there. So the build runes for these tools > have to stay in the top level meson.build (and tools/meson.build > remains an empty file). The exception is that contrib/elf2dmp/elf2dmp > is now tools/elf2dmp/elf2dmp, but I think the set of people who were > running that from the build directory will be small. > > thanks > -- PMM > > > Peter Maydell (9): > ebpf: move ebpf skeleton source to ebpf/ directory > tools: Move qemu-bridge-helper sources to tools/ directory > tools: Move qemu-edid sources to tools/ directory > tools: Move qemu-img sources to tools/ directory > tools: Move qemu-io sources to tools/ directory > tools: Move qemu-nbd sources to tools/ directory > tools: Move qemu-keymap sources to tools/ directory > tools: Move qemu-vmsr-helper up a directory level > tools: Move elf2dmp from contrib/ to tools/ > > MAINTAINERS | 15 +++++++------- > docs/tools/qemu-img.rst | 2 +- > {tools/ebpf => ebpf/bpf-src}/Makefile.ebpf | 2 +- > {tools/ebpf => ebpf/bpf-src}/rss.bpf.c | 0 > meson.build | 20 +++++++++---------- > {contrib => tools}/elf2dmp/addrspace.c | 0 > {contrib => tools}/elf2dmp/addrspace.h | 0 > {contrib => tools}/elf2dmp/download.c | 0 > {contrib => tools}/elf2dmp/download.h | 0 > {contrib => tools}/elf2dmp/err.h | 0 > {contrib => tools}/elf2dmp/kdbg.h | 0 > {contrib => tools}/elf2dmp/main.c | 0 > {contrib => tools}/elf2dmp/meson.build | 0 > {contrib => tools}/elf2dmp/pdb.c | 0 > {contrib => tools}/elf2dmp/pdb.h | 0 > {contrib => tools}/elf2dmp/pe.h | 0 > {contrib => tools}/elf2dmp/qemu_elf.c | 0 > {contrib => tools}/elf2dmp/qemu_elf.h | 0 > .../qemu-bridge-helper.c | 0 > qemu-edid.c => tools/qemu-edid.c | 0 > qemu-img-cmds.hx => tools/qemu-img-cmds.hx | 0 > qemu-img.c => tools/qemu-img.c | 0 > qemu-io-cmds.c => tools/qemu-io-cmds.c | 0 > qemu-io.c => tools/qemu-io.c | 0 > qemu-keymap.c => tools/qemu-keymap.c | 0 > qemu-nbd.c => tools/qemu-nbd.c | 0 > tools/{i386 => }/qemu-vmsr-helper.c | 0 > tools/{i386 => }/rapl-msr-index.h | 0 > 28 files changed, 20 insertions(+), 19 deletions(-) > rename {tools/ebpf => ebpf/bpf-src}/Makefile.ebpf (96%) > rename {tools/ebpf => ebpf/bpf-src}/rss.bpf.c (100%) > rename {contrib => tools}/elf2dmp/addrspace.c (100%) > rename {contrib => tools}/elf2dmp/addrspace.h (100%) > rename {contrib => tools}/elf2dmp/download.c (100%) > rename {contrib => tools}/elf2dmp/download.h (100%) > rename {contrib => tools}/elf2dmp/err.h (100%) > rename {contrib => tools}/elf2dmp/kdbg.h (100%) > rename {contrib => tools}/elf2dmp/main.c (100%) > rename {contrib => tools}/elf2dmp/meson.build (100%) > rename {contrib => tools}/elf2dmp/pdb.c (100%) > rename {contrib => tools}/elf2dmp/pdb.h (100%) > rename {contrib => tools}/elf2dmp/pe.h (100%) > rename {contrib => tools}/elf2dmp/qemu_elf.c (100%) > rename {contrib => tools}/elf2dmp/qemu_elf.h (100%) > rename qemu-bridge-helper.c => tools/qemu-bridge-helper.c (100%) > rename qemu-edid.c => tools/qemu-edid.c (100%) > rename qemu-img-cmds.hx => tools/qemu-img-cmds.hx (100%) > rename qemu-img.c => tools/qemu-img.c (100%) > rename qemu-io-cmds.c => tools/qemu-io-cmds.c (100%) > rename qemu-io.c => tools/qemu-io.c (100%) > rename qemu-keymap.c => tools/qemu-keymap.c (100%) > rename qemu-nbd.c => tools/qemu-nbd.c (100%) > rename tools/{i386 => }/qemu-vmsr-helper.c (100%) > rename tools/{i386 => }/rapl-msr-index.h (100%) >
As well, feel free to send a patches for contrib/plugins, moving them to plugins/plugins as you offered first. We didn't find a better alternative, and it does not really matters to be honest. You have my reviewed-by. Regards, Pierrick
