#include <xen/elfnote.h>
+ .section ".text.head", "ax", @progbits
.code32 /* Always starts in 32bit flat mode. */
GLOBAL(_elf_start) /* HVM common setup. */
_start = .;
.text : {
+ *(.text.head)
*(.text)
. = ALIGN(PAGE_SIZE);
ELFNOTE(Xen, XEN_ELFNOTE_FEATURES, .asciz "!writable_page_tables|pae_pgdir_above_4gb")
ELFNOTE(Xen, XEN_ELFNOTE_PAE_MODE, .asciz "yes")
- .text
+ .section ".text.head", "ax", @progbits
__ASM_SEL(.code32, .code64)
/* PV entry point. */
AFLAGS_$(1) := $$(AFLAGS_$($(1)_arch)) $$(COMMON_AFLAGS-$(1)) -DCONFIG_ENV_$(1) -include arch/config.h
CFLAGS_$(1) := $$(CFLAGS_$($(1)_arch)) $$(COMMON_CFLAGS-$(1)) -DCONFIG_ENV_$(1) -include arch/config.h
-head-$(1) := $(ROOT)/arch/x86/$($(1)_guest)/head-$(1).o
link-$(1) := $(ROOT)/arch/x86/link-$(1).lds
LDFLAGS_$(1) := -T $$(link-$(1)) -nostdlib $(LDFLAGS-y)
# Needs to pick up test-provided obj-perenv and obj-perarch
-DEPS-$(1) = $$(head-$(1)) \
+DEPS-$(1) = \
$$(obj-perarch:%.o=%-$($(1)_arch).o) \
$$(obj-$(1):%.o=%-$(1).o) $$(obj-perenv:%.o=%-$(1).o)
# HVM specific objects
obj-hvm += $(ROOT)/arch/x86/apic.o
obj-hvm += $(ROOT)/arch/x86/hpet.o
+obj-hvm += $(ROOT)/arch/x86/hvm/head.o
obj-hvm += $(ROOT)/arch/x86/hvm/pagetables.o
obj-hvm += $(ROOT)/arch/x86/hvm/traps.o
obj-hvm += $(ROOT)/arch/x86/io-apic.o
# PV specific objects
+obj-pv += $(ROOT)/arch/x86/pv/head.o
obj-pv += $(ROOT)/arch/x86/pv/traps.o
$(foreach env,$(PV_ENVIRONMENTS),$(eval obj-$(env) += $(obj-pv)))