From patchwork Sun Aug 30 14:28:27 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: AdrianF X-Patchwork-Id: 2837 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 18E9CC624A2 for ; Sun, 30 Aug 2026 14:29:54 +0000 (UTC) Received: from mta-64-225.siemens.flowmailer.net (mta-64-225.siemens.flowmailer.net [185.136.64.225]) by mx.groups.io with SMTP id smtpd.msgproc01-g2.9455.1788100183423819904 for ; Sun, 30 Aug 2026 07:29:44 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=adrian.freihofer@siemens.com header.s=fm2 header.b=HJE5QZEI; spf=pass (domain: rts-flowmailer.siemens.com, ip: 185.136.64.225, mailfrom: fm-1329275-20260830142940a0e944849800020774-gq7v4r@rts-flowmailer.siemens.com) Received: by mta-64-225.siemens.flowmailer.net with ESMTPSA id 20260830142940a0e944849800020774 for ; Sun, 30 Aug 2026 16:29:40 +0200 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; s=fm2; d=siemens.com; i=adrian.freihofer@siemens.com; h=Date:From:Subject:To:Message-ID:MIME-Version:Content-Type:Content-Transfer-Encoding:Cc; bh=sPpmaNEsqxA5ISdP/PsNJK2hz1e/T0hPOqcbMbBRr8U=; b=HJE5QZEIO/pJJ9TWFZrWgps4ZLHZwxQmoTGf9jZCzmSrIexQ1RNZZ2Lys+Es2VcT6oThSJ 6QozY2F2RYzOlq+K1tUb2r6ET7aMA/VZMqd3G9x/WoN2Wvrl9/x5F2VS8eifHcuNAwbpEKsO Sfqg7wLbcxWXhl3Ow7Itf0kz62O6RmceHuV65sxIsLTurMrhfqL26KHPnkAQydtzeRyL5iS6 WaWftYFDkxlMbL4+8HP3S2oU10wyEc9eaWmPDRGksPoptIbt9SDZyX3t7FRgg3wXUZX5wf1N IqNTzgZllqnZypNDqzA9w8Ejsv1gZYgY+SJb6yYbFBO/LwLuLAUqhqog==; From: AdrianF To: openembedded-core@lists.openembedded.org Cc: Adrian Freihofer Subject: [PATCH 00/24] devtool: ide-sdk: NFS/slirp support, deploy filtering, and robustness fixes Date: Sun, 30 Aug 2026 16:28:27 +0200 Message-ID: <20260830142922.17241-1-adrian.freihofer@siemens.com> MIME-Version: 1.0 X-Flowmailer-Platform: Siemens Feedback-ID: 519:519-1329275:519-21489:flowmailer List-Id: X-Webhook-Received: from 45-33-107-173.ip.linodeusercontent.com [45.33.107.173] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Sun, 30 Aug 2026 14:29:54 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/244675 From: Adrian Freihofer This series improves `devtool ide-sdk` and its underlying deploy-target infrastructure: - Adds `--nfs` rootfs debugging support (`rootfs`/`rootfs-dbg`), allowing the target to boot from a combined companion `rootfs-dbg` — opening up possibilities such as code coverage and profiling (e.g. `perf`) and other tools that need debug symbols present on the target. - Runs `do_install` through BitBake instead of shelling out, using a new tinfoil prepared-task runner — much better functionally and also much quicker than before. Requires the latest bitbake master (adds `Tinfoil.run_prepared_task`). - Adds `runqemu` slirp networking support for ide-sdk (with auto port-forwarding and automatic SSH host-key check disabling for loopback targets). - Adds `--package`/`--file-glob` deploy filters to `devtool deploy-target`, plus support for deploying directly into a local rootfs path (e.g. an NFS export), refactoring the ssh deployment path into its own function. - Refactors `runqemu-extract-sdk` and `runqemu-export-rootfs` into Python. - Various ide-sdk fixes: auto-write image debug settings to the bbappend, dedupe `solib_search_path` entries, VSCode IntelliSense for rootfs-dbg sources, and cpp-example breakpoint/attach fixes. Each feature/fix is covered by a corresponding oe-selftest addition. A documentation update covering these changes will be sent as a follow-up series shortly. Adrian Freihofer (24): runqemu-extract-sdk: set PSEUDO_INCLUDE_PATHS for the extraction devtool: ide-sdk: dedupe solib_search_path entries devtool: ide-sdk: VSCode IntelliSense for rootfs-dbg sources cpp-example: fix stuck breakpoints when attaching and daemonize properly devtool: ide-sdk: auto-write image debug settings to bbappend oe-selftest: devtool ide-sdk: adapt tests for auto-written image debug settings oeqa: QemuTarget: set use_slirp when slirp is in runqemuparams devtool: ide-sdk: support runqemu slirp devtool: ide-sdk: auto-disable ssh host key checking for loopback targets oe-selftest: devtool ide-sdk: add slirp networking test devtool: deploy-target: add --package/--file-glob filters oe-selftest: devtool deploy-target: test --package/--file-glob filters devtool: ide-sdk: forward --package/--file-glob deploy filters oe-selftest: devtool ide-sdk: cover --package filters runqemu-extract-sdk: refactor in Python runqemu-export-rootfs: refactor in Python devtool: deploy: split ssh deployment into a separate function devtool: deploy-target: allow deploying directly into a local rootfs oe-selftest: devtool deploy-target: test deploying into a local rootfs path oe-selftest: tinfoil: test prepared task runner devtool: ide-sdk: run do_install through BitBake oe-selftest: devtool ide-sdk: test install task devtool: ide-sdk: support NFS rootfs oe-selftest: devtool ide-sdk: test NFS debug rootfs .../recipes-test/cpp/cmake-example.inc | 1 + .../recipes-test/cpp/cpp-example.inc | 4 + .../recipes-test/cpp/files/CMakeLists.txt | 6 + .../recipes-test/cpp/files/cpp-example.cpp | 91 ++- .../recipes-test/cpp/files/cpp-example.init | 10 +- .../recipes-test/cpp/files/daemonize.cpp | 57 ++ .../recipes-test/cpp/files/daemonize.hpp | 27 + .../recipes-test/cpp/files/meson.build | 9 +- .../recipes-test/cpp/files/meson.options | 2 + .../recipes-test/cpp/meson-example.inc | 1 + .../pseudo-pyc-test/pseudo-pyc-test.bb | 45 ++ meta/lib/oeqa/selftest/cases/devtool.py | 626 ++++++++++++++---- meta/lib/oeqa/selftest/cases/tinfoil.py | 60 ++ meta/lib/oeqa/targetcontrol.py | 23 +- .../qemu/nativesdk-qemu-helper_1.0.bb | 3 + scripts/lib/devtool/deploy.py | 389 +++++++++-- scripts/lib/devtool/ide_plugins/__init__.py | 41 +- scripts/lib/devtool/ide_plugins/ide_code.py | 93 ++- scripts/lib/devtool/ide_plugins/ide_none.py | 8 +- scripts/lib/devtool/ide_sdk.py | 607 ++++++++++++++--- scripts/lib/runqemu_utils.py | 246 +++++++ scripts/runqemu-export-rootfs | 126 +--- scripts/runqemu-extract-sdk | 101 +-- 23 files changed, 2047 insertions(+), 529 deletions(-) create mode 100644 meta-selftest/recipes-test/cpp/files/daemonize.cpp create mode 100644 meta-selftest/recipes-test/cpp/files/daemonize.hpp create mode 100644 scripts/lib/runqemu_utils.py