# -*- makefile -*-
#
# arch/i386/MCONFIG
#
# Special rules for this architecture.  Note that this is actually
# included from the main Makefile, and that pathnames should be
# accordingly.
#

# Enable this to compile with register parameters; only safe for
# gcc >= 3
REGPARM_OPT := -mregparm=3 -D_REGPARM=3

gcc_major := $(shell echo __GNUC__ | $(CC) -E -xc - | tail -n 1)

KLIBCOPTFLAGS  = -march=i386 -Os -g -fomit-frame-pointer
KLIBCLDFLAGS   = -m elf_i386

ifneq ($(gcc_major),2)
KLIBCREQFLAGS += $(REGPARM_OPT)
KLIBCOPTFLAGS += -falign-functions=0 -falign-jumps=0 -falign-loops=0
KLIBCARCHREQFLAGS += -m32
else
KLIBCOPTFLAGS += -malign-functions=0 -malign-jumps=0 -malign-loops=0
endif

KLIBCBITSIZE  = 32

# Extra linkflags when building the shared version of the library
# This address needs to be reachable using normal inter-module
# calls, and work on the memory models for this architecture
# 96 MB - normal binaries start at 128 MB
KLIBCSHAREDFLAGS	= -Ttext 0x06000200
