From 70e1dee42c81cd1a641d8f40ac4cec4ac349071d Mon Sep 17 00:00:00 2001 From: Jim Shu Date: Thu, 8 Jul 2021 01:11:34 +0800 Subject: [PATCH] kernel: fix kobj table if having .sdata section. The gperf generated data needs to be placed at the end of memory to avoid pushing symbols around in memory, but data in .sdata section aren't placed currently. Also renaming .sdata section to kobject_data.* section and add it to kobject_data output section to fix issue. Fixes #37023. Signed-off-by: Jim Shu --- CMakeLists.txt | 1 + include/linker/kobject-data.ld | 1 + 2 files changed, 2 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 59eaf0e01e6..2f8dcbc7adc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -929,6 +929,7 @@ if(CONFIG_USERSPACE) COMMAND $ $ $.data=.kobject_data.data + $.sdata=.kobject_data.sdata $.text=.kobject_data.text $.rodata=.kobject_data.rodata $${KOBJECT_HASH_OUTPUT_OBJ_PATH} diff --git a/include/linker/kobject-data.ld b/include/linker/kobject-data.ld index 8ad0b51cb0e..6d6640d56c8 100644 --- a/include/linker/kobject-data.ld +++ b/include/linker/kobject-data.ld @@ -53,6 +53,7 @@ #endif *(".kobject_data.data*") + *(".kobject_data.sdata*") #ifdef KOBJECT_DATA_ALIGN _kobject_data_area_end = .;