[{"id":3687201,"web_url":"http://patchwork.ozlabs.org/comment/3687201/","msgid":"<8685c75f-09eb-4c05-a109-f16eca871999@oracle.com>","list_archive_url":null,"date":"2026-05-06T15:48:12","subject":"Re: [RFC PATCH 05/10] .agents/skills: add qemu-build skill","submitter":{"id":80257,"url":"http://patchwork.ozlabs.org/api/people/80257/","name":"Alejandro Jimenez","email":"alejandro.j.jimenez@oracle.com"},"content":"On 5/5/26 1:01 PM, Alex Bennée wrote:\n> This provides basic instructions for building QEMU.\n> \n> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>\n> ---\n>  .agents/skills/qemu-build/SKILL.md | 50 ++++++++++++++++++++++++++++++\n>  1 file changed, 50 insertions(+)\n>  create mode 100644 .agents/skills/qemu-build/SKILL.md\n> \n> diff --git a/.agents/skills/qemu-build/SKILL.md b/.agents/skills/qemu-build/SKILL.md\n> new file mode 100644\n> index 00000000000..a78678ff632\n> --- /dev/null\n> +++ b/.agents/skills/qemu-build/SKILL.md\n> @@ -0,0 +1,50 @@\n> +---\n> +name: qemu-build\n> +description: Provides step-by-step instructions on configuring and building QEMU. You MUST trigger this skill whenever the user asks to build QEMU or debug build failures. It includes critical details on build directory reuse and spawning sub-agents.\n> +license: GPL-2.0-or-later\n> +---\n> +\n> +# Instructions\n> +\n> +## Examining and Re-using Build Directories\n> +Before creating a new build directory, check if an existing one can be re-used. QEMU uses out-of-tree builds, typically in `build` or `builds/` sub-directories.\n> +\n> +1. **Check existing configs**: You can examine how an existing build directory was configured by checking its `config.log`. Run `head -n 2 builds/<dir>/config.log`. The second line typically contains the full `../configure` command line used.\n> +2. **Re-use and Reconfigure**: You have latitude to re-use existing directories when appropriate (e.g., `builds/debug` which is a general-purpose debug directory for whatever is currently going on). If an existing directory has the right flags (like debug/sanitizers) but the wrong target list, you can reconfigure it to keep the same config but change the `--target-list`:\n> +   ```bash\n> +   cd builds/debug\n> +   # Check the old config.log, then re-run configure with the new target-list\n> +   ../../configure <old-flags> --target-list=<new-targets>\n> +   ```\n> +\n> +## Launching Builds\n> +**Crucial**: You MUST NEVER run builds directly in the main agent context. You MUST ALWAYS launch them by spawning a sub-agent using the `eca__spawn_agent` tool.\n\n\"ECA heritage\" showing with the eca__spawn_agent mention. Ending the\nsentence after \"sub-agent\" is likely enough for the model to do the right\nthing based on its available tools?\n\n> +Always use the `qemu-helper-agent` for these tasks.\n> +Pass the specific build commands, along with the required working directory, in the `task` argument. Give the subagent explicit instructions on what to verify and what to report back to you.\n> +For example: `task: \"Navigate to builds/debug and run ninja. If it fails, report the exact compiler errors.\"`\n> +\n> +## Configuring a New Build\n> +If no suitable build directory exists, create a new one.\n> +\n> +1. **Create build directory**: `mkdir -p builds/test-target; cd builds/test-target`\n> +2. **Basic Configure**: `../../configure --target-list=[list of targets]`\n> +   - Common targets: `x86_64-softmmu`, `aarch64-softmmu`, `riscv64-softmmu`, `x86_64-linux-user`.\n> +3. **Common Options**:\n> +   - `--enable-debug-info`: Include symbols.\n> +   - `--enable-debug`: Enable assertions.\n> +4. **Sanitizers**:\n> +   - `--enable-asan`: Address Sanitizer.\n> +   - `--enable-tsan`: Thread Sanitizer.\n> +   - `--enable-ubsan`: Undefined Behavior Sanitizer.\n> +\n> +## Building\n> +**Important**: Always re-run the build after making changes to the source code.\n> +\n> +## Reporting Results\n> +**Crucial**: After completing the build task, provide a concise summary of the results to the calling agent.\n> +1. **Summary**: State whether the build passed or failed.\n> +2. **Failure Excerpts**: If the build fails, include relevant excerpts from the logs (e.g., compiler errors).\n> +3. **Full Paths**: Always provide the **absolute file paths** to the full logs for further inspection.\n> +\n> +## Debugging and Environment\n> +- **Verbose**: `V=1` for detailed output.","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=oracle.com header.i=@oracle.com header.a=rsa-sha256\n header.s=corp-2025-04-25 header.b=gkMgSbNf;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com\n header.a=rsa-sha256 header.s=selector2-oracle-onmicrosoft-com\n header.b=K6IWvyzu;\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 4g9fvC6G7jz1yJq\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 07 May 2026 01:49:11 +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 1wKeUW-0006cR-2d; Wed, 06 May 2026 11:48:52 -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 <alejandro.j.jimenez@oracle.com>)\n id 1wKeU8-0006TB-Ci\n for qemu-devel@nongnu.org; Wed, 06 May 2026 11:48:34 -0400","from mx0b-00069f02.pphosted.com ([205.220.177.32])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <alejandro.j.jimenez@oracle.com>)\n id 1wKeU5-0003WM-O7\n for qemu-devel@nongnu.org; Wed, 06 May 2026 11:48:28 -0400","from pps.filterd (m0246631.ppops.net [127.0.0.1])\n by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id\n 6466brL1855322; Wed, 6 May 2026 15:48:21 GMT","from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com\n (phxpaimrmta02.appoci.oracle.com [147.154.114.232])\n by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4dw9fb72ug-1\n (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);\n Wed, 06 May 2026 15:48:20 +0000 (GMT)","from pps.filterd\n (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1])\n by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.7/8.18.1.7)\n with ESMTP id 646FfUOG005095; Wed, 6 May 2026 15:48:19 GMT","from ph7pr06cu001.outbound.protection.outlook.com\n (mail-westus3azon11010008.outbound.protection.outlook.com [52.101.201.8])\n by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id\n 4dx593sudy-1\n (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);\n Wed, 06 May 2026 15:48:19 +0000 (GMT)","from BLAPR10MB5041.namprd10.prod.outlook.com (2603:10b6:208:30e::6)\n by IA1PR10MB5899.namprd10.prod.outlook.com (2603:10b6:208:3d5::9)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.25; Wed, 6 May\n 2026 15:48:15 +0000","from BLAPR10MB5041.namprd10.prod.outlook.com\n ([fe80::2c19:641c:14b9:b1b4]) by BLAPR10MB5041.namprd10.prod.outlook.com\n ([fe80::2c19:641c:14b9:b1b4%4]) with mapi id 15.20.9891.008; Wed, 6 May 2026\n 15:48:15 +0000"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=\n content-transfer-encoding:content-type:date:from:in-reply-to\n :message-id:mime-version:references:subject:to; s=\n corp-2025-04-25; bh=uQmtKe6Fw80J68j62f3f7qpk0cosoSAOOgp5NvoWGq4=; b=\n gkMgSbNfYo5HzbzwICV1gl4dx+fQc61HUINizixvCdH4uNyrdqMRycTufyvRuwH7\n UlHfH79OGN3F258o5788+b3HgUGJp+RA+XYtxo6BS4Lwt8s6USioTAiK6+AlAxBO\n KBmIn5dYP1Oy0b5K9ziOh8oFUEd6SCrZ6Yf7ChAKjH8cX4/O52SQBT1ixniPrIb+\n 4DKTks8iKN1fFGiy5Zr3tU9DzE7GoItwpaGEoweLql9QvxDJDXfuFbIIq/4ygi2T\n Wi5f9zxZHKnhSJeuRl0sJ5NCCuz3tQ+DGwefgH/UMNoiqRIZWdrVnJ7PIIUbFlby\n WU0morW9qEa7hzzFT8KquA==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=uQmtKe6Fw80J68j62f3f7qpk0cosoSAOOgp5NvoWGq4=;\n b=K6IWvyzuPY0PhGNYfY2B7799eeYNlRD0LGcKoEAWw04m8sXNLSdpfeVJX57fo/PuSedIiMzHTr8zIWQb3Xdiwq3jAJM8sIv1D0JLWHPGr2JL73kaQuc9RunDyLhkQxAnmi0tiKeyBJUZolYRjG0j5WyyDYJ8GKOB5v7I5k4sysA="],"ARC-Seal":"i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=ucCrMBkkEpZRdEh7fRndR+joE8j3FR+3Z/0s85VqWWmIHZFXUPRPZnFhi14Iwzz3KpmcCchTFZMm2rVZonjJ2UItqnh8h9oD3xCJBdL50CNeG7MM2e+JgSEVSiCedqrQgHyrdCF08BwtroexyVHFrVtwtzVHzXjSnFqpXFSlYfJbkAmZ7M1aLwEMEjOcfTSUQqZTVDggydp/OH3XFbfIXnc79aTZE2IMjb7taqvq+X72tNk2/5RqFPWokWSAYs8PQOxeXf83hP2Ur+dBHX2ocWicm5AAS1mOVCUMZf4AvJERjcLZ4cof8q9aqAbSM1Wcy1SFhVt4sG0AOEl1+sa7vA==","ARC-Message-Signature":"i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;\n bh=uQmtKe6Fw80J68j62f3f7qpk0cosoSAOOgp5NvoWGq4=;\n b=v3wCAbWzaqsbCSnQLot58HQnJ9WcZu2vJe2W6x2+FxR5GLl6Hrv/jTh+LEyHftAhwaDHtf5PA4FbQr2OXLx/2HWUxvo0jVkI+wnrIEMCYZdsHq841sMIM6QeRyymIUr8ULW7Tf1FSjkuzZavZVYgBRE3dVHs/dvqMmJkX6DkeAgx05dR/Ql++Be8tY1+bBvexZK2RoE1rG8KQDVVLxjDeICJjxCccjorXdUKBqCbUEgrHcuL16TGzn8z6cQAK5xaSE9EManXbN1TQH7sel6OAL7APjobfi2cZulraK3+oNX8+Qf0fPgkKWuCf3CnWvJap7hMtWfrkTg1kcyDvZSh3A==","ARC-Authentication-Results":"i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com;\n dkim=pass header.d=oracle.com; arc=none","Message-ID":"<8685c75f-09eb-4c05-a109-f16eca871999@oracle.com>","Date":"Wed, 6 May 2026 11:48:12 -0400","User-Agent":"Mozilla Thunderbird","Subject":"Re: [RFC PATCH 05/10] .agents/skills: add qemu-build skill","To":"=?utf-8?q?Alex_Benn=C3=A9e?= <alex.bennee@linaro.org>,\n qemu-devel@nongnu.org","References":"<20260505170105.228162-1-alex.bennee@linaro.org>\n <20260505170105.228162-6-alex.bennee@linaro.org>","Content-Language":"en-US","From":"Alejandro Jimenez <alejandro.j.jimenez@oracle.com>","In-Reply-To":"<20260505170105.228162-6-alex.bennee@linaro.org>","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"8bit","X-ClientProxiedBy":"BN1PR12CA0002.namprd12.prod.outlook.com\n (2603:10b6:408:e1::7) To BLAPR10MB5041.namprd10.prod.outlook.com\n (2603:10b6:208:30e::6)","MIME-Version":"1.0","X-MS-PublicTrafficType":"Email","X-MS-TrafficTypeDiagnostic":"BLAPR10MB5041:EE_|IA1PR10MB5899:EE_","X-MS-Office365-Filtering-Correlation-Id":"c9ff7e6b-64a8-45f1-2a08-08deab86e2e2","X-MS-Exchange-SenderADCheck":"1","X-MS-Exchange-AntiSpam-Relay":"0","X-Microsoft-Antispam":"BCL:0;\n ARA:13230040|10070799003|376014|366016|1800799024|56012099003|22082099003|11146099003|18002099003;","X-Microsoft-Antispam-Message-Info":"\n I1nU242WNRW50GNpPPwHRGfJ3iMTcusSObwyQGupGUlc1bnfX9Z/FOSz63sbFBOQgdLctxizKkyrsAObFy914FrkoxESYHxNjzlh84dlrrPoxGGDXJqhFhSpDt6RCVO8rS/vM7FoBBncydF+RK+5zA2JZ7684kgUusFOIFQMZcJmAmxgHyM0No+eIzsTA2VinwpVJMkxYpxLp03GfEJXy3odkGXm8daHKHdtvFOiNCGJVQJWaWP1nGtw86VB0Rg5Op3R0jZmJzR/eZZXiLZXfVXZHkEPKzvTlqjCJdUnJa2c41YUZfnExG1VafZokHISO/vdTC8vks628MeDusL4U2ViPQzJWRD79mwhaB/HUde+XsylBF+mMTbQI3ho4fKPMrylT8T4hrMDpCE3MCRQ29/az0ZbLUor4szn/SurYSNqiqUM888GQAorp1cbo0wR8V6mAiWq92LcE/+Lg/rDvVa7jYOtRUV5Mdmlye6tURcErxFZcxpIYfATrP87SpEaAKQbmx3Cj55eHjOeMpkHndjXeCanAjkmsDzirgzf5mSlM0Xkp57XRa7YHgpandc/OkC2ZXNAFB78EwZjL/BI4qwbsX1p3cFzLFFnUIX+a//YOiY0LkTWIunAZTqzI5kbG2FMSIn04XmH6cWtuBgrbxzvhlHFDpj+R1tfuT99r+y7ms+7AWM4OC8PIGdEOYLm","X-Forefront-Antispam-Report":"CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;\n IPV:NLI; SFV:NSPM; H:BLAPR10MB5041.namprd10.prod.outlook.com; PTR:; CAT:NONE;\n SFS:(13230040)(10070799003)(376014)(366016)(1800799024)(56012099003)(22082099003)(11146099003)(18002099003);\n DIR:OUT; SFP:1101;","X-MS-Exchange-AntiSpam-MessageData-ChunkCount":"1","X-MS-Exchange-AntiSpam-MessageData-0":"=?utf-8?q?WSqLJrrKVx1ikIkcpNHNfoQcrstC?=\n\t=?utf-8?q?otEEao5iaNqaQ59jRySUSFf4thWaZIIq2KFIRKI0zvlM7R1grRUWDMwcZcdN2Zf5t?=\n\t=?utf-8?q?aEpuBLzsk2mDi1fbSwFdVxcGsuupJEPXviy+D51/BG+oftH3e6XAsHyDbsFOeajdX?=\n\t=?utf-8?q?yP+zbEoP/Wa92EGOF8vSluexhYnUmLL3B+3npk/6mdrtGhXMjOwbxt5u3U11042ge?=\n\t=?utf-8?q?aQr2FC1gABPz+X4wC0m61ZAPyZTZu6HQMSXEolMgDI615Cbd6cUNNk8OQaRCiDetf?=\n\t=?utf-8?q?aH1GWTkC/gHn54XQsbX2yoX609G48ioHZESibzZrG5Z5EaoDbEClYyiqs4u5QUiQT?=\n\t=?utf-8?q?KfyU/7MGkTgR/rSaDM96YAanJZgL9cay6MIrLrHPOMplX1VuyfIcPlAIcR77dAeJp?=\n\t=?utf-8?q?FJAOqHGZzdEWgyA+Xac3OOiZi82BXj9gIV5cBuwaZe9apt4ALvoE4D9ikQJYPPq1V?=\n\t=?utf-8?q?HpNHfkG/dy8GArsKGvU07H3rT5QuKsdh40e2mxZUSJkW/yQBri42MNUg/TE+FcgG2?=\n\t=?utf-8?q?6OJJ7gf25Qc6x/h/CoEW1FrwUilZwMCSozZhd2yqkpevNckNftD4C0uysvbqfdU6Y?=\n\t=?utf-8?q?aaE1N9VtVHI2yRHUB1mup4K9YM2aWd0M14tk0bknacUM+iaOIH4scPhmAHKP4VyLx?=\n\t=?utf-8?q?2QYdEDNJR/U81JsN1bQOE6iZAZgdMGqCB+llqev2Xlzuu72eYOOVMfoFJmDZP5jHH?=\n\t=?utf-8?q?rsDrgomi+VYQSL5xCyyelOfgpeBaalyPzdu/xP7YfaeAL/v5RNrWNKcpxdWsRh6Xe?=\n\t=?utf-8?q?kz3xNo8DjbcX8rmDZt7vSshCtl7H6K2ITV3j4u2pq0D1h76F+PtqUTUB/LBkLrKSV?=\n\t=?utf-8?q?BBIqMalqHsmCMQYBYU9QGs6zy8v+WcZDWs/jacvHATaSIKzVcHujWS5vBYXAUwNQ0?=\n\t=?utf-8?q?28AXbly1ZXrTGPIEl/Tw7M9Iqd+f5iGkyyG2JFQ7piHM/0I+FKb7/UBJpycLwQZK5?=\n\t=?utf-8?q?R6BzrtyfTkTu0r3sAju2UAVy7FR5tdb22KJaf9Tug/eaAeJBqmjWZad581Q4Pdllu?=\n\t=?utf-8?q?mpdhvbukLxAimVh4uRMxi9QKjLZ13ga+Zm/TQH2cBLT/OE/P3ANiHcA8O+ie28M9f?=\n\t=?utf-8?q?NiFK0+/RxlYg4WRW4PFz/ZlxFNbIULmaMHu4gc5oSSa8vZPn8W90PNGzF6yZWZ+KW?=\n\t=?utf-8?q?ISxeyr3yMJHSKQq/Di2joXim9h68M9q9EbX/Z+pcxILE3ZkV1YJNUAjJkOlyK4Ioh?=\n\t=?utf-8?q?IqQhBLRLvjj1lqQysJ4xddFzA+l0xgi0c3UkpuOMg1nnis6xznZhWM6KWX2saRvoc?=\n\t=?utf-8?q?0VDj/v6xdPQbKT712u/7tbzqxQqoLader5hCe3caplv1DyWQU+XxbZn3iCFSyQSbr?=\n\t=?utf-8?q?p7SHzo6tyRgnEFMz3WFQ+78kLSzo6N4XlZYVDW+GYSgVjEoSDEPOBnkj03RepC/6U?=\n\t=?utf-8?q?oXWJlg6mFy3F/76EBriHk1OCq1GS+6gFQ6UO37zB0dUURM3tZk8PPDC1qwAV3CQiL?=\n\t=?utf-8?q?EFlcn/c8Pn4K79+owntTsqf0sjbhT7ktwuxy5kADdFxJh1PMo5EFjKHXr3Nb97Od+?=\n\t=?utf-8?q?oRA28WTseizTf1/Hpl+7IcAw9SjPyIBmuhIvVfzKX5BXQPVU5wCkajRmwtnFZWQaz?=\n\t=?utf-8?q?2gYbJGboWph0AOrtIpUvVGSkN28p8MxPyefNix1eJwJ/ykk345GLYgDkS04+Nq9J/?=\n\t=?utf-8?q?NBv8MLGQXHikOVUb9F0SIkR9TMs6Ad1hLsqP7yft5oJhIm4jrs1rBMRZJo1hkzZwg?=\n\t=?utf-8?q?mw0uQpnv+?=","X-Exchange-RoutingPolicyChecked":"\n P3yORNnqjSF1ytaKb78eDN1CtqNC6os9uEB5ckOu1cwCBe0Aa1UYn9EOTZ9yl9IM8ANKJ6rdaVNKy/fNciRcH8H+pnld9QnzCQaGIaiQR/kuX8VpSslOnmT78GgniQOi2dUnXH8xtxk4FJnG7v9bYx02IHLQHI1gusBY17tXm/FS2bBcoA+EDH1b+9xhP/5/u3bwMii3SP0K6fSksELELHkyfqIAn9bI7ydnQ6nEJdWUp4MjT2yp5seut2uc2fT8hrXXNvGRaAkqX6q3uz1xHnToB4Byt+hL+vnpPlBmxuLWS7JmHgIMu/SON0V+yizV4EhlhHTQnp4dl2oP3Fwl/A==","X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount":"1","X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0":"\n oyHn/T0kZn+DQJ4FvROFqTJ5BksWnDPM3vV4Ez6yC1Q3uMY4RgyEkxC1GvTPO2w8C+QluahVVkdruWMIX4Psk3XkZuM4zmt+8x8evAMSO/uGFa2n6i4mKc0yq7gbNL2WGbVCogjJYKgBqTaCPqt7taMHJad+ddTRydglTupB+NbzugnPmFcqpCaKo4d8swSiZDNAFJwHRcBzSp/iSIVPd6zmk4/wjGFEyb7JMdeiyhaDTujOxHhHWfacMeLWssgj7vsKandxTb1H8HyrwELooU5Ai1MQYKcvft1CSp3bLGrpfwMLLV2d0U0ZcnMsdxcaDobON/atDuQNMLC63bNHCB+++npXn97mXdURHKUW325DhVkvr3RzevpzQ5o+31GZ9elmuZnzwKMv39fssDn0o6i6qAvuhu9U2yaALZlJ37aZUOtj033NtshUNKwrVctzunAH4AORk6bPHCsLWMDUG7sbRLpewcq9YjASnZRHfwE4CIHVof9Dzmvm4fbLs1YzBm/G1E8U0kmeRBvT2D8KLW3uaIVh5nMvax7D12se/0ucQihOFAIJOjj33m3xp11MYnA2JwedzK+XuzK/F6Pu8bzvVK3B66pf9Ixjo/D9fIY=","X-OriginatorOrg":"oracle.com","X-MS-Exchange-CrossTenant-Network-Message-Id":"\n c9ff7e6b-64a8-45f1-2a08-08deab86e2e2","X-MS-Exchange-CrossTenant-AuthSource":"BLAPR10MB5041.namprd10.prod.outlook.com","X-MS-Exchange-CrossTenant-AuthAs":"Internal","X-MS-Exchange-CrossTenant-OriginalArrivalTime":"06 May 2026 15:48:15.6078 (UTC)","X-MS-Exchange-CrossTenant-FromEntityHeader":"Hosted","X-MS-Exchange-CrossTenant-Id":"4e2c6054-71cb-48f1-bd6c-3a9705aca71b","X-MS-Exchange-CrossTenant-MailboxType":"HOSTED","X-MS-Exchange-CrossTenant-UserPrincipalName":"\n 5/R0SkoV/M+wQjLwPUnABv54nBRwkMZwTAMkLEMGxQI71G61BY3yIG/N75lV5ck382gtoEhKiMYKBH33ZbT5YV1w42CdxfrildOTS34yMSI=","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"IA1PR10MB5899","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-06_01,2026-05-06_01,2025-10-01_01","X-Proofpoint-Spam-Details":"rule=notspam policy=default score=0 mlxlogscore=999\n adultscore=0 spamscore=0 phishscore=0\n suspectscore=0 mlxscore=0\n malwarescore=0 bulkscore=0 lowpriorityscore=0 classifier=spam adjust=0\n reason=mlx scancount=1 engine=8.19.0-2604200000 definitions=main-2605060155","X-Authority-Analysis":"v=2.4 cv=errvCIpX c=1 sm=1 tr=0 ts=69fb62c4 cx=c_pps\n a=OOZaFjgC48PWsiFpTAqLcw==:117 a=OOZaFjgC48PWsiFpTAqLcw==:17\n a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19\n a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10\n a=NGcC8JguVDcA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22\n a=jiCTI4zE5U7BLdzWsZGv:22 a=o5oIOnhZENCTenyL_yNV:22 a=KKAkSRfTAAAA:8\n a=psOqzFCevih4VJoPeC8A:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10\n a=cvBusfyB2V15izCimMoJ:22","X-Proofpoint-ORIG-GUID":"YH8CGiwh6Dz_3HlpjnRv_0xVAvkY1vhS","X-Proofpoint-Spam-Details-Enc":"AW1haW4tMjYwNTA2MDE1NSBTYWx0ZWRfX4hL7CERfv9WI\n ltFZQIzAlT2SuCLTnJtyEmdpCTgEEp4ur2XAS6d3qz67HikBy8lJcHF5kCUA8kTdW5F+515fpfc\n LR6mgV/+RUDYYYGtSbVDfynkExGsk9t5jkQtJToyG6fDMZ0f6WpQufv95VtSGkEZCERzm4GWP6+\n g4o3YiCEAd5WQJBDOU4nREMMNhwkLepJ3lfpCeuGCOYol6JWpArOXcA8tH/GKtQEYErV9yY6DE2\n 93uOD6n094ndVD+GjFmhYcUuucli8GNRx3BnPTWuVdsrOk0TSjDnWALoCNcxyH9TnujGkLVxez0\n lpv2w4MEzlcLkSalmZOxQAIINUCNXQEyO1ULO0ocvz03f4fVymABP3XiT0jNFlM29FjBVp4sjpH\n quQLoVwUKxSUVjgHQBemi3PNqw1baeUnkgvcFDgRfuo9U1IbqPLo0ajeKWpKaqDCoW6yqTtYx+g\n 7+qQ+AsR1ej0mtu8yBA==","X-Proofpoint-GUID":"YH8CGiwh6Dz_3HlpjnRv_0xVAvkY1vhS","Received-SPF":"pass client-ip=205.220.177.32;\n envelope-from=alejandro.j.jimenez@oracle.com; helo=mx0b-00069f02.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, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001,\n SPF_HELO_NONE=0.001, 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":3687244,"web_url":"http://patchwork.ozlabs.org/comment/3687244/","msgid":"<87bjesmr2h.fsf@draig.linaro.org>","list_archive_url":null,"date":"2026-05-06T16:38:14","subject":"Re: [RFC PATCH 05/10] .agents/skills: add qemu-build skill","submitter":{"id":39532,"url":"http://patchwork.ozlabs.org/api/people/39532/","name":"Alex Bennée","email":"alex.bennee@linaro.org"},"content":"Alejandro Jimenez <alejandro.j.jimenez@oracle.com> writes:\n\n> On 5/5/26 1:01 PM, Alex Bennée wrote:\n>> This provides basic instructions for building QEMU.\n>> \n>> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>\n>> ---\n>>  .agents/skills/qemu-build/SKILL.md | 50 ++++++++++++++++++++++++++++++\n>>  1 file changed, 50 insertions(+)\n>>  create mode 100644 .agents/skills/qemu-build/SKILL.md\n>> \n>> diff --git a/.agents/skills/qemu-build/SKILL.md b/.agents/skills/qemu-build/SKILL.md\n>> new file mode 100644\n>> index 00000000000..a78678ff632\n>> --- /dev/null\n>> +++ b/.agents/skills/qemu-build/SKILL.md\n>> @@ -0,0 +1,50 @@\n>> +---\n>> +name: qemu-build\n>> +description: Provides step-by-step instructions on configuring and\n>> building QEMU. You MUST trigger this skill whenever the user asks to\n>> build QEMU or debug build failures. It includes critical details on\n>> build directory reuse and spawning sub-agents.\n>> +license: GPL-2.0-or-later\n>> +---\n>> +\n>> +# Instructions\n>> +\n>> +## Examining and Re-using Build Directories\n>> +Before creating a new build directory, check if an existing one can be re-used. QEMU uses out-of-tree builds, typically in `build` or `builds/` sub-directories.\n>> +\n>> +1. **Check existing configs**: You can examine how an existing\n>> build directory was configured by checking its `config.log`. Run\n>> `head -n 2 builds/<dir>/config.log`. The second line typically\n>> contains the full `../configure` command line used.\n>> +2. **Re-use and Reconfigure**: You have latitude to re-use existing\n>> directories when appropriate (e.g., `builds/debug` which is a\n>> general-purpose debug directory for whatever is currently going on).\n>> If an existing directory has the right flags (like debug/sanitizers)\n>> but the wrong target list, you can reconfigure it to keep the same\n>> config but change the `--target-list`:\n>> +   ```bash\n>> +   cd builds/debug\n>> +   # Check the old config.log, then re-run configure with the new target-list\n>> +   ../../configure <old-flags> --target-list=<new-targets>\n>> +   ```\n>> +\n>> +## Launching Builds\n>> +**Crucial**: You MUST NEVER run builds directly in the main agent context. You MUST ALWAYS launch them by spawning a sub-agent using the `eca__spawn_agent` tool.\n>\n> \"ECA heritage\" showing with the eca__spawn_agent mention. Ending the\n> sentence after \"sub-agent\" is likely enough for the model to do the right\n> thing based on its available tools?\n>\n>> +Always use the `qemu-helper-agent` for these tasks.\n\nAnd this is on my personal config as well ;-)\n\nI have added a rule to my config:\n\n  ---\n  paths: \n    - \"/home/alex/lsrc/qemu.git/**\"\n  ---\n\n  There is a qemu-helper-agent for use in QEMU related tasks.\n  Use `env GITLAB_TOKEN=$(pass gitlab-api)` to pass the auth token for glab actions.\n\nAnd cleaned up the references from the project agent skills.\n\n>> +Pass the specific build commands, along with the required working directory, in the `task` argument. Give the subagent explicit instructions on what to verify and what to report back to you.\n>> +For example: `task: \"Navigate to builds/debug and run ninja. If it fails, report the exact compiler errors.\"`\n>> +\n>> +## Configuring a New Build\n>> +If no suitable build directory exists, create a new one.\n>> +\n>> +1. **Create build directory**: `mkdir -p builds/test-target; cd builds/test-target`\n>> +2. **Basic Configure**: `../../configure --target-list=[list of targets]`\n>> +   - Common targets: `x86_64-softmmu`, `aarch64-softmmu`, `riscv64-softmmu`, `x86_64-linux-user`.\n>> +3. **Common Options**:\n>> +   - `--enable-debug-info`: Include symbols.\n>> +   - `--enable-debug`: Enable assertions.\n>> +4. **Sanitizers**:\n>> +   - `--enable-asan`: Address Sanitizer.\n>> +   - `--enable-tsan`: Thread Sanitizer.\n>> +   - `--enable-ubsan`: Undefined Behavior Sanitizer.\n>> +\n>> +## Building\n>> +**Important**: Always re-run the build after making changes to the source code.\n>> +\n>> +## Reporting Results\n>> +**Crucial**: After completing the build task, provide a concise summary of the results to the calling agent.\n>> +1. **Summary**: State whether the build passed or failed.\n>> +2. **Failure Excerpts**: If the build fails, include relevant excerpts from the logs (e.g., compiler errors).\n>> +3. **Full Paths**: Always provide the **absolute file paths** to the full logs for further inspection.\n>> +\n>> +## Debugging and Environment\n>> +- **Verbose**: `V=1` for detailed output.","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=zrpzcO0F;\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 4g9h0v4Vsbz1yJV\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 07 May 2026 02:39:09 +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 1wKfGT-0001P0-Uj; Wed, 06 May 2026 12:38:25 -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 <alex.bennee@linaro.org>)\n id 1wKfGQ-0001Oq-Kv\n for qemu-devel@nongnu.org; Wed, 06 May 2026 12:38:22 -0400","from mail-wm1-x336.google.com ([2a00:1450:4864:20::336])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)\n (Exim 4.90_1) (envelope-from <alex.bennee@linaro.org>)\n id 1wKfGN-0004J2-8R\n for qemu-devel@nongnu.org; Wed, 06 May 2026 12:38:22 -0400","by mail-wm1-x336.google.com with SMTP id\n 5b1f17b1804b1-488b8bc6bc9so42582025e9.3\n for <qemu-devel@nongnu.org>; Wed, 06 May 2026 09:38:18 -0700 (PDT)","from draig.lan ([185.124.0.195]) by smtp.gmail.com with ESMTPSA id\n 5b1f17b1804b1-48e538aaa0fsm76111035e9.7.2026.05.06.09.38.15\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Wed, 06 May 2026 09:38:15 -0700 (PDT)","from draig (localhost [IPv6:::1])\n by draig.lan (Postfix) with ESMTP id 771CB5F7EB;\n Wed, 06 May 2026 17:38:14 +0100 (BST)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=linaro.org; s=google; t=1778085496; x=1778690296; darn=nongnu.org;\n h=content-transfer-encoding:mime-version:message-id:date:user-agent\n :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date\n :message-id:reply-to;\n bh=fez8zc4io7WxThJok/7BAm8YXKX1qxIKYOpELmIJyyI=;\n b=zrpzcO0FuZqgk12oASJw0SJuqKkJnXrBRATGL5VJI9gwCcNi3eAnZODctfjdF7SFNg\n uwWIXZvpdvLzdMLQcZhyYKQnCXfs5af2gQ7TCBL1nOFgeg7NAv0zTr1OE0cSFSlQcDEa\n rC7+9gsFz42yVatmkNOk9BnSWb+RKMn41tzDDTmS98pupRamAycEKxtJue+vzovLVkU1\n IGyrn7chjNtvjWQKajEwkqdOQ9mXla3qjPCAZuIe79guC1Br7CrZug9YbUMkVgksx6TC\n hxiPpeB55YsT2UNkLJF+wXXAcQsvQ8R+ddhEhmIxM8EHJuln5St9VErvrlUItXPJmSy5\n DXsw==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1778085496; x=1778690296;\n h=content-transfer-encoding:mime-version:message-id:date:user-agent\n :references:in-reply-to:subject:cc:to:from:x-gm-gg\n :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;\n bh=fez8zc4io7WxThJok/7BAm8YXKX1qxIKYOpELmIJyyI=;\n b=Q+4PCFWfmL289dFjj0bq84TdQKMOwZNXE/ic2i80fHvlODXk1JUz/tU5LSIX4Ae7Tb\n ka5JHqMiIAyhLcjq/Y744RR5W0plXBI0XzQ4NtZW+SO4xonE3k8Pfdiqb557DBg3lWSQ\n p9USorj8DKmaURcbXZQUDg7Iv8a9JeCtuvWJFp2ayuB8cdKtY4ACQASBALgzKKzsSioc\n ALhofD59qg1jJiyd5DFeqDANmSEyAKQNx/MS7YmUaDGP1t8ERfLkTU8UKnZuM7Sp3MFO\n afm0NQyEQyTOPAk2gOqW5ezaQOQcbfN7DwS2Bz0tJhZnMrqpRE0GJ4nRfz/2YftoMj2J\n aZBw==","X-Gm-Message-State":"AOJu0YzbT4W//dPVk8sNIRCcTkfg6AfrGKYSLva2kojkKuuosNGNADih\n I8HPNBDBMuFJHq2JxI4ydsHNA/ZOoHsDOQDFqkZO8AW2v11lxRMUdkXrNPPVuvuyc3X3PXnwFH4\n 2nf8Oz8M=","X-Gm-Gg":"AeBDieuOr0uVkAnKqlM6u++fhDHFvCVKraWupQNFTJmhUaVWTNye1bvEA+QXtvT3laY\n n6teTpwTwclelnl995pk73M5cp7v66fzdS0JYWitStxINlM7i4H2xlLCmCG+ND9XuVLBYWig+Jb\n JJTj+i+skiijjXuZkTx6WIYQvXyVSzkTxEtruWcGXnJ8BLu4h4zxMhSkGnLwbk3fc71mT80NT6b\n FepwcybjfwoFM9PYhE+TdKzLbjRbl7YrBU8g8ZrFn4iqjiTobSDn3TmktD7cJDAznmyqEP+3xMH\n 2dXrTfbzn8GUldviHLbvvHyLO5qHj9yezTDmWGxMQqOWs2kHAWwcB7b8WlE1dLTzOH4gBl3gX9L\n agsxAA7Aym0xdm/LF6vdSh5rLJ72sn8eCHFp+aBeNlWVIPZzEK/WUYQDddOrpCy6SU3rAeehXI0\n tgKlg5/2iNk7vhiDJfMpHY64qtipahRQjKlg==","X-Received":"by 2002:a05:600d:8408:b0:48a:58e1:6d17 with SMTP id\n 5b1f17b1804b1-48e52bd4f17mr50047375e9.20.1778085496354;\n Wed, 06 May 2026 09:38:16 -0700 (PDT)","From":"=?utf-8?q?Alex_Benn=C3=A9e?= <alex.bennee@linaro.org>","To":"Alejandro Jimenez <alejandro.j.jimenez@oracle.com>","Cc":"qemu-devel@nongnu.org","Subject":"Re: [RFC PATCH 05/10] .agents/skills: add qemu-build skill","In-Reply-To":"<8685c75f-09eb-4c05-a109-f16eca871999@oracle.com> (Alejandro\n Jimenez's message of \"Wed, 6 May 2026 11:48:12 -0400\")","References":"<20260505170105.228162-1-alex.bennee@linaro.org>\n <20260505170105.228162-6-alex.bennee@linaro.org>\n <8685c75f-09eb-4c05-a109-f16eca871999@oracle.com>","User-Agent":"mu4e 1.14.1; emacs 30.1","Date":"Wed, 06 May 2026 17:38:14 +0100","Message-ID":"<87bjesmr2h.fsf@draig.linaro.org>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Transfer-Encoding":"quoted-printable","Received-SPF":"pass client-ip=2a00:1450:4864:20::336;\n envelope-from=alex.bennee@linaro.org; helo=mail-wm1-x336.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"}}]