On Mon, 2026-10-26 at 09:55 +0100, Enguerrand de Ribaucourt via
lists.openembedded.org wrote:
> Use Cargo RUSTFLAGS to populate reverse debug mappings and recognize
> Rust
> --remap-path-prefix alongside the existing GCC prefix-map options.
> The
> following LLDB source-map change depends on these normalized
> mappings.
>
> AI-Generated: Uses GitHub Copilot
> Signed-off-by: Enguerrand de Ribaucourt
> <[email protected]>
> ---
> scripts/lib/devtool/ide_sdk.py | 14 +++++++++++---
> 1 file changed, 11 insertions(+), 3 deletions(-)
>
> diff --git a/scripts/lib/devtool/ide_sdk.py
> b/scripts/lib/devtool/ide_sdk.py
> index 44429e80b0..f22a98cedf 100755
> --- a/scripts/lib/devtool/ide_sdk.py
> +++ b/scripts/lib/devtool/ide_sdk.py
> @@ -1140,6 +1140,9 @@ class RecipeModified:
> if self.build_tool is BuildTool.KERNEL_MODULE:
> self.reverse_debug_prefix_map =
> self._init_reverse_debug_prefix_map(
> self.kernel_cc)
> + elif self.build_tool is BuildTool.CARGO:
> + self.reverse_debug_prefix_map =
> self._init_reverse_debug_prefix_map(
> + self.cargo_rustflags)
> else:
> self.reverse_debug_prefix_map =
> self._init_reverse_debug_prefix_map(
> recipe_d.getVar('DEBUG_PREFIX_MAP'))
> @@ -1292,15 +1295,20 @@ class RecipeModified:
> return ':'.join(self.solib_search_path(image))
>
> def _init_reverse_debug_prefix_map(self, debug_prefix_map):
> - """Parses GCC map options and returns a mapping of target to
> host paths.
> + """Parses compiler map options and returns a mapping of
> target to host paths.
>
> - This function scans a string containing GCC options such as
> -fdebug-prefix-map,
> + This function scans a string containing compiler options
> such as -fdebug-prefix-map,
> -fmacro-prefix-map, and -ffile-prefix-map (in both '--option
> value' and '--option=value'
> forms), extracting all mappings from target paths (used in
> debug info) to host source
> paths. If multiple mappings for the same target path are
> found, the most suitable
> host path is selected (preferring 'sources' over 'build'
> directories).
> """
> - prefixes = ("-fdebug-prefix-map", "-fmacro-prefix-map", "-
> ffile-prefix-map")
> + prefixes = (
> + "-fdebug-prefix-map",
> + "-fmacro-prefix-map",
> + "-ffile-prefix-map",
> + "--remap-path-prefix",
mapping.split('=', 1) splits --remap-path-prefix mappings on the first
=, but rustc splits on the last. It only matters for paths containing
=; .
Regards,
Adrian
> + )
> all_mappings = {}
> args = shlex.split(debug_prefix_map)
> i = 0
>
>
>
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#248852):
https://lists.openembedded.org/g/openembedded-core/message/248852
Mute This Topic: https://lists.openembedded.org/mt/121938793/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-