linker: align _image_rodata and _image_rom start/end/size linker symbols

Cleanup and preparation commit for linker script generator.

Zephyr linker scripts provides start and end symbols for each larger
areas in the linker script.

The symbols _image_rom_start and _image_rom_end corresponds to the group
ROMABLE_REGION defined in the ld linker scripts.

The symbols _image_rodata_start and _image_rodata_end is not placed as
independent group but covers common-rom.ld, thread-local-storage.ld,
kobject-rom.ld and snippets-rodata.ld.

This commit align those names and prepares for generation of groups in
linker scripts.

The symbols describing the ROMABLE_REGION will be renamed to:
_image_rom_start -> __rom_region_start
_image_rom_end   -> __rom_region_end

The rodata will also use the group symbol notation as:
_image_rodata_start -> __rodata_region_start
_image_rodata_end   -> __rodata_region_end

Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
This commit is contained in:
Torsten Rasmussen 2021-08-09 18:16:51 +02:00 committed by Anas Nashif
commit c6aded2dcb
23 changed files with 86 additions and 86 deletions

View file

@ -74,7 +74,7 @@ SECTIONS {
GROUP_START(ROMABLE_REGION)
SECTION_PROLOGUE(_TEXT_SECTION_NAME,,ALIGN(1024)) {
_image_rom_start = .;
__rom_region_start = .;
_image_text_start = .;
/* Located in generated directory. This file is populated by the
@ -96,7 +96,7 @@ SECTIONS {
#endif /* CONFIG_CPLUSPLUS && !CONFIG_CPP_STATIC_INIT_GNU && __MWDT_LINKER_CMD__ */
_image_text_end = .;
_image_rodata_start = .;
__rodata_region_start = .;
#include <linker/common-rom.ld>
#include <linker/thread-local-storage.ld>
@ -127,10 +127,10 @@ SECTIONS {
#include <linker/cplusplus-rom.ld>
#endif /* __MWDT_LINKER_CMD__ */
_image_rodata_end = .;
MPU_ALIGN(_image_rodata_end - _image_rom_start);
_image_rom_end = .;
_image_rom_size = _image_rom_end - _image_rom_start;
__rodata_region_end = .;
MPU_ALIGN(__rodata_region_end - __rom_region_start);
__rom_region_end = .;
__rom_region_size = __rom_region_end - __rom_region_start;
GROUP_END(ROMABLE_REGION)

View file

@ -103,9 +103,9 @@ SECTIONS
GROUP_START(ROMABLE_REGION)
#if defined(CONFIG_XIP)
_image_rom_start = ROM_ADDR;
__rom_region_start = ROM_ADDR;
#else
_image_rom_start = RAM_ADDR;
__rom_region_start = RAM_ADDR;
#endif
SECTION_PROLOGUE(rom_start,,)
@ -170,7 +170,7 @@ SECTIONS
__exidx_end = .;
} GROUP_LINK_IN(ROMABLE_REGION)
_image_rodata_start = .;
__rodata_region_start = .;
#include <linker/common-rom.ld>
#include <linker/thread-local-storage.ld>
@ -208,7 +208,7 @@ SECTIONS
MPU_ALIGN(ABSOLUTE(.) - _image_rom_start);
} GROUP_LINK_IN(ROMABLE_REGION)
_image_rodata_end = .;
__rodata_region_end = .;
_image_rom_end = .;
_image_rom_end_order = (LOG2CEIL(_image_rom_end) - 1) << 1;
@ -345,6 +345,6 @@ SECTIONS
/* To provide the image size as a const expression,
* calculate this value here. */
_flash_used = LOADADDR(.last_section) - _image_rom_start;
_flash_used = LOADADDR(.last_section) - __rom_region_start;
}

View file

