1########################################
2# x86-specific definitions
3
4XEN_IMG_OFFSET := 0x200000
5
6CFLAGS += -I$(BASEDIR)/include
7CFLAGS += -I$(BASEDIR)/include/asm-x86/mach-generic
8CFLAGS += -I$(BASEDIR)/include/asm-x86/mach-default
9CFLAGS += -DXEN_IMG_OFFSET=$(XEN_IMG_OFFSET)
10CFLAGS += '-D__OBJECT_LABEL__=$(subst /,$$,$(subst -,_,$(subst $(BASEDIR)/,,$(CURDIR))/$@))'
11
12# Prevent floating-point variables from creeping into Xen.
13CFLAGS += -msoft-float
14
15$(call cc-options-add,CFLAGS,CC,$(EMBEDDED_EXTRA_CFLAGS))
16$(call cc-option-add,CFLAGS,CC,-Wnested-externs)
17$(call as-insn-check,CFLAGS,CC,"vmcall",-DHAVE_GAS_VMX)
18$(call as-insn-check,CFLAGS,CC,"crc32 %eax$$(comma)%eax",-DHAVE_GAS_SSE4_2)
19$(call as-insn-check,CFLAGS,CC,"invept (%rax)$$(comma)%rax",-DHAVE_GAS_EPT)
20$(call as-insn-check,CFLAGS,CC,"rdrand %eax",-DHAVE_GAS_RDRAND)
21$(call as-insn-check,CFLAGS,CC,"rdfsbase %rax",-DHAVE_GAS_FSGSBASE)
22$(call as-insn-check,CFLAGS,CC,"rdseed %eax",-DHAVE_GAS_RDSEED)
23$(call as-insn-check,CFLAGS,CC,".equ \"x\"$$(comma)1", \
24                     -U__OBJECT_LABEL__ -DHAVE_GAS_QUOTED_SYM \
25                     '-D__OBJECT_LABEL__=$(subst $(BASEDIR)/,,$(CURDIR))/$$@')
26
27CFLAGS += -mno-red-zone -mno-sse -fpic
28CFLAGS += -fno-asynchronous-unwind-tables
29# -fvisibility=hidden reduces -fpic cost, if it's available
30ifneq ($(call cc-option,$(CC),-fvisibility=hidden,n),n)
31CFLAGS += -DGCC_HAS_VISIBILITY_ATTRIBUTE
32endif
33