|
|
1.1 ! root 1: # Force i386-only instructions ! 2: # ! 3: CFLAGS += -march=i386 ! 4: ! 5: # Code size reduction. ! 6: # ! 7: CFLAGS += -fomit-frame-pointer ! 8: ! 9: # Code size reduction. ! 10: # ! 11: ifeq ($(CCTYPE),gcc) ! 12: CFLAGS += -fstrength-reduce ! 13: endif ! 14: ! 15: # Code size reduction. gcc3 needs a different syntax to gcc2 if you ! 16: # want to avoid spurious warnings. ! 17: # ! 18: ifeq ($(CCTYPE),gcc) ! 19: GCC_VERSION := $(subst ., ,$(shell $(CC) -dumpversion)) ! 20: GCC_MAJOR := $(firstword $(GCC_VERSION)) ! 21: ifeq ($(GCC_MAJOR),2) ! 22: CFLAGS += -malign-jumps=1 -malign-loops=1 -malign-functions=1 ! 23: else ! 24: CFLAGS += -falign-jumps=1 -falign-loops=1 -falign-functions=1 ! 25: endif # gcc2 ! 26: endif # gcc ! 27: ! 28: # Code size reduction. This is almost always a win. The kernel uses ! 29: # it, too. ! 30: # ! 31: ifeq ($(CCTYPE),gcc) ! 32: CFLAGS += -mpreferred-stack-boundary=2 ! 33: endif ! 34: ! 35: # Code size reduction. Use regparm for all functions - C functions ! 36: # called from assembly (or vice versa) need __asmcall now ! 37: # ! 38: CFLAGS += -mregparm=3 ! 39: ! 40: # Code size reduction. Use -mrtd (same __asmcall requirements as above) ! 41: ifeq ($(CCTYPE),gcc) ! 42: CFLAGS += -mrtd ! 43: endif ! 44: ! 45: # Code size reduction. This is the logical complement to -mregparm=3. ! 46: # It doesn't currently buy us anything, but if anything ever tries to ! 47: # return small structures, let's be prepared ! 48: # ! 49: CFLAGS += -freg-struct-return ! 50: ! 51: # Force 32-bit code even on an x86-64 machine ! 52: # ! 53: CFLAGS += -m32 ! 54: ASFLAGS += --32 ! 55: ifeq ($(HOST_OS),FreeBSD) ! 56: LDFLAGS += -m elf_i386_fbsd ! 57: else ! 58: LDFLAGS += -m elf_i386 ! 59: endif ! 60: ! 61: # EFI requires -fshort-wchar, and nothing else currently uses wchar_t ! 62: # ! 63: CFLAGS += -fshort-wchar ! 64: ! 65: # We need to undefine the default macro "i386" when compiling .S ! 66: # files, otherwise ".arch i386" translates to ".arch 1"... ! 67: # ! 68: CFLAGS += -Ui386 ! 69: ! 70: # Locations of utilities ! 71: # ! 72: ISOLINUX_BIN_LIST := \ ! 73: $(ISOLINUX_BIN) \ ! 74: /usr/lib/syslinux/isolinux.bin \ ! 75: /usr/share/syslinux/isolinux.bin \ ! 76: /usr/local/share/syslinux/isolinux.bin ! 77: ISOLINUX_BIN = $(firstword $(wildcard $(ISOLINUX_BIN_LIST))) ! 78: ! 79: # i386-specific directories containing source files ! 80: # ! 81: SRCDIRS += arch/i386/core arch/i386/transitions arch/i386/prefix ! 82: SRCDIRS += arch/i386/firmware/pcbios ! 83: SRCDIRS += arch/i386/image ! 84: SRCDIRS += arch/i386/interface/pcbios ! 85: SRCDIRS += arch/i386/interface/pxe ! 86: SRCDIRS += arch/i386/interface/pxeparent ! 87: SRCDIRS += arch/i386/interface/syslinux ! 88: SRCDIRS += arch/i386/hci/commands ! 89: ! 90: # The various xxx_loader.c files are #included into core/loader.c and ! 91: # should not be compiled directly. ! 92: # ! 93: NON_AUTO_SRCS += arch/i386/core/aout_loader.c ! 94: NON_AUTO_SRCS += arch/i386/core/freebsd_loader.c ! 95: NON_AUTO_SRCS += arch/i386/core/wince_loader.c ! 96: ! 97: # Include common x86 Makefile ! 98: # ! 99: MAKEDEPS += arch/x86/Makefile ! 100: include arch/x86/Makefile ! 101: ! 102: # Include platform-specific Makefile ! 103: # ! 104: MAKEDEPS += arch/i386/Makefile.$(PLATFORM) ! 105: include arch/i386/Makefile.$(PLATFORM)
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.