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: Wentong Wu <wentong.wu@intel.com>
This commit is contained in:
parent
9ca0d5e18b
commit
ed6ce291ba
1 changed files with 8 additions and 3 deletions
|
@ -331,9 +331,14 @@ def analyze_die_array(die):
|
|||
elements.append(ub.value + 1)
|
||||
|
||||
if not elements:
|
||||
return
|
||||
|
||||
type_env[die.offset] = ArrayType(die.offset, elements, type_offset)
|
||||
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)
|
||||
|
||||
|
||||
def analyze_typedef(die):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue