[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-ia64-devel] [PATCH] Fix CONFIG_XEN=no for gate page



2 files changed, 8 insertions(+), 4 deletions(-)
arch/ia64/kernel/Makefile      |    9 ++++++---
arch/ia64/kernel/vmlinux.lds.S |    3 ++-


# HG changeset patch
# User Aron Griffis <aron@xxxxxx>
# Date 1197341336 18000
# Node ID 330b3955bb937bcf0e5c4dfa813c823f5ec14b30
# Parent  9bb76e0b347ef7f437e752c08f16f32f29386f7e
Fix CONFIG_XEN=no for gate page

The important part of this is to refrain from building .tmp_gate.o unless
CONFIG_XEN.  However it also seems correct to make xen_gate_section in
vmlinux.lds.S depend on CONFIG_XEN as well.  Tested that both builds work now.

Signed-off-by: Aron Griffis <aron@xxxxxx>

diff -r 9bb76e0b347e -r 330b3955bb93 arch/ia64/kernel/Makefile
--- a/arch/ia64/kernel/Makefile Thu Nov 29 12:20:05 2007 -0700
+++ b/arch/ia64/kernel/Makefile Mon Dec 10 21:48:56 2007 -0500
@@ -64,14 +64,15 @@ GATECFLAGS_gate-syms.o = -r
 # Note: kbuild does not track this dependency due to usage of .incbin
 $(obj)/gate-data.o: $(obj)/gate.so
 
-
 #
 # gate page paravirtualization for xen
 #
 obj-$(CONFIG_XEN) += xengate-data.o
 
+ifeq ($(CONFIG_XEN), y)
 # The gate DSO image is built using a special linker script.
 targets += xengate.so xengate-syms.o
+endif
 
 extra-$(CONFIG_XEN) += xengate.so xengate.lds xengate.o
 
@@ -99,22 +100,24 @@ GATECFLAGS_xengate-syms.o = -r
        $(call if_changed,gate)
 $(obj)/xengate-data.o: $(obj)/xengate.so
 
-
 #
 # .tmp_gate.o to calculate padding size for __kernel_syscall_via_epc
 #
-extra-y += gate-skip.s .tmp_gate.o
+extra-$(CONFIG_XEN) += gate-skip.s .tmp_gate.o
 
 ifeq ($(CONFIG_XEN), y)
 AFLAGS_gate.o += -D__KERNEL_SYSCALL_VIA_EPC_PADDING
 $(obj)/gate.o: $(obj)/gate-skip.s FORCE
 endif
+
 $(obj)/.tmp_gate.o: $(src)/gate.S FORCE
        $(call if_changed_dep,as_o_S)
+
 quiet_cmd_gate_size = GATE_SIZE        $@
       cmd_gate_size = $(NM) --extern-only --print-size $(obj)/xengate.o | \
        $(AWK) '/__kernel_syscall_via_epc/{printf "\t.skip 0x"$$2" - "}' > $@; \
        $(NM) --extern-only --print-size $(obj)/.tmp_gate.o | \
        $(AWK) '/__kernel_syscall_via_epc/{printf "0x"$$2"\n"}' >> $@
+
 $(obj)/gate-skip.s: $(obj)/xengate.o $(obj)/.tmp_gate.o FORCE
        $(call if_changed,gate_size)
diff -r 9bb76e0b347e -r 330b3955bb93 arch/ia64/kernel/vmlinux.lds.S
--- a/arch/ia64/kernel/vmlinux.lds.S    Thu Nov 29 12:20:05 2007 -0700
+++ b/arch/ia64/kernel/vmlinux.lds.S    Mon Dec 10 21:48:56 2007 -0500
@@ -1,4 +1,3 @@
-
 #include <asm/cache.h>
 #include <asm/ptrace.h>
 #include <asm/system.h>
@@ -183,10 +182,12 @@ SECTIONS
          __start_gate_section = .;
          *(.data.gate)
          __stop_gate_section = .;
+#if defined(CONFIG_XEN)
          . = ALIGN(PAGE_SIZE);
          __start_xen_gate_section = .;
          *(.data.gate.xen)
          __stop_xen_gate_section = .;
+#endif
        }
   . = ALIGN(PAGE_SIZE);                /* make sure the gate page doesn't 
expose kernel data */
 

_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.