Make kernel ld.script similar to octeon's on loongson and sgi.
authorvisa <visa@openbsd.org>
Thu, 18 Feb 2021 16:27:07 +0000 (16:27 +0000)
committervisa <visa@openbsd.org>
Thu, 18 Feb 2021 16:27:07 +0000 (16:27 +0000)
sys/arch/loongson/conf/ld.script
sys/arch/sgi/conf/ld.script

index d529e3d..49adf31 100644 (file)
@@ -1,27 +1,57 @@
+/*     $OpenBSD: ld.script,v 1.5 2021/02/18 16:27:07 visa Exp $        */
+
 OUTPUT_FORMAT("elf64-tradlittlemips")
 OUTPUT_ARCH(mips)
 ENTRY(__start)
 
+PHDRS
+{
+       text PT_LOAD;
+       openbsd_randomize PT_OPENBSD_RANDOMIZE;
+}
+
 SECTIONS
 {
-       .text :         { *(.text .text.* .gnu.linkonce.t.*) }
+       .text :
+       {
+               *(.text .text.* .gnu.linkonce.t.*)
+       } :text
        PROVIDE (etext = .);
-       .rodata :       { *(.rodata .rodata.* .gnu.linkonce.r.*) }
-       .data :         { *(.data .data.* .gnu.linkonce.d.*) }
+       .rodata :
+       {
+               *(.rodata .rodata.* .gnu.linkonce.r.*)
+       } :text
+
+       . = ALIGN(8);
+       PROVIDE (__kernel_randomdata = .);
        .openbsd.randomdata :
        {
-               /* XXX shouldn't this be placed next to rodata? */
                __retguard_start = ABSOLUTE(.);
                *(.openbsd.randomdata.retguard .openbsd.randomdata.retguard.*)
                /* XXX . = ALIGN(0x1000); */
                __retguard_end = ABSOLUTE(.);
                *(.openbsd.randomdata .openbsd.randomdata.*)
-       }
+       } :text :openbsd_randomize
+       . = ALIGN(8);
+       PROVIDE (__kernel_randomdata_end = .);
+
+       .data :
+       {
+               *(.data .data.* .gnu.linkonce.d.*)
+       } :text
        PROVIDE (edata = .);
-       .sbss :         { *(.sbss .sbss.* .gnu.linkonce.sb.* .scommon) }
-       .bss :          { *(.bss .bss.* .gnu.linkonce.b.* COMMON) }
+       .sbss :
+       {
+               *(.sbss .sbss.* .gnu.linkonce.sb.* .scommon)
+       }
+       .bss :
+       {
+               *(.bss .bss.* .gnu.linkonce.b.* COMMON)
+       }
+       . = ALIGN(8);
        PROVIDE (_end = .);
        PROVIDE (end = .);
+
        /DISCARD/ :
        {
                *(.pdr)
index 99134c0..85a74ec 100644 (file)
@@ -1,27 +1,57 @@
+/*     $OpenBSD: ld.script,v 1.10 2021/02/18 16:27:08 visa Exp $       */
+
 OUTPUT_FORMAT("elf64-tradbigmips")
 OUTPUT_ARCH(mips)
 ENTRY(__start)
 
+PHDRS
+{
+       text PT_LOAD;
+       openbsd_randomize PT_OPENBSD_RANDOMIZE;
+}
+
 SECTIONS
 {
-       .text :         { *(.text .text.* .gnu.linkonce.t.*) }
+       .text :
+       {
+               *(.text .text.* .gnu.linkonce.t.*)
+       } :text
        PROVIDE (etext = .);
-       .rodata :       { *(.rodata .rodata.* .gnu.linkonce.r.*) }
-       .data :         { *(.data .data.* .gnu.linkonce.d.*) }
+       .rodata :
+       {
+               *(.rodata .rodata.* .gnu.linkonce.r.*)
+       } :text
+
+       . = ALIGN(8);
+       PROVIDE (__kernel_randomdata = .);
        .openbsd.randomdata :
        {
-               /* XXX shouldn't this be placed next to rodata? */
                __retguard_start = ABSOLUTE(.);
                *(.openbsd.randomdata.retguard .openbsd.randomdata.retguard.*)
                /* XXX . = ALIGN(0x1000); */
                __retguard_end = ABSOLUTE(.);
                *(.openbsd.randomdata .openbsd.randomdata.*)
-       }
+       } :text :openbsd_randomize
+       . = ALIGN(8);
+       PROVIDE (__kernel_randomdata_end = .);
+
+       .data :
+       {
+               *(.data .data.* .gnu.linkonce.d.*)
+       } :text
        PROVIDE (edata = .);
-       .sbss :         { *(.sbss .sbss.* .gnu.linkonce.sb.* .scommon) }
-       .bss :          { *(.bss .bss.* .gnu.linkonce.b.* COMMON) }
+       .sbss :
+       {
+               *(.sbss .sbss.* .gnu.linkonce.sb.* .scommon)
+       }
+       .bss :
+       {
+               *(.bss .bss.* .gnu.linkonce.b.* COMMON)
+       }
+       . = ALIGN(8);
        PROVIDE (_end = .);
        PROVIDE (end = .);
+
        /DISCARD/ :
        {
                *(.pdr)