Skip to content

Commit

Permalink
cmake/linker_script: Fix cmake linker scripts to define _end
Browse files Browse the repository at this point in the history
The generated scripts don't include a definition for any symbol indicating
the end of statically allocated memory (such as "_end"). Add a shared cmake
fragment, ram-end.cmake, which contains the necessary instructions to
define _end and z_mapped_end consistently to align with the other sample
linker scripts.

Signed-off-by: Keith Packard <keithp@keithp.com>
  • Loading branch information
keith-packard authored and fabiobaltieri committed Jun 28, 2023
1 parent 710422e commit bbec614
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 0 deletions.
2 changes: 2 additions & 0 deletions cmake/linker_script/arm/linker.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,8 @@ if(NOT CONFIG_USERSPACE)
zephyr_linker_section_configure(SECTION .noinit INPUT ".kernel_noinit.*")
endif()

include(${COMMON_ZEPHYR_LINKER_DIR}/ram-end.cmake)

zephyr_linker_symbol(OBJECT REGION_RAM SYMBOL __kernel_ram_start EXPR "(@__bss_start@)")
zephyr_linker_symbol(OBJECT REGION_RAM SYMBOL __kernel_ram_end EXPR "(${RAM_ADDR} + ${RAM_SIZE})")
zephyr_linker_symbol(OBJECT REGION_RAM SYMBOL __kernel_ram_size EXPR "(@__kernel_ram_end@ - @__bss_start@)")
Expand Down
7 changes: 7 additions & 0 deletions cmake/linker_script/common/ram-end.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
zephyr_linker_section(NAME .last_ram_section VMA RAM LMA RAM_REGION TYPE BSS)
zephyr_linker_section_configure(
SECTION .last_ram_section
INPUT ""
SYMBOLS _end z_mapped_end
KEEP
)

0 comments on commit bbec614

Please sign in to comment.