riscv: Fix orphan section warnings caused by kernel/pi
authorAlexandre Ghiti <alexghiti@rivosinc.com>
Thu, 4 May 2023 12:07:59 +0000 (14:07 +0200)
committerPalmer Dabbelt <palmer@rivosinc.com>
Wed, 10 May 2023 01:20:23 +0000 (18:20 -0700)
kernel/pi gives rise to a lot of new sections that end up orphans: the
first attempt to fix that tried to enumerate them all in the linker
script, but kernel test robot with a random config keeps finding more of
them.

So prefix all those sections with .init.pi instead of only .init in
order to be able to easily catch them all in the linker script.

Reported-by: kernel test robot <lkp@intel.com>
Link: https://lore.kernel.org/oe-kbuild-all/202304301606.Cgp113Ha-lkp@intel.com/
Fixes: 26e7aacb83df ("riscv: Allow to downgrade paging mode from the command line")
Signed-off-by: Alexandre Ghiti <alexghiti@rivosinc.com>
Link: https://lore.kernel.org/r/20230504120759.18730-1-alexghiti@rivosinc.com
Cc: stable@vger.kernel.org
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
arch/riscv/kernel/pi/Makefile
arch/riscv/kernel/vmlinux.lds.S

index 5d7cb99..7b593d4 100644 (file)
@@ -22,7 +22,7 @@ KCOV_INSTRUMENT       := n
 
 $(obj)/%.pi.o: OBJCOPYFLAGS := --prefix-symbols=__pi_ \
                               --remove-section=.note.gnu.property \
-                              --prefix-alloc-sections=.init
+                              --prefix-alloc-sections=.init.pi
 $(obj)/%.pi.o: $(obj)/%.o FORCE
        $(call if_changed,objcopy)
 
index f03b569..e5f9f46 100644 (file)
@@ -84,11 +84,8 @@ SECTIONS
        __init_data_begin = .;
        INIT_DATA_SECTION(16)
 
-       /* Those sections result from the compilation of kernel/pi/string.c */
-       .init.pidata : {
-               *(.init.srodata.cst8*)
-               *(.init__bug_table*)
-               *(.init.sdata*)
+       .init.pi : {
+               *(.init.pi*)
        }
 
        .init.bss : {