if(CONFIG_BUILD_OUTPUT_ADJUST_LMA)
math(EXPR adjustment "${CONFIG_BUILD_OUTPUT_ADJUST_LMA}" OUTPUT_FORMAT DECIMAL)
# Компактный однострочный Python-скрипт (разделен через ';'), безопасный для Ninja
set(PY_LMA_FILTER "import sys, subprocess; elf=sys.argv[1]; adj=sys.argv[2]; bin_obj=sys.argv[3]; res=subprocess.run(['arm-zephyr-eabi-readelf', '-S', elf], capture_output=True, text=True); lma_args=[]; lines=res.stdout.splitlines();\nfor l in lines:\n p=l.split()\n if len(p)>=4 and p[3].startswith('8'):\n sec=p[1].replace('[','').replace(']','')\n if 'bss' not in sec and 'noinit' not in sec:\n lma_args.extend(['--change-section-lma', f'{sec}+{adj}'])\nif lma_args: subprocess.run([bin_obj] + lma_args + [elf, elf], check=True)")
list(APPEND
post_build_commands
COMMAND ${PYTHON_EXECUTABLE} -c "${PY_LMA_FILTER}"
${PROJECT_BINARY_DIR}/${KERNEL_ELF_NAME}
${adjustment}
$<TARGET_PROPERTY:bintools,elfconvert_command>
)
endif()