Openembedded Core Discussions
 help / color / mirror / Atom feed
* [PATCH 00/14] devtool ide-sdk: clang and lldb support
@ 2026-08-02 19:52 AdrianF
  2026-08-02 19:52 ` [PATCH 01/14] qemuboot: make do_write_qemuboot_conf a standalone sstate task AdrianF
                   ` (14 more replies)
  0 siblings, 15 replies; 17+ messages in thread
From: AdrianF @ 2026-08-02 19:52 UTC (permalink / raw)
  To: openembedded-core; +Cc: Adrian Freihofer

From: Adrian Freihofer <adrian.freihofer@siemens.com>

This series adds clang toolchain support to devtool ide-sdk. LLDB is
part of the same LLVM project as clang and is the more natural debugger
pairing for it (much like GDB pairs with gcc), so ide-sdk now picks LLDB
as the debugger whenever the recipe is built with clang, while
continuing to use GDB for gcc-built recipes as before. The series also
significantly extends oe-selftest coverage for both debugging paths
(ide=code and ide=none).

Highlights:
 - Introduce a debugger back-end abstraction in ide-sdk so GDB and LLDB
   can share the common ide=code/ide=none plumbing, and select LLDB
   automatically when the recipe's toolchain is clang.
 - Add LLDB support for the clang toolchain, for both ide=code
   (lldb-server platform mode + CodeLLDB launch/task config) and ide=none
   (generated shell scripts).
 - Fix a handful of pre-existing ide-sdk issues found along the way:
   waiting for the gdbserver port before returning, a duplicate -p flag in
   _target_ssh_args, $@ getting overwritten by `set` in the
   install_and_deploy script, and meson compile_commands.json generation.
 - Refactor the meta-selftest cpp debugging examples into shared .inc
   files with clang variants, and add real, end-to-end debug session
   coverage (breakpoints in the executable, a library and a header-only
   inline function) for GDB (meson) and LLDB (clang, both ide=code and
   ide=none), including a recompile/redeploy cycle.

For now the debugger is selected purely based on the recipe's
TOOLCHAIN (gcc -> GDB, clang -> LLDB). Other combinations, e.g. gcc for
compiling with clang-tidy for static analysis, or support for the VSCode
clangd plugin are not covered yet but could be supported in the future
by making the debugger selection more independent from the compiler
choice.

Adrian Freihofer (14):
  qemuboot: make do_write_qemuboot_conf a standalone sstate task
  oe-selftest: devtool: use stat for reading user/group names in ide-sdk
    tests
  devtool: ide-sdk: fix duplicate -p flag in _target_ssh_args
  devtool: ide-sdk: fix $@ overwritten by set in install_and_deploy
    script
  devtool: ide-sdk: fix meson compile_commands.json
  oe-selftest: devtool ide-sdk: cover breakpoints in exe, header and
    library
  oe-selftest: devtool ide-sdk: add real debug coverage for meson+code
  devtool: ide-sdk debugger back-end abstraction
  devtool: ide-sdk: wait for gdbserver port before returning
  devtool: ide-sdk add LLDB support for clang toolchain
  devtool: ide-sdk: add LLDB support for ide=none (clang toolchain)
  meta-selftest: refactor cpp examples into .inc files and add clang
    variants
  oe-selftest: devtool ide-sdk: add clang/LLDB test
  oe-selftest: devtool ide-sdk: add test for ide=none LLDB/clang support

 .../recipes-test/cpp/cmake-example-clang.bb   |  13 +
 .../recipes-test/cpp/cmake-example.bb         |  20 +-
 .../recipes-test/cpp/cmake-example.inc        |  29 +
 .../recipes-test/cpp/cmake-example/run-ptest  |  10 -
 .../recipes-test/cpp/cpp-example.inc          |  20 +-
 .../recipes-test/cpp/files/CMakeLists.txt     |  35 +-
 .../cpp/files/cpp-example-lib.hpp             |  10 +
 .../recipes-test/cpp/files/cpp-example.cpp    |   4 +
 .../recipes-test/cpp/files/meson.build        |  17 +-
 .../recipes-test/cpp/files/meson.options      |   6 +
 .../cpp/{meson-example => files}/run-ptest    |   4 +-
 .../recipes-test/cpp/meson-example-clang.bb   |  13 +
 .../recipes-test/cpp/meson-example.bb         |  24 +-
 .../recipes-test/cpp/meson-example.inc        |  36 +
 meta/classes-recipe/qemuboot.bbclass          |  19 +-
 meta/lib/oeqa/selftest/cases/devtool.py       | 937 ++++++++++++++++--
 scripts/lib/devtool/ide_plugins/__init__.py   | 262 +++--
 scripts/lib/devtool/ide_plugins/ide_code.py   | 401 ++++++--
 scripts/lib/devtool/ide_plugins/ide_none.py   | 188 +++-
 scripts/lib/devtool/ide_sdk.py                | 206 +++-
 20 files changed, 1871 insertions(+), 383 deletions(-)
 create mode 100644 meta-selftest/recipes-test/cpp/cmake-example-clang.bb
 create mode 100644 meta-selftest/recipes-test/cpp/cmake-example.inc
 delete mode 100644 meta-selftest/recipes-test/cpp/cmake-example/run-ptest
 rename meta-selftest/recipes-test/cpp/{meson-example => files}/run-ptest (51%)
 create mode 100644 meta-selftest/recipes-test/cpp/meson-example-clang.bb
 create mode 100644 meta-selftest/recipes-test/cpp/meson-example.inc