@ -124,7 +124,7 @@ SECTIONS
GROUP_START(ROMABLE_REGION)
_image_rom_start = ROM_ADDR;
__rom_region_start = ROM_ADDR;
SECTION_PROLOGUE(rom_start,,)
{
@ -189,7 +189,7 @@ SECTIONS
__exidx_end = .;
} GROUP_LINK_IN(ROMABLE_REGION)
_image_rodata_start = .;
__rodata_region_start = .;
#include <linker/common-rom.ld>
#include <linker/thread-local-storage.ld>
@ -222,9 +222,9 @@ SECTIONS
#include <linker/cplusplus-rom.ld>
_image_rodata_end = .;
MPU_ALIGN(_image_rodata_end -_image_rom_start);
_image_rom_end = .;
__rodata_region_end = .;
MPU_ALIGN(__rodata_region_end -__rom_region_start);
__rom_region_end = .;
GROUP_END(ROMABLE_REGION)
@ -460,6 +460,6 @@ SECTION_PROLOGUE(.last_section,(NOLOAD),)
/* To provide the image size as a const expression,
* calculate this value here. */
_flash_used = LOADADDR(.last_section) - _image_rom_start;
_flash_used = LOADADDR(.last_section) - __rom_region_start;
}

View file

@ -89,7 +89,7 @@ SECTIONS
GROUP_START(ROMABLE_REGION)
_image_rom_start = ROM_ADDR;
__rom_region_start = ROM_ADDR;
SECTION_PROLOGUE(_TEXT_SECTION_NAME,,)
{
@ -154,7 +154,7 @@ SECTIONS
__exidx_end = .;
} GROUP_ROM_LINK_IN(RAMABLE_REGION, ROMABLE_REGION)
_image_rodata_start = .;
__rodata_region_start = .;
#include <linker/common-rom.ld>
#include <linker/thread-local-storage.ld>
@ -179,9 +179,9 @@ SECTIONS
#include <linker/cplusplus-rom.ld>
MMU_ALIGN;
_image_rodata_end = .;
_image_rodata_size = _image_rodata_end - _image_rodata_start;
_image_rom_end = .;
__rodata_region_end = .;
__rodata_region_size = __rodata_region_end - __rodata_region_start;
__rom_region_end = .;
/*
* These are here according to 'arm-zephyr-elf-ld --verbose',
@ -317,6 +317,6 @@ SECTIONS
/* To provide the image size as a const expression,
* calculate this value here. */
_flash_used = LOADADDR(.last_section) - _image_rom_start;
_flash_used = LOADADDR(.last_section) - __rom_region_start;
}

View file

@ -155,10 +155,10 @@ SECTIONS
#include <linker/cplusplus-rom.ld>
_image_rodata_end = .;
_image_rodata_size = _image_rodata_end - _image_rodata_start;
__rodata_region_end = .;
__rodata_region_size = __rodata_region_end - __rodata_region_start;
_image_rom_end = .;
__rom_region_end = .;
__data_region_load_start = ALIGN(4); /* XIP imaged DATA ROM start addr */
GROUP_END(ROMABLE_REGION)

View file

@ -111,7 +111,7 @@ SECTIONS
}
GROUP_START(ROMABLE_REGION)
_image_rom_start = ROM_BASE;
__rom_region_start = ROM_BASE;
SECTION_PROLOGUE(_VECTOR_SECTION_NAME,,)
{
@ -163,7 +163,7 @@ SECTIONS
_image_text_end = .;
_image_rodata_start = .;
__rodata_region_start = .;
#include <linker/common-rom.ld>
#include <linker/thread-local-storage.ld>
@ -186,8 +186,8 @@ SECTIONS
} GROUP_LINK_IN(ROMABLE_REGION)
#include <linker/cplusplus-rom.ld>
_image_rodata_end = .;
MPU_ALIGN(_image_rodata_end - _image_rom_start);
__rodata_region_end = .;
MPU_ALIGN(__rodata_region_end - __rom_region_start);
GROUP_END(ROMABLE_REGION)
GROUP_START(RAMABLE_REGION)
@ -369,7 +369,7 @@ SECTION_PROLOGUE(.last_section,(NOLOAD),)
/* To provide the image size as a const expression,
* calculate this value here. */
_image_rom_end = LOADADDR(.last_section);
_image_rom_size = _image_rom_end - _image_rom_start;
__rom_region_end = LOADADDR(.last_section);
__rom_region_size = __rom_region_end - __rom_region_start;
}

View file

