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 5d7cb991f2b86c8d7604ee21dd9f04eb1482f4ee..7b593d44c712aa7a06ddc5a66da73eb7e3184083 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 f03b5697f8e05ae8256c54683a4cebaca72681cb..e5f9f4677bbfdabd2f5af995f281267414422aad 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 : {