linker: kobject: Handle literal section
Add kobject_data prefix to kobject literals and group it close to
text area to avoid changing .text addresses in the final linkage.
Signed-off-by: Flavio Ceolin <flavio.ceolin@intel.com>
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4eb72e8..0788c10 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1290,6 +1290,7 @@
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${KOBJECT_HASH_OUTPUT_OBJ_RENAMED}
COMMAND $<TARGET_PROPERTY:bintools,elfconvert_command>
$<TARGET_PROPERTY:bintools,elfconvert_flag>
+ $<TARGET_PROPERTY:bintools,elfconvert_flag_section_rename>.literal=.kobject_data.literal
$<TARGET_PROPERTY:bintools,elfconvert_flag_section_rename>.data=.kobject_data.data
$<TARGET_PROPERTY:bintools,elfconvert_flag_section_rename>.sdata=.kobject_data.sdata
$<TARGET_PROPERTY:bintools,elfconvert_flag_section_rename>.text=.kobject_data.text
diff --git a/include/zephyr/linker/kobject-text.ld b/include/zephyr/linker/kobject-text.ld
index 1b8c547..47a989f 100644
--- a/include/zephyr/linker/kobject-text.ld
+++ b/include/zephyr/linker/kobject-text.ld
@@ -9,6 +9,7 @@
* is moving backwards if the reserved room isn't large enough.
*/
_kobject_text_area_start = .;
+ *(".kobject_data.literal*")
*(".kobject_data.text*")
_kobject_text_area_end = .;
_kobject_text_area_used = _kobject_text_area_end - _kobject_text_area_start;