# HG changeset patch
# User kfraser@xxxxxxxxxxxxxxxxxxxxx
# Date 1184330106 -3600
# Node ID 50477b1b30168ed149e225530ae2b5f9b47ab2b0
# Parent 670f8d5305d25cfd79da42eb89d6f50ac745281c
linux: adjust make logic for -xen files.
The changed logic allows having *-xen.[cS] files anywhere in the tree,
without a need to modify the corresponding Makefiles. The patch also
cleans up Makefiles modified for Xen as far as possible.
Signed-off-by: Jan Beulich <jbeulich@xxxxxxxxxx>
---
arch/i386/Makefile | 1 -
arch/i386/kernel/Makefile | 26 ++++++--------------------
arch/i386/kernel/acpi/Makefile | 4 ----
arch/i386/kernel/cpu/Makefile | 4 ----
arch/i386/kernel/cpu/mtrr/Makefile | 8 +-------
arch/i386/mm/Makefile | 9 +--------
arch/i386/pci/Makefile | 5 -----
arch/x86_64/Makefile | 1 -
arch/x86_64/ia32/Makefile | 13 +++----------
arch/x86_64/kernel/Makefile | 18 ++++--------------
arch/x86_64/mm/Makefile | 13 +++----------
arch/x86_64/pci/Makefile | 7 -------
scripts/Makefile.build | 12 ++++++++++++
scripts/Makefile.lib | 6 ++++++
scripts/Makefile.xen.awk | 34 ++++++++++++++++++++++++++++++++++
15 files changed, 70 insertions(+), 91 deletions(-)
diff -r 670f8d5305d2 -r 50477b1b3016 arch/i386/Makefile
--- a/arch/i386/Makefile Thu Jul 12 16:05:09 2007 +0100
+++ b/arch/i386/Makefile Fri Jul 13 13:35:06 2007 +0100
@@ -116,7 +116,6 @@ PHONY += zImage bzImage compressed zlilo
ifdef CONFIG_XEN
CPPFLAGS := -Iinclude$(if $(KBUILD_SRC),2)/asm/mach-xen $(CPPFLAGS)
-head-y := arch/i386/kernel/head-xen.o arch/i386/kernel/init_task-xen.o
boot := arch/i386/boot-xen
.PHONY: vmlinuz
all: vmlinuz
diff -r 670f8d5305d2 -r 50477b1b3016 arch/i386/kernel/Makefile
--- a/arch/i386/kernel/Makefile Thu Jul 12 16:05:09 2007 +0100
+++ b/arch/i386/kernel/Makefile Fri Jul 13 13:35:06 2007 +0100
@@ -43,12 +43,7 @@ EXTRA_AFLAGS := -traditional
EXTRA_AFLAGS := -traditional
obj-$(CONFIG_SCx200) += scx200.o
-
-ifdef CONFIG_XEN
-vsyscall_note := vsyscall-note-xen.o
-else
-vsyscall_note := vsyscall-note.o
-endif
+obj-$(CONFIG_XEN) += fixup.o
# vsyscall.o contains the vsyscall DSO images as __initdata.
# We must build both images before we can assemble it.
@@ -71,7 +66,7 @@ SYSCFLAGS_vsyscall-int80.so = $(vsyscall
$(obj)/vsyscall-int80.so $(obj)/vsyscall-sysenter.so: \
$(obj)/vsyscall-%.so: $(src)/vsyscall.lds \
- $(obj)/vsyscall-%.o $(obj)/$(vsyscall_note) FORCE
+ $(obj)/vsyscall-%.o $(obj)/vsyscall-note.o FORCE
$(call if_changed,syscall)
# We also create a special relocatable object that should mirror the symbol
@@ -83,20 +78,11 @@ extra-y += vsyscall-syms.o
SYSCFLAGS_vsyscall-syms.o = -r
$(obj)/vsyscall-syms.o: $(src)/vsyscall.lds \
- $(obj)/vsyscall-sysenter.o $(obj)/$(vsyscall_note) FORCE
+ $(obj)/vsyscall-sysenter.o $(obj)/vsyscall-note.o FORCE
$(call if_changed,syscall)
+early_printk-y += ../../x86_64/kernel/early_printk.o
k8-y += ../../x86_64/kernel/k8.o
-ifdef CONFIG_XEN
-include $(srctree)/scripts/Makefile.xen
-
-obj-y += fixup.o
-microcode-$(subst m,y,$(CONFIG_MICROCODE)) := microcode-xen.o
-n-obj-xen := i8259.o timers/ reboot.o smpboot.o trampoline.o
-
-obj-y := $(call filterxen, $(obj-y), $(n-obj-xen))
-obj-y := $(call cherrypickxen, $(obj-y))
-extra-y := $(call cherrypickxen, $(extra-y))
-%/head-xen.o %/head-xen.s: EXTRA_AFLAGS :=
-endif
+disabled-obj-$(CONFIG_XEN) := i8259.o reboot.o smpboot.o trampoline.o
+%/head.o %/head.s: $(if $(CONFIG_XEN),EXTRA_AFLAGS,dummy) :=
diff -r 670f8d5305d2 -r 50477b1b3016 arch/i386/kernel/acpi/Makefile
--- a/arch/i386/kernel/acpi/Makefile Thu Jul 12 16:05:09 2007 +0100
+++ b/arch/i386/kernel/acpi/Makefile Fri Jul 13 13:35:06 2007 +0100
@@ -6,7 +6,3 @@ obj-y += cstate.o processor.o
obj-y += cstate.o processor.o
endif
-ifdef CONFIG_XEN
-include $(srctree)/scripts/Makefile.xen
-obj-y := $(call cherrypickxen, $(obj-y), $(src))
-endif
diff -r 670f8d5305d2 -r 50477b1b3016 arch/i386/kernel/cpu/Makefile
--- a/arch/i386/kernel/cpu/Makefile Thu Jul 12 16:05:09 2007 +0100
+++ b/arch/i386/kernel/cpu/Makefile Fri Jul 13 13:35:06 2007 +0100
@@ -18,7 +18,3 @@ obj-$(CONFIG_MTRR) += mtrr/
obj-$(CONFIG_MTRR) += mtrr/
obj-$(CONFIG_CPU_FREQ) += cpufreq/
-ifdef CONFIG_XEN
-include $(srctree)/scripts/Makefile.xen
-obj-y := $(call cherrypickxen, $(obj-y), $(src))
-endif
diff -r 670f8d5305d2 -r 50477b1b3016 arch/i386/kernel/cpu/mtrr/Makefile
--- a/arch/i386/kernel/cpu/mtrr/Makefile Thu Jul 12 16:05:09 2007 +0100
+++ b/arch/i386/kernel/cpu/mtrr/Makefile Fri Jul 13 13:35:06 2007 +0100
@@ -3,10 +3,4 @@ obj-y += cyrix.o
obj-y += cyrix.o
obj-y += centaur.o
-ifdef CONFIG_XEN
-include $(srctree)/scripts/Makefile.xen
-n-obj-xen := generic.o state.o amd.o cyrix.o centaur.o
-
-obj-y := $(call filterxen, $(obj-y), $(n-obj-xen))
-obj-y := $(call cherrypickxen, $(obj-y))
-endif
+obj-$(CONFIG_XEN) := main.o if.o
diff -r 670f8d5305d2 -r 50477b1b3016 arch/i386/mm/Makefile
--- a/arch/i386/mm/Makefile Thu Jul 12 16:05:09 2007 +0100
+++ b/arch/i386/mm/Makefile Fri Jul 13 13:35:06 2007 +0100
@@ -8,11 +8,4 @@ obj-$(CONFIG_HUGETLB_PAGE) += hugetlbpag
obj-$(CONFIG_HUGETLB_PAGE) += hugetlbpage.o
obj-$(CONFIG_HIGHMEM) += highmem.o
obj-$(CONFIG_BOOT_IOREMAP) += boot_ioremap.o
-
-ifdef CONFIG_XEN
-include $(srctree)/scripts/Makefile.xen
-
-obj-y += hypervisor.o
-
-obj-y := $(call cherrypickxen, $(obj-y))
-endif
+obj-$(CONFIG_XEN) += hypervisor.o
diff -r 670f8d5305d2 -r 50477b1b3016 arch/i386/pci/Makefile
--- a/arch/i386/pci/Makefile Thu Jul 12 16:05:09 2007 +0100
+++ b/arch/i386/pci/Makefile Fri Jul 13 13:35:06 2007 +0100
@@ -16,8 +16,3 @@ pci-$(CONFIG_X86_NUMAQ) := numa.o irq.o
pci-$(CONFIG_X86_NUMAQ) := numa.o irq.o
obj-y += $(pci-y) common.o
-
-ifdef CONFIG_XEN
-include $(srctree)/scripts/Makefile.xen
-obj-y := $(call cherrypickxen, $(obj-y))
-endif
diff -r 670f8d5305d2 -r 50477b1b3016 arch/x86_64/Makefile
--- a/arch/x86_64/Makefile Thu Jul 12 16:05:09 2007 +0100
+++ b/arch/x86_64/Makefile Fri Jul 13 13:35:06 2007 +0100
@@ -80,7 +80,6 @@ PHONY += bzImage bzlilo install archmrpr
ifdef CONFIG_XEN
CPPFLAGS := -Iinclude$(if $(KBUILD_SRC),2)/asm/mach-xen $(CPPFLAGS)
-head-y := arch/x86_64/kernel/head-xen.o arch/x86_64/kernel/head64-xen.o
arch/x86_64/kernel/init_task.o
LDFLAGS_vmlinux := -e startup_64
boot := arch/i386/boot-xen
.PHONY: vmlinuz
diff -r 670f8d5305d2 -r 50477b1b3016 arch/x86_64/ia32/Makefile
--- a/arch/x86_64/ia32/Makefile Thu Jul 12 16:05:09 2007 +0100
+++ b/arch/x86_64/ia32/Makefile Fri Jul 13 13:35:06 2007 +0100
@@ -37,15 +37,8 @@ AFLAGS_vsyscall-syscall.o = -m32 -Wa,-32
ifdef CONFIG_XEN
AFLAGS_vsyscall-int80.o = -m32 -Wa,-32 -Iarch/i386/kernel
-CFLAGS_syscall32-xen.o += -DUSE_INT80
-AFLAGS_syscall32_syscall-xen.o += -DUSE_INT80
+CFLAGS_syscall32.o += -DUSE_INT80
+AFLAGS_syscall32_syscall.o += -DUSE_INT80
-$(obj)/syscall32_syscall-xen.o: \
- $(foreach F,int80 sysenter syscall,$(obj)/vsyscall-$F.so)
-
-targets := $(foreach F,int80 sysenter syscall,vsyscall-$F.o vsyscall-$F.so)
-
-include $(srctree)/scripts/Makefile.xen
-
-obj-y := $(call cherrypickxen, $(obj-y))
+$(obj)/syscall32_syscall.o: $(obj)/vsyscall-int80.so
endif
diff -r 670f8d5305d2 -r 50477b1b3016 arch/x86_64/kernel/Makefile
--- a/arch/x86_64/kernel/Makefile Thu Jul 12 16:05:09 2007 +0100
+++ b/arch/x86_64/kernel/Makefile Fri Jul 13 13:35:06 2007 +0100
@@ -57,18 +57,8 @@ msr-$(subst m,y,$(CONFIG_X86_MSR)) += .
msr-$(subst m,y,$(CONFIG_X86_MSR)) += ../../i386/kernel/msr.o
alternative-y += ../../i386/kernel/alternative.o
-ifdef CONFIG_XEN
-time-y += ../../i386/kernel/time-xen.o
-pci-dma-y += ../../i386/kernel/pci-dma-xen.o
-microcode-$(subst m,y,$(CONFIG_MICROCODE)) :=
../../i386/kernel/microcode-xen.o
-quirks-y := ../../i386/kernel/quirks-xen.o
+time-$(CONFIG_XEN) += ../../i386/kernel/time.o
+pci-dma-$(CONFIG_XEN) += ../../i386/kernel/pci-dma.o
-n-obj-xen := i8259.o reboot.o i8237.o smpboot.o trampoline.o
-
-include $(srctree)/scripts/Makefile.xen
-
-obj-y := $(call filterxen, $(obj-y), $(n-obj-xen))
-obj-y := $(call cherrypickxen, $(obj-y))
-extra-y := $(call cherrypickxen, $(extra-y))
-%/head-xen.o %/head-xen.s: EXTRA_AFLAGS :=
-endif
+disabled-obj-$(CONFIG_XEN) := i8259.o reboot.o smpboot.o trampoline.o
+%/head.o %/head.s: $(if $(CONFIG_XEN),EXTRA_AFLAGS,dummy) :=
diff -r 670f8d5305d2 -r 50477b1b3016 arch/x86_64/mm/Makefile
--- a/arch/x86_64/mm/Makefile Thu Jul 12 16:05:09 2007 +0100
+++ b/arch/x86_64/mm/Makefile Fri Jul 13 13:35:06 2007 +0100
@@ -7,15 +7,8 @@ obj-$(CONFIG_NUMA) += numa.o
obj-$(CONFIG_NUMA) += numa.o
obj-$(CONFIG_K8_NUMA) += k8topology.o
obj-$(CONFIG_ACPI_NUMA) += srat.o
+obj-$(CONFIG_XEN) += hypervisor.o
hugetlbpage-y = ../../i386/mm/hugetlbpage.o
-
-ifdef CONFIG_XEN
-include $(srctree)/scripts/Makefile.xen
-
-ioremap-y += ../../i386/mm/ioremap-xen.o
-hypervisor-y += ../../i386/mm/hypervisor.o
-obj-y += hypervisor.o
-
-obj-y := $(call cherrypickxen, $(obj-y))
-endif
+ioremap-$(CONFIG_XEN) := ../../i386/mm/ioremap.o
+hypervisor-y := ../../i386/mm/hypervisor.o
diff -r 670f8d5305d2 -r 50477b1b3016 arch/x86_64/pci/Makefile
--- a/arch/x86_64/pci/Makefile Thu Jul 12 16:05:09 2007 +0100
+++ b/arch/x86_64/pci/Makefile Fri Jul 13 13:35:06 2007 +0100
@@ -28,10 +28,3 @@ fixup-y += ../../i386/pci/fixup.o
fixup-y += ../../i386/pci/fixup.o
i386-y += ../../i386/pci/i386.o
init-y += ../../i386/pci/init.o
-
-ifdef CONFIG_XEN
-irq-y := ../../i386/pci/irq-xen.o
-include $(srctree)/scripts/Makefile.xen
-
-obj-y := $(call cherrypickxen, $(obj-y))
-endif
diff -r 670f8d5305d2 -r 50477b1b3016 scripts/Makefile.build
--- a/scripts/Makefile.build Thu Jul 12 16:05:09 2007 +0100
+++ b/scripts/Makefile.build Fri Jul 13 13:35:06 2007 +0100
@@ -66,6 +66,18 @@ endif
ifndef obj
$(warning kbuild: Makefile.build is included improperly)
+endif
+
+ifeq ($(CONFIG_XEN),y)
+$(objtree)/scripts/Makefile.xen: $(srctree)/scripts/Makefile.xen.awk
$(srctree)/scripts/Makefile.build
+ @echo ' Updating $@'
+ @$(AWK) -f $< $(filter-out $<,$^) >$@
+
+xen-src-single-used-m := $(patsubst $(srctree)/%,%,$(wildcard $(addprefix
$(srctree)/,$(single-used-m:.o=-xen.c))))
+xen-single-used-m := $(xen-src-single-used-m:-xen.c=.o)
+single-used-m := $(filter-out $(xen-single-used-m),$(single-used-m))
+
+-include $(objtree)/scripts/Makefile.xen
endif
# ===========================================================================
diff -r 670f8d5305d2 -r 50477b1b3016 scripts/Makefile.lib
--- a/scripts/Makefile.lib Thu Jul 12 16:05:09 2007 +0100
+++ b/scripts/Makefile.lib Fri Jul 13 13:35:06 2007 +0100
@@ -12,6 +12,12 @@ obj-m := $(filter-out $(obj-y),$(obj-m))
# Filter out objects already built-in
lib-y := $(filter-out $(obj-y), $(sort $(lib-y) $(lib-m)))
+
+# Remove objects forcibly disabled
+
+obj-y := $(filter-out $(disabled-obj-y),$(obj-y))
+obj-m := $(filter-out $(disabled-obj-y),$(obj-m))
+lib-y := $(filter-out $(disabled-obj-y),$(lib-y))
# Handle objects in subdirs
diff -r 670f8d5305d2 -r 50477b1b3016 scripts/Makefile.xen.awk
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/scripts/Makefile.xen.awk Fri Jul 13 13:35:06 2007 +0100
@@ -0,0 +1,34 @@
+BEGIN {
+ is_rule = 0
+}
+
+/^[[:space:]]*#/ {
+ next
+}
+
+/^[[:space:]]*$/ {
+ if (is_rule)
+ print("")
+ is_rule = 0
+ next
+}
+
+/:[[:space:]]*%\.[cS][[:space:]]/ {
+ line = gensub(/%.([cS])/, "%-xen.\\1", "g", $0)
+ line = gensub(/(single-used-m)/, "xen-\\1", "g", line)
+ print line
+ is_rule = 1
+ next
+}
+
+/^[^\t]$/ {
+ if (is_rule)
+ print("")
+ is_rule = 0
+ next
+}
+
+is_rule {
+ print $0
+ next
+}
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|