| # Code size reduction. | |
| # | |
| CFLAGS += -fstrength-reduce -fomit-frame-pointer | |
| # Code size reduction. gcc3 needs a different syntax to gcc2 if you | |
| # want to avoid spurious warnings. | |
| # | |
| CFLAGS += -falign-jumps=1 -falign-loops=1 -falign-functions=1 | |
| # Force 64-bit code | |
| # | |
| CFLAGS += -m64 | |
| ASFLAGS += --64 | |
| LDFLAGS += -m elf_x86_64 | |
| # Prevent use of MMX and SSE registers | |
| # | |
| CFLAGS += -mno-mmx -mno-sse | |
| # EFI requires -fshort-wchar, and nothing else currently uses wchar_t | |
| # | |
| CFLAGS += -fshort-wchar | |
| # We need to undefine the default macro "i386" when compiling .S | |
| # files, otherwise ".arch i386" translates to ".arch 1"... | |
| # | |
| CFLAGS += -Ui386 | |
| # Add -maccumulate-outgoing-args if required by this version of gcc | |
| # | |
| ifeq ($(CCTYPE),gcc) | |
| MS_ABI_TEST_CODE := extern void __attribute__ (( ms_abi )) ms_abi(); \ | |
| void sysv_abi ( void ) { ms_abi(); } | |
| MS_ABI_TEST = $(ECHO) '$(MS_ABI_TEST_CODE)' | \ | |
| $(CC) -m64 -mno-accumulate-outgoing-args -x c -c - -o /dev/null \ | |
| >/dev/null 2>&1 | |
| MS_ABI_FLAGS := $(shell $(MS_ABI_TEST) || $(ECHO) '-maccumulate-outgoing-args') | |
| WORKAROUND_CFLAGS += $(MS_ABI_FLAGS) | |
| endif | |
| # x86_64-specific directories containing source files | |
| # | |
| SRCDIRS += arch/x86_64/core | |
| SRCDIRS += arch/x86_64/prefix | |
| # Include common x86 Makefile | |
| # | |
| MAKEDEPS += arch/x86/Makefile | |
| include arch/x86/Makefile | |
| # Include platform-specific Makefile | |
| # | |
| MAKEDEPS += arch/x86_64/Makefile.$(PLATFORM) | |
| include arch/x86_64/Makefile.$(PLATFORM) |