Commit ed6ce291 authored by Wentong Wu's avatar Wentong Wu Committed by Anas Nashif
Browse files

scripts: elf_helper.py: fix stack declared K_THREAD_STACK_EXTERN



If a stack is declared with K_THREAD_STACK_EXTERN first, analyze array
in elf_helper.py will ignore this declaration which will be referenced
by the actual instances via the tag DW_AT_specification, so that this
stack can't be detected by the kernel object detection mechanism, and
this will cause userspace not work.

Fixes: #16760.

Signed-off-by: default avatarWentong Wu <wentong.wu@intel.com>
parent 9ca0d5e1
Loading
Loading
Loading
Loading
+8 −3
Original line number Diff line number Diff line
@@ -331,8 +331,13 @@ def analyze_die_array(die):
        elements.append(ub.value + 1)

    if not elements:
        return

        if type_offset in type_env.keys():
            mt = type_env[type_offset]
            if mt.has_kobject():
                if isinstance(mt, KobjectType) and mt.name == STACK_TYPE:
                    elements.append(1)
                    type_env[die.offset] = ArrayType(die.offset, elements, type_offset)
    else:
        type_env[die.offset] = ArrayType(die.offset, elements, type_offset)