riscv: Move .rela.dyn outside of init to avoid empty relocations
authorAlexandre Ghiti <alexghiti@rivosinc.com>
Wed, 29 Mar 2023 04:53:25 +0000 (06:53 +0200)
committerPalmer Dabbelt <palmer@rivosinc.com>
Wed, 19 Apr 2023 14:46:29 +0000 (07:46 -0700)
This is a preparatory patch for relocatable kernels: .rela.dyn should be
in .init but doing so actually produces empty relocations, so this should
be a temporary commit until we find a solution.

This issue was reported here [1].

[1] https://lore.kernel.org/all/4a6fc7a3-9697-a49b-0941-97f32194b0d7@ghiti.fr/.

Signed-off-by: Alexandre Ghiti <alexghiti@rivosinc.com>
Link: https://lore.kernel.org/r/20230329045329.64565-3-alexghiti@rivosinc.com
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
arch/riscv/kernel/vmlinux.lds.S

index 1c38294..e05e6df 100644 (file)
@@ -96,10 +96,6 @@ SECTIONS
                *(.rel.dyn*)
        }
 
-       .rela.dyn : {
-               *(.rela*)
-       }
-
        __init_data_end = .;
 
        . = ALIGN(8);
@@ -126,6 +122,10 @@ SECTIONS
                *(.sdata*)
        }
 
+       .rela.dyn : {
+               *(.rela*)
+       }
+
 #ifdef CONFIG_EFI
        .pecoff_edata_padding : { BYTE(0); . = ALIGN(PECOFF_FILE_ALIGNMENT); }
        __pecoff_data_raw_size = ABSOLUTE(. - __pecoff_text_end);