Subject: -G and kernels.
To: None <port-mips@netbsd.org>
From: Simon Burge <simonb@wasabisystems.com>
List: port-mips
Date: 04/04/2002 00:03:53
My change today to use .data instead of .sdata for a few variables
in sys/arch/mips/mips/locore.S broke hpcmips kernels, since they
use -G <foo> with a range for <foo>:

	euclid:arch/hpcmips/conf 6> grep DEFGP *
	GENERIC:makeoptions     DEFGP="-G 10"
	LROUTER:makeoptions     DEFGP="-G 14"
	MPC303:makeoptions      DEFGP="-G 14"
	NULLCONF:makeoptions    DEFGP="-G 18"
	TX3912:makeoptions      DEFGP="-G 14"
	TX3922:makeoptions      DEFGP="-G 18"
	VR41XX:makeoptions      DEFGP="-G 8"

I've backed out that change for now.  The motivation for the change was
that for most ports, the only things in the small data section where
three variables in locore.S.  For building ecoff kernels that at least
the pmax prom understands, not having a small data section was going to
make life a little easier.

This does however raise a different question or two:

First, why are there so many different -G values for the different hpcmips
kernels?

Second, -G <something >0 > will result in slightly smaller kernels (-G
10 saves around 50kb on a pmax GENERIC kernel for example), that in
theory should also be slightly faster.  Should all mips ports switch to
using some non-zero value for -G?

Simon.
--
Simon Burge                            <simonb@wasabisystems.com>
NetBSD CDs, Support and Service:    http://www.wasabisystems.com/