[{"id":3688569,"web_url":"http://patchwork.ozlabs.org/comment/3688569/","msgid":"<735327c6-f23f-42cf-9b8e-a651d8ee7770@oss.qualcomm.com>","list_archive_url":null,"date":"2026-05-08T16:00:22","subject":"Re: [PATCH 0/9] tools: Move more tools sources into tools/","submitter":{"id":93152,"url":"http://patchwork.ozlabs.org/api/people/93152/","name":"Pierrick Bouvier","email":"pierrick.bouvier@oss.qualcomm.com"},"content":"On 5/8/2026 8:24 AM, Peter Maydell wrote:\n> We have a set of binaries that we call \"tools\": they're built based on\n> the --enable-tools/--disable-tools configure setting, they're\n> documented in docs/tools, and they're standalone executables of one\n> form or another.\n> \n> Currently the sources for these are a bit scattered: many still in the\n> top level source directory, some in contrib, one or two actually in\n> the tools directory.\n> \n> As an initial attempt at cleanup, this patchset moves the sources for\n> qemu-bridge-helper, qemu-edid, qemu-img, qemu-io, qemu-nbd,\n> qemu-keymap, qemu-vmsr-helper and elf2dmp into the tools/ directory.\n> \n> The patchseries also moves the ebfp skeleton sources from tools/ebpf/\n> to ebpf/bpf-src/, because this isn't a tool by the above definition.\n> \n> As per my thread from a while back, I would ultimately like us to\n> clean up contrib/:\n> https://lore.kernel.org/qemu-devel/CAFEAcA_5HvGriDsWnb1ALuA_dgG320eKv7yuM2kThv=rfOSZQA@mail.gmail.com/\n> But parts of that clearly need more discussion. So this is just doing\n> some parts that I hope are not controversial.\n> \n> Annoyingly, meson doesn't seem to provide any way for a subdirectory\n> meson.build to say \"the foo.c in this subdir builds into a foo\n> executable that lives at the top level of the builddir\". And we have a\n> lot of test harness stuff plus user muscle memory that assumes that\n> qemu-img and qemu-io live there. So the build runes for these tools\n> have to stay in the top level meson.build (and tools/meson.build\n> remains an empty file). The exception is that contrib/elf2dmp/elf2dmp\n> is now tools/elf2dmp/elf2dmp, but I think the set of people who were\n> running that from the build directory will be small.\n>\n\nIt's a deliberate design more than an annoyance. It pushes users to make\nthings explicit at top level, which is good to understand what is built\nand how, and hide details in subdirs in variables. QEMU's top level\nmeson.build is over complex, so it may appear more as a burden than a\nbenefit though.\n\n> thanks\n> -- PMM\n> \n> \n> Peter Maydell (9):\n>   ebpf: move ebpf skeleton source to ebpf/ directory\n>   tools: Move qemu-bridge-helper sources to tools/ directory\n>   tools: Move qemu-edid sources to tools/ directory\n>   tools: Move qemu-img sources to tools/ directory\n>   tools: Move qemu-io sources to tools/ directory\n>   tools: Move qemu-nbd sources to tools/ directory\n>   tools: Move qemu-keymap sources to tools/ directory\n>   tools: Move qemu-vmsr-helper up a directory level\n>   tools: Move elf2dmp from contrib/ to tools/\n> \n>  MAINTAINERS                                   | 15 +++++++-------\n>  docs/tools/qemu-img.rst                       |  2 +-\n>  {tools/ebpf => ebpf/bpf-src}/Makefile.ebpf    |  2 +-\n>  {tools/ebpf => ebpf/bpf-src}/rss.bpf.c        |  0\n>  meson.build                                   | 20 +++++++++----------\n>  {contrib => tools}/elf2dmp/addrspace.c        |  0\n>  {contrib => tools}/elf2dmp/addrspace.h        |  0\n>  {contrib => tools}/elf2dmp/download.c         |  0\n>  {contrib => tools}/elf2dmp/download.h         |  0\n>  {contrib => tools}/elf2dmp/err.h              |  0\n>  {contrib => tools}/elf2dmp/kdbg.h             |  0\n>  {contrib => tools}/elf2dmp/main.c             |  0\n>  {contrib => tools}/elf2dmp/meson.build        |  0\n>  {contrib => tools}/elf2dmp/pdb.c              |  0\n>  {contrib => tools}/elf2dmp/pdb.h              |  0\n>  {contrib => tools}/elf2dmp/pe.h               |  0\n>  {contrib => tools}/elf2dmp/qemu_elf.c         |  0\n>  {contrib => tools}/elf2dmp/qemu_elf.h         |  0\n>  .../qemu-bridge-helper.c                      |  0\n>  qemu-edid.c => tools/qemu-edid.c              |  0\n>  qemu-img-cmds.hx => tools/qemu-img-cmds.hx    |  0\n>  qemu-img.c => tools/qemu-img.c                |  0\n>  qemu-io-cmds.c => tools/qemu-io-cmds.c        |  0\n>  qemu-io.c => tools/qemu-io.c                  |  0\n>  qemu-keymap.c => tools/qemu-keymap.c          |  0\n>  qemu-nbd.c => tools/qemu-nbd.c                |  0\n>  tools/{i386 => }/qemu-vmsr-helper.c           |  0\n>  tools/{i386 => }/rapl-msr-index.h             |  0\n>  28 files changed, 20 insertions(+), 19 deletions(-)\n>  rename {tools/ebpf => ebpf/bpf-src}/Makefile.ebpf (96%)\n>  rename {tools/ebpf => ebpf/bpf-src}/rss.bpf.c (100%)\n>  rename {contrib => tools}/elf2dmp/addrspace.c (100%)\n>  rename {contrib => tools}/elf2dmp/addrspace.h (100%)\n>  rename {contrib => tools}/elf2dmp/download.c (100%)\n>  rename {contrib => tools}/elf2dmp/download.h (100%)\n>  rename {contrib => tools}/elf2dmp/err.h (100%)\n>  rename {contrib => tools}/elf2dmp/kdbg.h (100%)\n>  rename {contrib => tools}/elf2dmp/main.c (100%)\n>  rename {contrib => tools}/elf2dmp/meson.build (100%)\n>  rename {contrib => tools}/elf2dmp/pdb.c (100%)\n>  rename {contrib => tools}/elf2dmp/pdb.h (100%)\n>  rename {contrib => tools}/elf2dmp/pe.h (100%)\n>  rename {contrib => tools}/elf2dmp/qemu_elf.c (100%)\n>  rename {contrib => tools}/elf2dmp/qemu_elf.h (100%)\n>  rename qemu-bridge-helper.c => tools/qemu-bridge-helper.c (100%)\n>  rename qemu-edid.c => tools/qemu-edid.c (100%)\n>  rename qemu-img-cmds.hx => tools/qemu-img-cmds.hx (100%)\n>  rename qemu-img.c => tools/qemu-img.c (100%)\n>  rename qemu-io-cmds.c => tools/qemu-io-cmds.c (100%)\n>  rename qemu-io.c => tools/qemu-io.c (100%)\n>  rename qemu-keymap.c => tools/qemu-keymap.c (100%)\n>  rename qemu-nbd.c => tools/qemu-nbd.c (100%)\n>  rename tools/{i386 => }/qemu-vmsr-helper.c (100%)\n>  rename tools/{i386 => }/rapl-msr-index.h (100%)\n> \n\nFor series:\nReviewed-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>","headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256\n header.s=qcppdkim1 header.b=goyDD2hj;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com\n header.a=rsa-sha256 header.s=google header.b=kEfrNagU;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists1p.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)"],"Received":["from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4gBv4K5xj5z1yKd\n\tfor <incoming@patchwork.ozlabs.org>; Sat, 09 May 2026 02:01:21 +1000 (AEST)","from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists1p.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1wLNdB-0003Sn-49; Fri, 08 May 2026 12:00:49 -0400","from eggs.gnu.org ([2001:470:142:3::10])\n by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <pierrick.bouvier@oss.qualcomm.com>)\n id 1wLNcw-0003Pp-9j\n for qemu-devel@nongnu.org; Fri, 08 May 2026 12:00:38 -0400","from mx0a-0031df01.pphosted.com ([205.220.168.131])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <pierrick.bouvier@oss.qualcomm.com>)\n id 1wLNct-0002FF-Ub\n for qemu-devel@nongnu.org; Fri, 08 May 2026 12:00:34 -0400","from pps.filterd (m0279866.ppops.net [127.0.0.1])\n by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id\n 648D9uOt3891021\n for <qemu-devel@nongnu.org>; Fri, 8 May 2026 16:00:27 GMT","from mail-dl1-f70.google.com (mail-dl1-f70.google.com\n [74.125.82.70])\n by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e1gfqrtgp-1\n (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)\n for <qemu-devel@nongnu.org>; Fri, 08 May 2026 16:00:26 +0000 (GMT)","by mail-dl1-f70.google.com with SMTP id\n a92af1059eb24-12dfe06b670so4754347c88.0\n for <qemu-devel@nongnu.org>; Fri, 08 May 2026 09:00:26 -0700 (PDT)","from [192.168.1.170] (216-71-219-44.dyn.novuscom.net.\n [216.71.219.44]) by smtp.gmail.com with ESMTPSA id\n 5a478bee46e88-2f88885b87dsm3156489eec.21.2026.05.08.09.00.23\n (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);\n Fri, 08 May 2026 09:00:24 -0700 (PDT)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=\n cc:content-transfer-encoding:content-type:date:from:in-reply-to\n :message-id:mime-version:references:subject:to; s=qcppdkim1; bh=\n a48uqPf6+u166lO0LvMDMpw0Ex/LwC2zHp3SF/XfqzY=; b=goyDD2hjr/40DC+n\n B5xmprLpEU2jwXQzvgWnuxrNHENoaf/57U/hzPM5Nd/NzNaMURZ9wAYGjpUNcv08\n oR484THo6sKmiAZUOa5BR0X5AgwupW5/N+KmCP+vFHVfWSNFUDVtCJ/4bi3w/uwq\n PB2D7w8eP9pKG4yb6P7C4470oxftPr/bb/Sese8z0YcICPAsBk82mLYxEk0Jz1P+\n RR2SWCoUKTI+A5eWWIc4oDeu23rvZUEXhIz6KoDD1IyRcizSnRZrFsxOnbp/IBDe\n 07jNbAW7+NChN07qo/bFEAe6dr7tI9A0bxJMPgWB8M6E4B4VlDtPuFxjsoL+ew2u\n guxC+w==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=oss.qualcomm.com; s=google; t=1778256026; x=1778860826; darn=nongnu.org;\n h=content-transfer-encoding:in-reply-to:content-language:from\n :references:cc:to:subject:user-agent:mime-version:date:message-id\n :from:to:cc:subject:date:message-id:reply-to;\n bh=a48uqPf6+u166lO0LvMDMpw0Ex/LwC2zHp3SF/XfqzY=;\n b=kEfrNagUrevPKXyfmSmRYOumFHSXXRf6yOolTzQ8VGQVOWeEvMTpG3xda3yMbHgczs\n 7rc2gRcKBxyZaDBMgAaBbLFVVzzLZ2lXYahX1Gx5qDk2mpF2vg8JZovMvWAasAKGPDEP\n rdqRhFPtzvvLZuhDj5L5W0pCub9dRNLv3JCc/aRbMI3vBzoMowbfAB1e2qNZCBSFHJTQ\n FDg3g30lH9/6FhKE8VHe7+2K2tO2UEdEcbrCTtCHas+uxjHK10dcK2SpYZJHz5Gbp9Vj\n I4tGFH32oFRYdblBr8uaufUQQbYKdFKxLKoIs5U2o7eDRJtwbRcIjgxIwerG423poJo4\n i7EQ=="],"X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1778256026; x=1778860826;\n h=content-transfer-encoding:in-reply-to:content-language:from\n :references:cc:to:subject:user-agent:mime-version:date:message-id\n :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id\n :reply-to;\n bh=a48uqPf6+u166lO0LvMDMpw0Ex/LwC2zHp3SF/XfqzY=;\n b=DTDZ8P4RXvxGipJh5DumsolSj7U7PhAV1TER1Mc3h/Xwh0aeLraUZSUd6j8VBDbgyd\n rS0Un7BetHW9nJB0BzIM/EVohgYI4RlCdtAUj8JM+ec0ZqS1XulA93usk/GWzfoCmTRB\n fwwtQZPknncdLQyvxj8+b3s4imOehfC5TVAX0zZl4wOHJw4cXJ3aKS22muKRh4Hx7ImG\n g0b5npOm5NroT25M4b522iBmJaK5+6ixowTYIGBBDI64JoTTnV3Tt7v/6LT78WLAC2in\n YUzCPZrPcLXJJcPpDtIJUrYd4BDzIyaybaakxotlRkcIncxxZsk4a0zpUWw4jsFEjhko\n sMSQ==","X-Forwarded-Encrypted":"i=1;\n AFNElJ/4IQaJysicatuSQvLzNPJpZmpm3StFmktyhQnbdl5z5rlBKYyrECIaO+7gpskkByLfJGXNu5/LZgtX@nongnu.org","X-Gm-Message-State":"AOJu0YwNu3RpmSbV3sDuV0rl9h4OYS+fSUSzOORdCueuobwzFhVSTAak\n RIw1T/1NxWMXC7UWuJ7PRBU2wEW2dgMmgJgD0ExlBP2nDesxhwbpNQRBeQzQcdMcyROAKIy7lwy\n 9kzbidWVEsah2NaAEfGRPav0dMf4EXbFLzlve/uJ3JjaGMIv7+wqKSmD7gQ==","X-Gm-Gg":"Acq92OF/j4RmrpHI4sY1oy8OL6ee7kZnEYWiJEkVkiws0/rvxX9ATABR8+C7RYaorEV\n /uysj3WMPE2Eb18Ky8de/sb2wopMQnbMtV1PDYWnSqAEu2LSqCIwiShvXFUdoqp0xdbbXWNWNuv\n nk8vVTzya8vgENdYZS6Ch0gfNzSAITkKBwQkoFiI/7Av2NeWvOsfVoJfJWUkOuiTQunO+18rLIw\n ZSqji96dDbFEkKLgDXNnC+qsgKkiye93lD7prTZDCQShAR0Zl/zTr884FVj/Cxk0BUaCSePdKCM\n B0isrC1+4EC4ObXAaox4ZftJ0VoeLxkaXyfSb29RrESH6ezxe80C6cMmIHYM9YKn30rfS2PAPbj\n iiGEfuSq84U/NDhlVwlq++JZx683iptJUPPf35vCPbT2F/y5GGnnS4Iz+mtFPgkxv1oR9JgH3o0\n KN/tjBYUzePMkMiQ==","X-Received":["by 2002:a05:7300:3b08:b0:2c7:3a7:c7a7 with SMTP id\n 5a478bee46e88-2f54d15fe7amr6303938eec.25.1778256026052;\n Fri, 08 May 2026 09:00:26 -0700 (PDT)","by 2002:a05:7300:3b08:b0:2c7:3a7:c7a7 with SMTP id\n 5a478bee46e88-2f54d15fe7amr6303907eec.25.1778256025452;\n Fri, 08 May 2026 09:00:25 -0700 (PDT)"],"Message-ID":"<735327c6-f23f-42cf-9b8e-a651d8ee7770@oss.qualcomm.com>","Date":"Fri, 8 May 2026 09:00:22 -0700","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH 0/9] tools: Move more tools sources into tools/","To":"Peter Maydell <peter.maydell@linaro.org>, qemu-devel@nongnu.org","Cc":"Kevin Wolf <kwolf@redhat.com>, Hanna Reitz <hreitz@redhat.com>,\n Paolo Bonzini <pbonzini@redhat.com>,\n =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= <berrange@redhat.com>, =?utf-8?q?Phil?=\n\t=?utf-8?q?ippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>,\n Viktor Prutyanov <viktor.prutyanov@phystech.edu>,\n Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp>,\n Gerd Hoffmann <kraxel@redhat.com>, Eric Blake <eblake@redhat.com>,\n Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>,\n Jason Wang <jasowang@redhat.com>","References":"<20260508152428.2648560-1-peter.maydell@linaro.org>","From":"Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>","Content-Language":"en-US","In-Reply-To":"<20260508152428.2648560-1-peter.maydell@linaro.org>","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"7bit","X-Proofpoint-Spam-Details-Enc":"AW1haW4tMjYwNTA4MDE1OSBTYWx0ZWRfX09Pu5wWbp3hs\n ZGfBkfJNuvEDi6CfuDlb5YWsAjs9vNOkiIykp2k9YvjaFEWLE3isZu+/gmZsQMjSuHdR0VuJsj5\n pvgS1kpqwysQ4X5ypoX9R8NtduKzsrLzDeb3SjJ1sheSo4y6aMhI+DvY6Sio4GxhRU34u1aEQqF\n YCZDhllj5hYtcZ619bVR16AeptfHmMtFaapkSpT8LDlnnC95F7h3PjraTKCuxVeKjLiPpPrz9zt\n rJukrW2oLBqw7KGDTBN5kolToulZy237AZS9udaDvFyhXlg1uuafUjveCOb/T89iHxvRqBEKzuu\n xyrNAc6KuF8PfhpNG0fKRcvRbtj50LsF9nq1AmpTOluunyt4mW+kjiCJdDwPm0d31j6xixXuU9p\n r0zWHUHjigjlTwM1PkBbOYKlCIxtzNiI3Zei9gXZrcaHYDLo6uWGpDccvBYmWJN6WF97qSgrZA1\n fwz7B37GmN+3TCbv8bA==","X-Authority-Analysis":"v=2.4 cv=W80IkxWk c=1 sm=1 tr=0 ts=69fe089b cx=c_pps\n a=SvEPeNj+VMjHSW//kvnxuw==:117 a=iLqgmErQAxjCjdq5jj1Aqg==:17\n a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10\n a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22\n a=VwQbUJbxAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=w-yBC8u__v6bVZDae54A:9\n a=QEXdDO2ut3YA:10 a=Kq8ClHjjuc5pcCNDwlU0:22","X-Proofpoint-ORIG-GUID":"hlT5IvJ4lHsT6nCCOQDwB_Th11YOmVMW","X-Proofpoint-GUID":"hlT5IvJ4lHsT6nCCOQDwB_Th11YOmVMW","X-Proofpoint-Virus-Version":"vendor=baseguard\n engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49\n definitions=2026-05-07_02,2026-05-08_02,2025-10-01_01","X-Proofpoint-Spam-Details":"rule=outbound_notspam policy=outbound score=0\n priorityscore=1501 suspectscore=0 phishscore=0 bulkscore=0 clxscore=1015\n malwarescore=0 spamscore=0 adultscore=0 impostorscore=0 lowpriorityscore=0\n classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0\n reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2605080159","Received-SPF":"pass client-ip=205.220.168.131;\n envelope-from=pierrick.bouvier@oss.qualcomm.com;\n helo=mx0a-0031df01.pphosted.com","X-Spam_score_int":"-27","X-Spam_score":"-2.8","X-Spam_bar":"--","X-Spam_report":"(-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,\n DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,\n RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001,\n SPF_PASS=-0.001 autolearn=ham autolearn_force=no","X-Spam_action":"no action","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"qemu development <qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<https://lists.nongnu.org/archive/html/qemu-devel>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org"}},{"id":3688573,"web_url":"http://patchwork.ozlabs.org/comment/3688573/","msgid":"<6aa27613-97e6-4568-8b75-cb804cc0e445@oss.qualcomm.com>","list_archive_url":null,"date":"2026-05-08T16:02:35","subject":"Re: [PATCH 0/9] tools: Move more tools sources into tools/","submitter":{"id":93152,"url":"http://patchwork.ozlabs.org/api/people/93152/","name":"Pierrick Bouvier","email":"pierrick.bouvier@oss.qualcomm.com"},"content":"On 5/8/2026 8:24 AM, Peter Maydell wrote:\n> We have a set of binaries that we call \"tools\": they're built based on\n> the --enable-tools/--disable-tools configure setting, they're\n> documented in docs/tools, and they're standalone executables of one\n> form or another.\n> \n> Currently the sources for these are a bit scattered: many still in the\n> top level source directory, some in contrib, one or two actually in\n> the tools directory.\n> \n> As an initial attempt at cleanup, this patchset moves the sources for\n> qemu-bridge-helper, qemu-edid, qemu-img, qemu-io, qemu-nbd,\n> qemu-keymap, qemu-vmsr-helper and elf2dmp into the tools/ directory.\n> \n> The patchseries also moves the ebfp skeleton sources from tools/ebpf/\n> to ebpf/bpf-src/, because this isn't a tool by the above definition.\n> \n> As per my thread from a while back, I would ultimately like us to\n> clean up contrib/:\n> https://lore.kernel.org/qemu-devel/CAFEAcA_5HvGriDsWnb1ALuA_dgG320eKv7yuM2kThv=rfOSZQA@mail.gmail.com/\n> But parts of that clearly need more discussion. So this is just doing\n> some parts that I hope are not controversial.\n> \n> Annoyingly, meson doesn't seem to provide any way for a subdirectory\n> meson.build to say \"the foo.c in this subdir builds into a foo\n> executable that lives at the top level of the builddir\". And we have a\n> lot of test harness stuff plus user muscle memory that assumes that\n> qemu-img and qemu-io live there. So the build runes for these tools\n> have to stay in the top level meson.build (and tools/meson.build\n> remains an empty file). The exception is that contrib/elf2dmp/elf2dmp\n> is now tools/elf2dmp/elf2dmp, but I think the set of people who were\n> running that from the build directory will be small.\n> \n> thanks\n> -- PMM\n> \n> \n> Peter Maydell (9):\n>   ebpf: move ebpf skeleton source to ebpf/ directory\n>   tools: Move qemu-bridge-helper sources to tools/ directory\n>   tools: Move qemu-edid sources to tools/ directory\n>   tools: Move qemu-img sources to tools/ directory\n>   tools: Move qemu-io sources to tools/ directory\n>   tools: Move qemu-nbd sources to tools/ directory\n>   tools: Move qemu-keymap sources to tools/ directory\n>   tools: Move qemu-vmsr-helper up a directory level\n>   tools: Move elf2dmp from contrib/ to tools/\n> \n>  MAINTAINERS                                   | 15 +++++++-------\n>  docs/tools/qemu-img.rst                       |  2 +-\n>  {tools/ebpf => ebpf/bpf-src}/Makefile.ebpf    |  2 +-\n>  {tools/ebpf => ebpf/bpf-src}/rss.bpf.c        |  0\n>  meson.build                                   | 20 +++++++++----------\n>  {contrib => tools}/elf2dmp/addrspace.c        |  0\n>  {contrib => tools}/elf2dmp/addrspace.h        |  0\n>  {contrib => tools}/elf2dmp/download.c         |  0\n>  {contrib => tools}/elf2dmp/download.h         |  0\n>  {contrib => tools}/elf2dmp/err.h              |  0\n>  {contrib => tools}/elf2dmp/kdbg.h             |  0\n>  {contrib => tools}/elf2dmp/main.c             |  0\n>  {contrib => tools}/elf2dmp/meson.build        |  0\n>  {contrib => tools}/elf2dmp/pdb.c              |  0\n>  {contrib => tools}/elf2dmp/pdb.h              |  0\n>  {contrib => tools}/elf2dmp/pe.h               |  0\n>  {contrib => tools}/elf2dmp/qemu_elf.c         |  0\n>  {contrib => tools}/elf2dmp/qemu_elf.h         |  0\n>  .../qemu-bridge-helper.c                      |  0\n>  qemu-edid.c => tools/qemu-edid.c              |  0\n>  qemu-img-cmds.hx => tools/qemu-img-cmds.hx    |  0\n>  qemu-img.c => tools/qemu-img.c                |  0\n>  qemu-io-cmds.c => tools/qemu-io-cmds.c        |  0\n>  qemu-io.c => tools/qemu-io.c                  |  0\n>  qemu-keymap.c => tools/qemu-keymap.c          |  0\n>  qemu-nbd.c => tools/qemu-nbd.c                |  0\n>  tools/{i386 => }/qemu-vmsr-helper.c           |  0\n>  tools/{i386 => }/rapl-msr-index.h             |  0\n>  28 files changed, 20 insertions(+), 19 deletions(-)\n>  rename {tools/ebpf => ebpf/bpf-src}/Makefile.ebpf (96%)\n>  rename {tools/ebpf => ebpf/bpf-src}/rss.bpf.c (100%)\n>  rename {contrib => tools}/elf2dmp/addrspace.c (100%)\n>  rename {contrib => tools}/elf2dmp/addrspace.h (100%)\n>  rename {contrib => tools}/elf2dmp/download.c (100%)\n>  rename {contrib => tools}/elf2dmp/download.h (100%)\n>  rename {contrib => tools}/elf2dmp/err.h (100%)\n>  rename {contrib => tools}/elf2dmp/kdbg.h (100%)\n>  rename {contrib => tools}/elf2dmp/main.c (100%)\n>  rename {contrib => tools}/elf2dmp/meson.build (100%)\n>  rename {contrib => tools}/elf2dmp/pdb.c (100%)\n>  rename {contrib => tools}/elf2dmp/pdb.h (100%)\n>  rename {contrib => tools}/elf2dmp/pe.h (100%)\n>  rename {contrib => tools}/elf2dmp/qemu_elf.c (100%)\n>  rename {contrib => tools}/elf2dmp/qemu_elf.h (100%)\n>  rename qemu-bridge-helper.c => tools/qemu-bridge-helper.c (100%)\n>  rename qemu-edid.c => tools/qemu-edid.c (100%)\n>  rename qemu-img-cmds.hx => tools/qemu-img-cmds.hx (100%)\n>  rename qemu-img.c => tools/qemu-img.c (100%)\n>  rename qemu-io-cmds.c => tools/qemu-io-cmds.c (100%)\n>  rename qemu-io.c => tools/qemu-io.c (100%)\n>  rename qemu-keymap.c => tools/qemu-keymap.c (100%)\n>  rename qemu-nbd.c => tools/qemu-nbd.c (100%)\n>  rename tools/{i386 => }/qemu-vmsr-helper.c (100%)\n>  rename tools/{i386 => }/rapl-msr-index.h (100%)\n> \n\nAs well, feel free to send a patches for contrib/plugins, moving them to\nplugins/plugins as you offered first.\nWe didn't find a better alternative, and it does not really matters to\nbe honest. You have my reviewed-by.\n\nRegards,\nPierrick","headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256\n header.s=qcppdkim1 header.b=hmOAgBkG;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com\n header.a=rsa-sha256 header.s=google header.b=Tq8b2TgD;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists1p.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)"],"Received":["from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4gBv7C0Lf4z1yKd\n\tfor <incoming@patchwork.ozlabs.org>; Sat, 09 May 2026 02:03:49 +1000 (AEST)","from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists1p.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1wLNf7-0004ia-3a; Fri, 08 May 2026 12:02:49 -0400","from eggs.gnu.org ([2001:470:142:3::10])\n by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <pierrick.bouvier@oss.qualcomm.com>)\n id 1wLNf2-0004YW-T7\n for qemu-devel@nongnu.org; Fri, 08 May 2026 12:02:47 -0400","from mx0a-0031df01.pphosted.com ([205.220.168.131])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <pierrick.bouvier@oss.qualcomm.com>)\n id 1wLNf0-0002wz-Bz\n for qemu-devel@nongnu.org; Fri, 08 May 2026 12:02:44 -0400","from pps.filterd (m0279867.ppops.net [127.0.0.1])\n by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id\n 648BwN4e2777831\n for <qemu-devel@nongnu.org>; Fri, 8 May 2026 16:02:40 GMT","from mail-dy1-f197.google.com (mail-dy1-f197.google.com\n [74.125.82.197])\n by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e1285m2pj-1\n (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)\n for <qemu-devel@nongnu.org>; Fri, 08 May 2026 16:02:40 +0000 (GMT)","by mail-dy1-f197.google.com with SMTP id\n 5a478bee46e88-2ee34588671so3145609eec.0\n for <qemu-devel@nongnu.org>; Fri, 08 May 2026 09:02:40 -0700 (PDT)","from [192.168.1.170] (216-71-219-44.dyn.novuscom.net.\n [216.71.219.44]) by smtp.gmail.com with ESMTPSA id\n 5a478bee46e88-2f88847502fsm3063521eec.14.2026.05.08.09.02.36\n (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);\n Fri, 08 May 2026 09:02:37 -0700 (PDT)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=\n cc:content-transfer-encoding:content-type:date:from:in-reply-to\n :message-id:mime-version:references:subject:to; s=qcppdkim1; bh=\n bbvLhHVBfSP4Uz3No0BvbzS5tqmHcT6h6pdsBZq2R5c=; b=hmOAgBkGVUExfeMD\n MkCvZKpLM+a4wcV8Pu2C/2IwrpQPvKtFLXFZoUD+afX/K53b/x/B+b9kkJOx5s3a\n 9IwPCrVO8E+NqEutwM5ww+nrOlP++LuWa97aRpdOpdbI6K3T20mvjQGOmD9RHdZu\n Y7neBoKKvUCh77/+gHaD03oCuuHY0IXihpJHw14sOYwfOhB/DtmopN1xrc2bOFFf\n TLdMdDXYF5D1KKf7mSROo9OaxiiLmJb5Ftm2L3K2Fo/D442xF5HBqfu4bwebbjh+\n A0OPchvERUlEvyAfHQKR/fZCDN0XLOSudWs2oLZC+vf33IAAAoVcyN7jwcZe+BlE\n o42w9Q==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=oss.qualcomm.com; s=google; t=1778256160; x=1778860960; darn=nongnu.org;\n h=content-transfer-encoding:in-reply-to:content-language:from\n :references:cc:to:subject:user-agent:mime-version:date:message-id\n :from:to:cc:subject:date:message-id:reply-to;\n bh=bbvLhHVBfSP4Uz3No0BvbzS5tqmHcT6h6pdsBZq2R5c=;\n b=Tq8b2TgDwOCoCDm3GeBSyxbPg5OtZmkgpMD8ODypOHJeZjPCtnIiuTvB2gE96AjcwI\n lA0l29ILpfnIgoQ4X+oZfQuNbfVYMks+2h3f0uFT+b+2rm3jksCKE03pazN3DteHgWAf\n 124211TllEbeeqfKJBNnTcjC8dYwV7WyigaNEnUQXjEWz1r+zLmweqLVN+3K8+R4EP+I\n Gd9VpEGQcvWyKO6rWoKZyy9q7lSxF0rPg3GWxKFASgr9RCEeKU8jjKTb0LZ1lGuCDphI\n cFAyjAMga5zQzehLdreDuZKcziORakx2IGE1Z9PYQLZJRM4E91MGbm2NeYCWXbhkXjW7\n wTIg=="],"X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1778256160; x=1778860960;\n h=content-transfer-encoding:in-reply-to:content-language:from\n :references:cc:to:subject:user-agent:mime-version:date:message-id\n :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id\n :reply-to;\n bh=bbvLhHVBfSP4Uz3No0BvbzS5tqmHcT6h6pdsBZq2R5c=;\n b=hsQK+duyHOXTw2JyeDQtS4kyroNygRpYD3c2PwDNDNbwxhg6CDDpMTBx03N/evPdav\n /M3nBhhqoZ2T4eXpMjlBi4up6gv+t+FsEw2nuO0RKVYB4G+PaUVe32XvrAUqG8J3nrID\n mY3PkKAOVOQ+C83YvQcHco+ekj9RHhSZjai0tf6+MrCVrx0+qS0QmlRGS1IHJqVOhB4i\n sOmr5ov/NWsAXBx3inJC0ZjgLAFn0zAA+hg2Aeq/IWePYVTrzbNP7/CX+k7AgVE9Q3kV\n Q7FByB5UpIu10IgPqXEXJHZCPbMhKkWx1YYoUzlHKPa/+xR+6Cx2ZKWzHVKXBtKzpblD\n yT7w==","X-Forwarded-Encrypted":"i=1;\n AFNElJ+v6yKOAzQ7F8Wqfu0BHpuY53c7MDmnmC5LA+gxC3aqP4iFctY3CmU9IlYRBjma2Vbg3m5TmzdoDNi9@nongnu.org","X-Gm-Message-State":"AOJu0YzkjdMm/0CIpiAM8ygrtQUAD9aclo164ZhszajkKVrYKL9JJG5h\n u7GTGTc/4xXqeCmkb1wPvV2W0UhTFh3mbZ6lDyLkbm9dR2XmuX/CbOx2rBTMVIsFAFNl+9AeQxv\n VHYskHSebF9m5Y76eQs26kCGY+XbRWICWHPdIhgtSjJo2niqt/L+62wRAFg==","X-Gm-Gg":"Acq92OHePBylP+/XP7FjgL4cnqc9Zl+K3jsqk7OqqlS6Xryz03ak6pzpnvfkpfzJqGo\n Ey6o2qPEbB3VPC24MyZ94OM2fOE0Tvio5QJeQF+A1+/WfHhNWvVie4ZXmY3MRzb4W4hzNd3QkRi\n Ck5Vj5KW3z7uWGBixlHShcmSuYCihLwJEI2afZ8bBXa59gBwMVnTGbEgq5YmSHNzL66TaZKDlET\n JRbLG9xwyB7N0TbypXneg4/oV/HsFgs0anTNsPCiyWLmtIS9pqH8Gs5ST5TabfNCSGnMg1jz9J5\n BdJjiALhKgjLrzskCEzf122DpcEyIbPgx+T6mvewS09Sr5MyGePqLP7lpGUaFHFETESuE40uTVr\n 0jKldNaCOsW0oTB9l/o2YeK5mkl1gUVnrETmxeMiZ5lEppqq8IxT4DnZzQh0dqeZF0kUzxs+wQe\n 952BO+cPWZj4qBph6W+1fEGF2S","X-Received":["by 2002:a05:7300:2216:b0:2c5:220c:5670 with SMTP id\n 5a478bee46e88-2f5482663b5mr7007564eec.2.1778256159458;\n Fri, 08 May 2026 09:02:39 -0700 (PDT)","by 2002:a05:7300:2216:b0:2c5:220c:5670 with SMTP id\n 5a478bee46e88-2f5482663b5mr7007395eec.2.1778256158130;\n Fri, 08 May 2026 09:02:38 -0700 (PDT)"],"Message-ID":"<6aa27613-97e6-4568-8b75-cb804cc0e445@oss.qualcomm.com>","Date":"Fri, 8 May 2026 09:02:35 -0700","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH 0/9] tools: Move more tools sources into tools/","To":"Peter Maydell <peter.maydell@linaro.org>, qemu-devel@nongnu.org","Cc":"Kevin Wolf <kwolf@redhat.com>, Hanna Reitz <hreitz@redhat.com>,\n Paolo Bonzini <pbonzini@redhat.com>,\n =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= <berrange@redhat.com>, =?utf-8?q?Phil?=\n\t=?utf-8?q?ippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>,\n Viktor Prutyanov <viktor.prutyanov@phystech.edu>,\n Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp>,\n Gerd Hoffmann <kraxel@redhat.com>, Eric Blake <eblake@redhat.com>,\n Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>,\n Jason Wang <jasowang@redhat.com>","References":"<20260508152428.2648560-1-peter.maydell@linaro.org>","From":"Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>","Content-Language":"en-US","In-Reply-To":"<20260508152428.2648560-1-peter.maydell@linaro.org>","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"7bit","X-Proofpoint-Spam-Details-Enc":"AW1haW4tMjYwNTA4MDE2MCBTYWx0ZWRfX8kOT3+kGUZ+7\n 1DrHfd0KYgohofCE6ISMmirjSXhk7S2S9qwjRwuyOGDs2PAJaU1+MZ5Q91MiAGkeClonHX7MM/Q\n KNMEoptiRize5hsyyH4G1qjTrUkhtbJKH7JHY2Is1rPUQ+/FSjp7GXrBuHgsqJlvrPBHNWhw7hb\n ERufP1VQIwSYjZZp/hYDujiQvczeUfGW4CZDLsBCV8swiC6iVvVbaHkzSt6xEpc+c7RKlCZ5QtC\n HvsiCPnQ0hbQl+4IRKk1LSuyn3KTi/vU2u84mpsMRLMl3oNUTt1ElgypOFQaQxvGXzyGeLR/oTN\n 6lV7X3e05v3qpCvvFiKi7rlMnCz1KR8PCp68Oj8DCPQa6/unwshwka7uEhGg6SWEriG56whc8WN\n jvLpYY+DOvDhz+j8yrNSVcpZ8JvQ3sQd/kqougHKPLCFRQZCafOacBg+dofLnnZRiMHj3E5B99/\n kfyjWbqYifKO4x+5I7w==","X-Proofpoint-GUID":"cl-yukSoLKHrfqYi0c3peHFeZktiznX_","X-Proofpoint-ORIG-GUID":"cl-yukSoLKHrfqYi0c3peHFeZktiznX_","X-Authority-Analysis":"v=2.4 cv=NKblPU6g c=1 sm=1 tr=0 ts=69fe0920 cx=c_pps\n a=Uww141gWH0fZj/3QKPojxA==:117 a=iLqgmErQAxjCjdq5jj1Aqg==:17\n a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10\n a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22\n a=VwQbUJbxAAAA:8 a=pGLkceISAAAA:8 a=w-yBC8u__v6bVZDae54A:9 a=QEXdDO2ut3YA:10\n a=PxkB5W3o20Ba91AHUih5:22","X-Proofpoint-Virus-Version":"vendor=baseguard\n engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49\n definitions=2026-05-07_02,2026-05-08_02,2025-10-01_01","X-Proofpoint-Spam-Details":"rule=outbound_notspam policy=outbound score=0\n bulkscore=0 impostorscore=0 spamscore=0 clxscore=1015 malwarescore=0\n lowpriorityscore=0 phishscore=0 priorityscore=1501 suspectscore=0\n adultscore=0 classifier=typeunknown authscore=0 authtc= authcc=\n route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000\n definitions=main-2605080160","Received-SPF":"pass client-ip=205.220.168.131;\n envelope-from=pierrick.bouvier@oss.qualcomm.com;\n helo=mx0a-0031df01.pphosted.com","X-Spam_score_int":"-27","X-Spam_score":"-2.8","X-Spam_bar":"--","X-Spam_report":"(-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,\n DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,\n RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001,\n SPF_PASS=-0.001 autolearn=ham autolearn_force=no","X-Spam_action":"no action","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"qemu development <qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<https://lists.nongnu.org/archive/html/qemu-devel>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org"}},{"id":3688581,"web_url":"http://patchwork.ozlabs.org/comment/3688581/","msgid":"<CAFEAcA8eKM_DNK4kWX0DNudMiq__uZ-MQM0L-2CfWL39CgCyJw@mail.gmail.com>","list_archive_url":null,"date":"2026-05-08T16:22:01","subject":"Re: [PATCH 0/9] tools: Move more tools sources into tools/","submitter":{"id":5111,"url":"http://patchwork.ozlabs.org/api/people/5111/","name":"Peter Maydell","email":"peter.maydell@linaro.org"},"content":"On Fri, 8 May 2026 at 17:00, Pierrick Bouvier\n<pierrick.bouvier@oss.qualcomm.com> wrote:\n>\n> On 5/8/2026 8:24 AM, Peter Maydell wrote:\n> > We have a set of binaries that we call \"tools\": they're built based on\n> > the --enable-tools/--disable-tools configure setting, they're\n> > documented in docs/tools, and they're standalone executables of one\n> > form or another.\n> >\n> > Currently the sources for these are a bit scattered: many still in the\n> > top level source directory, some in contrib, one or two actually in\n> > the tools directory.\n> >\n> > As an initial attempt at cleanup, this patchset moves the sources for\n> > qemu-bridge-helper, qemu-edid, qemu-img, qemu-io, qemu-nbd,\n> > qemu-keymap, qemu-vmsr-helper and elf2dmp into the tools/ directory.\n> >\n> > The patchseries also moves the ebfp skeleton sources from tools/ebpf/\n> > to ebpf/bpf-src/, because this isn't a tool by the above definition.\n> >\n> > As per my thread from a while back, I would ultimately like us to\n> > clean up contrib/:\n> > https://lore.kernel.org/qemu-devel/CAFEAcA_5HvGriDsWnb1ALuA_dgG320eKv7yuM2kThv=rfOSZQA@mail.gmail.com/\n> > But parts of that clearly need more discussion. So this is just doing\n> > some parts that I hope are not controversial.\n> >\n> > Annoyingly, meson doesn't seem to provide any way for a subdirectory\n> > meson.build to say \"the foo.c in this subdir builds into a foo\n> > executable that lives at the top level of the builddir\". And we have a\n> > lot of test harness stuff plus user muscle memory that assumes that\n> > qemu-img and qemu-io live there. So the build runes for these tools\n> > have to stay in the top level meson.build (and tools/meson.build\n> > remains an empty file). The exception is that contrib/elf2dmp/elf2dmp\n> > is now tools/elf2dmp/elf2dmp, but I think the set of people who were\n> > running that from the build directory will be small.\n> >\n>\n> It's a deliberate design more than an annoyance. It pushes users to make\n> things explicit at top level, which is good to understand what is built\n> and how, and hide details in subdirs in variables. QEMU's top level\n> meson.build is over complex, so it may appear more as a burden than a\n> benefit though.\n\nPersonally I think if the build system doesn't let you do a\npretty normal and reasonable thing that's annoying. Meson\nannoys me because it has a tendency to be over-opinionated.\n\n-- PMM","headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=linaro.org header.i=@linaro.org header.a=rsa-sha256\n header.s=google header.b=zl4HHXEr;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists1p.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)"],"Received":["from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4gBvXp5mcGz1yCg\n\tfor <incoming@patchwork.ozlabs.org>; Sat, 09 May 2026 02:22:34 +1000 (AEST)","from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists1p.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1wLNxy-0003i9-PR; Fri, 08 May 2026 12:22:18 -0400","from eggs.gnu.org ([2001:470:142:3::10])\n by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <peter.maydell@linaro.org>)\n id 1wLNxy-0003hY-0U\n for qemu-devel@nongnu.org; Fri, 08 May 2026 12:22:18 -0400","from mail-yw1-x112e.google.com ([2607:f8b0:4864:20::112e])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)\n (Exim 4.90_1) (envelope-from <peter.maydell@linaro.org>)\n id 1wLNxu-0001UH-TK\n for qemu-devel@nongnu.org; Fri, 08 May 2026 12:22:16 -0400","by mail-yw1-x112e.google.com with SMTP id\n 00721157ae682-7b6ae2ea4a1so23450477b3.2\n for <qemu-devel@nongnu.org>; Fri, 08 May 2026 09:22:14 -0700 (PDT)"],"ARC-Seal":"i=1; a=rsa-sha256; t=1778257333; cv=none;\n d=google.com; s=arc-20240605;\n b=Rigl4ZfgPaCy0hqDbiXyr2Zg6cgu8E2Yizw9JnHSrdJ5+PNljLsmqUW7XOHMi8yT7D\n i3AyNoJ3RP6qrDUTO7yFVpM49VBdUhty8y3sSVcjfDjMfZ2A2PJyJgLLzVlUN5X3IeXk\n iE88ALKBzzGOm/uOfaGeSftEWbgz6aCoTtJekUhvzjz4a/Ck10X1NFavDoy6dWyRgduW\n 4iKNyeqUNPFHnTGXuLvdqmGwQ3B+OAcwdpzW1y4pymUaJKCu7tIKw9AYc6x7o2vi8rjG\n ONW7cJ8VXmQvPZkuO5IjlYuDtNbnZEEoSO1m5uK4wy9c3C+jwHr9PBsO+9hYeRZd6VDs\n SiJw==","ARC-Message-Signature":"i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;\n s=arc-20240605;\n h=cc:to:subject:message-id:date:from:in-reply-to:references\n :mime-version:dkim-signature;\n bh=UrmdB1BRJvGcVEgG7o6JW0bqINOVKN9TEf/PzBnLMgY=;\n fh=X0hnS57OutvDn80UIpZYh+UDDjnK9EdeaA1mTqz8XzM=;\n b=XpFWNR0lvarVhrN4znnfw/+eb/9ndlo8qQfI7vVC9aIbinjrxsbvS5zzojVUOXRK9K\n N/Y0FIRal0ACs9uNKV2UVXNrC9OWygPmyjBIxTbsECzuiRRUz5vlA3hAkkqqh/0eezQT\n UUYgtZ4TFhiKQI8mxx52pK75DuT9Fveh6Bmx5ZOljlzlm2Ujz3tOsUxlQkxu0/BEEwNF\n kjxSCUMtYICzSzkBD45E+CCzqsZnPWU9uLcgVwmJWQY1ju+5oyBNXH8Kfk/zrUxOmwvF\n Qa3a/OeLu2rIm44MkzrYqlkEiQ2GR2bGRv9wceYB2ezUQGcz3NJEbc0Vm0XLZauRu76w\n jjIA==; darn=nongnu.org","ARC-Authentication-Results":"i=1; mx.google.com; arc=none","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=linaro.org; s=google; t=1778257333; x=1778862133; darn=nongnu.org;\n h=cc:to:subject:message-id:date:from:in-reply-to:references\n :mime-version:from:to:cc:subject:date:message-id:reply-to;\n bh=UrmdB1BRJvGcVEgG7o6JW0bqINOVKN9TEf/PzBnLMgY=;\n b=zl4HHXEr/tqRGabghBZD55FBp5vFnQLHFXiPMOa/olbYpmAO8czEhPHSjECD37LrNe\n pbdQWqbUy7UYG/BXB45WzQsvZKMjY1Wp+x+cEsFJrM6i37TJfvIi7H5KXcVYqdUz93EC\n /d2ZM+TB3oqK5KJysXFpDHuWg1z8feaZ6pZ04qCje7Zdihde67vNpSEqPp0VW+zrLTGX\n kPoJ9ITShLXhROpFJK0tpI24ISWPXXGyhUmyRB1PIn2HrK9wxUovNwxwtQmOrN91J1ni\n fDgifoW4XCZ1P/royLDF2DJspefIh1+Z3pRYWDp1KnIOvaGMg1YJ6NxC5BwCJK27UagC\n xIHw==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1778257333; x=1778862133;\n h=cc:to:subject:message-id:date:from:in-reply-to:references\n :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date\n :message-id:reply-to;\n bh=UrmdB1BRJvGcVEgG7o6JW0bqINOVKN9TEf/PzBnLMgY=;\n b=SjSYXrZUV6vhtjMbdYivOf/RWvosCMzulBKObuGufKfoBXXPi/iHZBF7kD+Itg+1LO\n kklmI3CzDvTm3981pe8vWfNj1DLuz4XqH3By+Z80ZXQAwLMQTIGb2YTgkGyDU6GMlPAr\n Z6yprhhlFkQdzi9RoP7AFEXZmCyjjyKvRRSHRrK7RPZfQM6uSNkmledlDw1KZo28WvG/\n FQXCKmslaxZHjYa6WFcZ19qu5i7N9Ni4nQ09EbL6Gy4vLPxCEjTHhJ9xNsQW5lV1ZL6+\n Pa1lfOHsinJ2bVuQflnRUz+phUJLEo+vvR1nh1gbpG995yt9jJr+nj2uiVgmsv+H85Js\n VnxQ==","X-Gm-Message-State":"AOJu0YxVu3H9yLRlFGwBWY7XQ51LU2oQ5No39dwQm2dS3qTqSoG/i9Wk\n br/41sxqqSIzVqIxv3ARwjxQM3BKWBGGH76Og7jdSCSRYFvzkDDmRPf1ZHe63ZIpL7XQG0/Z+Hf\n SC2aeeHNSaJxy+QHX55L/Sm1W7muEtKGIn/YqRZX7Sw==","X-Gm-Gg":"Acq92OEYtf64GoVJFz6YRX8GbFHTedQUGbgSaL6EolqJIEcItQtcQni5CnTMvcyeBXX\n U2ZhAIQKayROHnvH4LkuamTexS8PAWV44y7FdUa23zD/NUN4BRT0oz3tq+1ItZNLVoFKW9uerph\n QV094GA3dC0/7hxpHafhHNmoBGpSK3RwZO5FyKtcFR4kOcNkLttwGSrtkwmvUsSFSYk4lpHI09v\n qRuYPdzkOP9mc6yVChC6YosASvznibB2X+UM0mScVs3oSbgadBMFIxlAh3nFBHOYuyLy2DaAdrz\n eA6UHvIRUhR4hbg8OKywf838bvz+VOded/aQGkweQx7jFTVUL24SLzunJu0UghUw8hQ=","X-Received":"by 2002:a05:690c:399:b0:7bd:9f34:59a3 with SMTP id\n 00721157ae682-7bdf5debfdemr141152597b3.11.1778257333344; Fri, 08 May 2026\n 09:22:13 -0700 (PDT)","MIME-Version":"1.0","References":"<20260508152428.2648560-1-peter.maydell@linaro.org>\n <735327c6-f23f-42cf-9b8e-a651d8ee7770@oss.qualcomm.com>","In-Reply-To":"<735327c6-f23f-42cf-9b8e-a651d8ee7770@oss.qualcomm.com>","From":"Peter Maydell <peter.maydell@linaro.org>","Date":"Fri, 8 May 2026 17:22:01 +0100","X-Gm-Features":"AVHnY4JN-6B2af8NhMUZ66ZZBrt03hqYDwUwEbyP7TI4HFa9yCTsMxe9UFiZ9e4","Message-ID":"\n <CAFEAcA8eKM_DNK4kWX0DNudMiq__uZ-MQM0L-2CfWL39CgCyJw@mail.gmail.com>","Subject":"Re: [PATCH 0/9] tools: Move more tools sources into tools/","To":"Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>","Cc":"qemu-devel@nongnu.org, Kevin Wolf <kwolf@redhat.com>,\n  Hanna Reitz <hreitz@redhat.com>, Paolo Bonzini <pbonzini@redhat.com>,\n\t=?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= <berrange@redhat.com>, =?utf-8?q?Phil?=\n\t=?utf-8?q?ippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>,\n  Viktor Prutyanov <viktor.prutyanov@phystech.edu>,\n  Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp>,\n Gerd Hoffmann <kraxel@redhat.com>, Eric Blake <eblake@redhat.com>,\n  Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>,\n Jason Wang <jasowang@redhat.com>","Content-Type":"text/plain; charset=\"UTF-8\"","Received-SPF":"pass client-ip=2607:f8b0:4864:20::112e;\n envelope-from=peter.maydell@linaro.org; helo=mail-yw1-x112e.google.com","X-Spam_score_int":"-20","X-Spam_score":"-2.1","X-Spam_bar":"--","X-Spam_report":"(-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,\n DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,\n RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001,\n SPF_PASS=-0.001 autolearn=ham autolearn_force=no","X-Spam_action":"no action","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"qemu development <qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<https://lists.nongnu.org/archive/html/qemu-devel>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org"}}]