Skip gp initialization in loongson bootblocks
authorvisa <visa@openbsd.org>
Wed, 17 Feb 2021 14:42:20 +0000 (14:42 +0000)
committervisa <visa@openbsd.org>
Wed, 17 Feb 2021 14:42:20 +0000 (14:42 +0000)
The loongson bootblocks are compiled with -mno-abicalls and do not use
gp-relative addressing.

A similar change has been made to the mips64 kernels recently.

sys/arch/loongson/stand/boot/ld.script
sys/arch/loongson/stand/boot/start.S

index 50977c3..e32c26d 100644 (file)
@@ -12,7 +12,6 @@ SECTIONS
        .text :         { *(.text .text.* .gnu.linkonce.t.*) }
        PROVIDE (etext = .);
        .rodata :       { *(.rodata .rodata.* .gnu.linkonce.r.*) }
-       _gp = ALIGN(16) + 0x7ff0;
        .data :         { *(.data .data.* .gnu.linkonce.d.*) }
        PROVIDE (edata = .);
        .sbss :         { *(.sbss .sbss.* .gnu.linkonce.sb.* .scommon) }
index 4fd44b6..62a8731 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: start.S,v 1.3 2018/04/20 14:36:42 visa Exp $  */
+/*     $OpenBSD: start.S,v 1.4 2021/02/17 14:42:20 visa Exp $  */
 
 /*
  * Copyright (c) 2010 Miodrag Vallat.
@@ -35,7 +35,6 @@ pmon_sp:
        .ent    __start, 0
 __start:
        LA      t0, __start - FRAMESZ(CF_SZ)
-       LA      gp, _gp
        PTR_S   ra, pmon_ra             # save pmon return address
        PTR_S   sp, pmon_sp             # and stack
        move    sp, t0