@ -24,7 +24,7 @@ SECTIONS
#include <linker/rel-sections.ld>
_image_rom_start = .;
__rom_region_start = .;
SECTION_PROLOGUE(_TEXT_SECTION_NAME,,)
{
@ -40,7 +40,7 @@ SECTIONS
} GROUP_LINK_IN(REGION_TEXT)
_image_text_end = .;
_image_rodata_start = .;
__rodata_region_start = .;
#include <linker/common-rom.ld>
#include <linker/thread-local-storage.ld>
@ -62,10 +62,10 @@ SECTIONS
#include <linker/cplusplus-rom.ld>
_image_rodata_end = .;
_image_rodata_size = _image_rodata_end - _image_rodata_start;
__rodata_region_end = .;
__rodata_region_size = __rodata_region_end - __rodata_region_start;
_image_rom_end = .;
__rom_region_end = .;
__data_region_load_start = .;
__data_region_start = .;

View file

@ -289,7 +289,7 @@ SECTIONS
. = ALIGN(8);
#ifdef CONFIG_XIP
_image_rom_start = PHYS_LOAD_ADDR;
__rom_region_start = PHYS_LOAD_ADDR;
#endif
SECTION_PROLOGUE(_TEXT_SECTION_NAME,,)
{
@ -329,7 +329,7 @@ SECTIONS
_image_text_end = .;
_image_text_size = _image_text_end - _image_text_start;
_image_rodata_start = .;
__rodata_region_start = .;
#ifndef CONFIG_LINKER_USE_PINNED_SECTION
#include <linker/common-rom.ld>
@ -363,11 +363,11 @@ SECTIONS
MMU_PAGE_ALIGN_PERM
/* ROM ends here, position counter will now be in RAM areas */
#ifdef CONFIG_XIP
_image_rom_end = .;
_image_rom_size = _image_rom_end - _image_rom_start;
__rom_region_end = .;
__rom_region_size = __rom_region_end - __rom_region_start;
#endif
_image_rodata_end = .;
_image_rodata_size = _image_rodata_end - _image_rodata_start;
__rodata_region_end = .;
__rodata_region_size = __rodata_region_end - __rodata_region_start;
GROUP_END(ROMABLE_REGION)
/*
* Needed for dynamic linking which we do not have, do discard

View file

@ -88,7 +88,7 @@ SECTIONS
SECTION_PROLOGUE(_TEXT_SECTION_NAME,,)
{
. = ALIGN(16);
_image_rom_start = .;
__rom_region_start = .;
_image_text_start = .;
z_mapped_start = .;
*(.text)
@ -101,7 +101,7 @@ SECTIONS
_image_text_end = .;
_image_text_size = _image_text_end - _image_text_start;
_image_rodata_start = .;
__rodata_region_start = .;
#include <linker/common-rom.ld>
#include <linker/thread-local-storage.ld>
@ -128,9 +128,9 @@ SECTIONS
#include <linker/cplusplus-rom.ld>
MMU_PAGE_ALIGN_PERM
_image_rodata_end = .;
_image_rodata_size = _image_rodata_end - _image_rodata_start;
_image_rom_end = .;
__rodata_region_end = .;
__rodata_region_size = __rodata_region_end - __rodata_region_start;
__rom_region_end = .;
#ifdef CONFIG_USERSPACE
/* APP SHARED MEMORY REGION */

View file

@ -236,9 +236,9 @@ extern char z_mapped_end[];
#endif /* CONFIG_MMU */
/* Includes text and rodata */
extern char _image_rom_start[];
extern char _image_rom_end[];
extern char _image_rom_size[];
extern char __rom_region_start[];
extern char __rom_region_end[];
extern char __rom_region_size[];
/* Includes all ROMable data, i.e. the size of the output image file. */
extern char _flash_used[];
@ -251,9 +251,9 @@ extern char _image_text_start[];
extern char _image_text_end[];
extern char _image_text_size[];
extern char _image_rodata_start[];
extern char _image_rodata_end[];
extern char _image_rodata_size[];
extern char __rodata_region_start[];
extern char __rodata_region_end[];
extern char __rodata_region_size[];
extern char _vector_start[];
extern char _vector_end[];