# CMake script to fix linker script after build # This script modifies sections.ld to add 64KB alignment for both appdesc and rodata string(REPLACE "\\" "/" CMAKE_BINARY_DIR "${CMAKE_BINARY_DIR}") set(SECTIONS_LD "${CMAKE_BINARY_DIR}/esp-idf/esp_system/ld/sections.ld") if(EXISTS ${SECTIONS_LD}) file(READ ${SECTIONS_LD} CONTENT) # Check if the appdesc 64KB alignment fix is already applied if(NOT CONTENT MATCHES "\\.flash\\.appdesc.*\\}.*default_rodata_seg.*\\n.*\\. = ALIGN\\(0x10000\\)") # Add 64KB alignment after .flash.appdesc section ends string(REGEX REPLACE "(\\*\\(\\.rodata_custom_desc.*\\.\\*\\).*\\} >default_rodata_seg)" "\\1\n . = ALIGN(0x10000);" NEW_CONTENT "${CONTENT}") file(WRITE ${SECTIONS_LD} "${NEW_CONTENT}") message(STATUS "Applied linker script fix: added 64KB alignment after appdesc") else() message(STATUS "Linker script fix already applied") endif() else() message(WARNING "sections.ld not found at ${SECTIONS_LD}") endif()