serial.c clock.c pic.c cdrom.c ps2port.c smpdetect.c resume.c \
pnpbios.c pirtable.c
SRC16=$(SRCBOTH) system.c disk.c apm.c pcibios.c vgahooks.c font.c
-SRC32=$(SRCBOTH) post.c shadow.c post_menu.c memmap.c coreboot.c boot.c \
+SRC32=$(SRCBOTH) post.c shadow.c memmap.c coreboot.c boot.c \
acpi.c smm.c mptable.c smbios.c pciinit.c optionroms.c mtrr.c
cc-option = $(shell if test -z "`$(1) $(2) -S -o /dev/null -xc \
# Default compiler flags
COMMONCFLAGS = -Wall -Os -MD -m32 -march=i386 -mregparm=3 \
- -mpreferred-stack-boundary=2 -mrtd \
+ -mpreferred-stack-boundary=2 -mrtd -freg-struct-return \
-ffreestanding -fwhole-program -fomit-frame-pointer \
-fno-delete-null-pointer-checks -Wno-strict-aliasing
COMMONCFLAGS += $(call cc-option,$(CC),-nopie,)
################ Build rules
+TESTGCC:=$(shell CC=$(CC) tools/test-gcc.sh)
+ifeq "$(TESTGCC)" "-1"
+$(error "Please upgrade GCC")
+endif
+
ifndef AVOIDCOMBINE
-AVOIDCOMBINE=$(shell CC=$(CC) tools/test-combine.sh)
+AVOIDCOMBINE=$(TESTGCC)
endif
# Do a whole file compile - two methods are supported. The first