-- 
2.55.0



^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2026-08-03  8:01 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-02 19:52 [PATCH 00/14] devtool ide-sdk: clang and lldb support AdrianF
2026-08-02 19:52 ` [PATCH 01/14] qemuboot: make do_write_qemuboot_conf a standalone sstate task AdrianF
2026-08-02 21:16   ` [OE-core] " Richard Purdie
2026-08-02 19:52 ` [PATCH 02/14] oe-selftest: devtool: use stat for reading user/group names in ide-sdk tests AdrianF
2026-08-02 19:52 ` [PATCH 03/14] devtool: ide-sdk: fix duplicate -p flag in _target_ssh_args AdrianF
2026-08-02 19:52 ` [PATCH 04/14] devtool: ide-sdk: fix $@ overwritten by set in install_and_deploy script AdrianF
2026-08-02 19:52 ` [PATCH 05/14] devtool: ide-sdk: fix meson compile_commands.json AdrianF
2026-08-02 19:52 ` [PATCH 06/14] oe-selftest: devtool ide-sdk: cover breakpoints in exe, header and library AdrianF
2026-08-02 19:52 ` [PATCH 07/14] oe-selftest: devtool ide-sdk: add real debug coverage for meson+code AdrianF
2026-08-02 19:52 ` [PATCH 08/14] devtool: ide-sdk debugger back-end abstraction AdrianF
2026-08-02 19:52 ` [PATCH 09/14] devtool: ide-sdk: wait for gdbserver port before returning AdrianF
2026-08-02 19:52 ` [PATCH 10/14] devtool: ide-sdk add LLDB support for clang toolchain AdrianF
2026-08-02 19:52 ` [PATCH 11/14] devtool: ide-sdk: add LLDB support for ide=none (clang toolchain) AdrianF
2026-08-02 19:52 ` [PATCH 12/14] meta-selftest: refactor cpp examples into .inc files and add clang variants AdrianF
2026-08-02 19:53 ` [PATCH 13/14] oe-selftest: devtool ide-sdk: add clang/LLDB test AdrianF
2026-08-02 19:53 ` [PATCH 14/14] oe-selftest: devtool ide-sdk: add test for ide=none LLDB/clang support AdrianF
2026-08-03  8:01 ` [OE-core] [PATCH 00/14] devtool ide-sdk: clang and lldb support Richard Purdie

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox