Skip to content

Commit

Permalink
scripts: elf_helper.py: fix stack declared K_THREAD_STACK_EXTERN
Browse files Browse the repository at this point in the history
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: zephyrproject-rtos#16760.

Signed-off-by: Wentong Wu <[email protected]>
  • Loading branch information
wentongwu authored and nashif committed Aug 29, 2019
1 parent 9ca0d5e commit ed6ce29
Showing 1 changed file with 8 additions and 3 deletions.
11 changes: 8 additions & 3 deletions scripts/elf_helper.py
Original file line number Diff line number Diff line change
Expand Up @@ -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):
Expand Down

0 comments on commit ed6ce29

Please sign in to comment.