os161 / mk / os161.config-mips.mk
os161.config-mips.mk
Raw
#
# OS/161 build environment extra definitions for MIPS.
# This is included by os161.config.mk.
#


#
# The MIPS toolchain for OS/161 is an ELF toolchain that by default
# generates SVR4 ELF ABI complaint code. This means that by default
# all code is PIC (position-independent code), which is all very well
# but not something we need or want in the kernel. So we use -fno-pic
# to turn this behavior off.
#
# We turn it off for userland too because we don't support shared
# libraries. Before trying to implement shared libraries, these
# options need to be taken out of CFLAGS.
#
# It turns out you also need -mno-abicalls to turn it off completely.
#

CFLAGS+=-mno-abicalls -fno-pic
KCFLAGS+=-mno-abicalls -fno-pic

#
# Extra stuff required for the kernel.
#
# -ffixed-23 reserves register 23 (s7) to hold curthread. This register
# number must match the curthread definition in mips/thread.h and the
# code in trap.S.
#
KCFLAGS+=-ffixed-23
KLDFLAGS+=