WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] [PATCH] linux: adjust make logic

To: <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: [Xen-devel] [PATCH] linux: adjust make logic
From: "Jan Beulich" <jbeulich@xxxxxxxxxx>
Date: Thu, 12 Jul 2007 17:06:33 +0100
Delivery-date: Thu, 12 Jul 2007 09:03:20 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
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.

As before, the patch works on 2.6.22 and was just made apply to the aged
Xen repository.

Signed-off-by: Jan Beulich <jbeulich@xxxxxxxxxx>

Index: head-2007-07-10/arch/i386/Makefile
===================================================================
--- head-2007-07-10.orig/arch/i386/Makefile     2007-07-10 10:29:24.000000000 
+0200
+++ head-2007-07-10/arch/i386/Makefile  2007-07-10 11:19:31.000000000 +0200
@@ -129,7 +129,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
Index: head-2007-07-10/arch/i386/kernel/Makefile
===================================================================
--- head-2007-07-10.orig/arch/i386/kernel/Makefile      2007-07-10 
11:14:07.000000000 +0200
+++ head-2007-07-10/arch/i386/kernel/Makefile   2007-07-10 11:19:31.000000000 
+0200
@@ -43,13 +43,8 @@ obj-$(CONFIG_K8_NB)          += k8.o
 EXTRA_AFLAGS   := -traditional
 
 obj-$(CONFIG_SCx200)           += scx200.o
+obj-$(CONFIG_XEN)              += fixup.o
 
-ifdef CONFIG_XEN
-vsyscall_note := vsyscall-note-xen.o
-else
-vsyscall_note := vsyscall-note.o
-endif
-
 # vsyscall.o contains the vsyscall DSO images as __initdata.
 # We must build both images before we can assemble it.
 # Note: kbuild does not track this dependency due to usage of .incbin
@@ -74,7 +69,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
@@ -86,20 +81,11 @@ $(obj)/built-in.o: ld_flags += -R $(obj)
 
 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) :=
Index: head-2007-07-10/arch/i386/kernel/acpi/Makefile
===================================================================
--- head-2007-07-10.orig/arch/i386/kernel/acpi/Makefile 2007-07-10 
11:04:27.000000000 +0200
+++ head-2007-07-10/arch/i386/kernel/acpi/Makefile      2007-07-10 
11:19:31.000000000 +0200
@@ -8,7 +8,3 @@ ifneq ($(CONFIG_ACPI_PROCESSOR),)
 obj-y                          += cstate.o processor.o
 endif
 
-ifdef CONFIG_XEN
-include $(srctree)/scripts/Makefile.xen
-obj-y := $(call cherrypickxen, $(obj-y), $(src))
-endif
Index: head-2007-07-10/arch/i386/kernel/cpu/Makefile
===================================================================
--- head-2007-07-10.orig/arch/i386/kernel/cpu/Makefile  2007-07-10 
11:19:09.000000000 +0200
+++ head-2007-07-10/arch/i386/kernel/cpu/Makefile       2007-07-10 
11:19:31.000000000 +0200
@@ -20,7 +20,3 @@ obj-$(CONFIG_CPU_FREQ)        +=      cpufreq/
 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
Index: head-2007-07-10/arch/i386/kernel/cpu/mtrr/Makefile
===================================================================
--- head-2007-07-10.orig/arch/i386/kernel/cpu/mtrr/Makefile     2007-07-10 
10:29:24.000000000 +0200
+++ head-2007-07-10/arch/i386/kernel/cpu/mtrr/Makefile  2007-07-10 
11:19:31.000000000 +0200
@@ -1,10 +1,4 @@
 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
Index: head-2007-07-10/arch/i386/kernel/early_printk-xen.c
===================================================================
--- head-2007-07-10.orig/arch/i386/kernel/early_printk-xen.c    2007-07-10 
10:29:23.000000000 +0200
+++ /dev/null   1970-01-01 00:00:00.000000000 +0000
@@ -1,2 +0,0 @@
-
-#include "../../x86_64/kernel/early_printk-xen.c"
Index: head-2007-07-10/arch/i386/mm/Makefile
===================================================================
--- head-2007-07-10.orig/arch/i386/mm/Makefile  2007-07-10 10:29:24.000000000 
+0200
+++ head-2007-07-10/arch/i386/mm/Makefile       2007-07-10 11:19:31.000000000 
+0200
@@ -8,11 +8,4 @@ obj-$(CONFIG_NUMA) += discontig.o
 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
Index: head-2007-07-10/arch/i386/pci/Makefile
===================================================================
--- head-2007-07-10.orig/arch/i386/pci/Makefile 2007-07-10 10:29:24.000000000 
+0200
+++ head-2007-07-10/arch/i386/pci/Makefile      2007-07-10 11:19:31.000000000 
+0200
@@ -16,8 +16,3 @@ pci-$(CONFIG_X86_VISWS)               := visws.o fixu
 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
Index: head-2007-07-10/arch/x86_64/Makefile
===================================================================
--- head-2007-07-10.orig/arch/x86_64/Makefile   2007-07-10 11:19:26.000000000 
+0200
+++ head-2007-07-10/arch/x86_64/Makefile        2007-07-10 11:19:31.000000000 
+0200
@@ -94,7 +94,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
Index: head-2007-07-10/arch/x86_64/ia32/Makefile
===================================================================
--- head-2007-07-10.orig/arch/x86_64/ia32/Makefile      2007-07-10 
11:19:31.000000000 +0200
+++ head-2007-07-10/arch/x86_64/ia32/Makefile   2007-07-10 11:19:31.000000000 
+0200
@@ -37,15 +37,8 @@ $(obj)/vsyscall-%.so: $(src)/vsyscall.ld
 
 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
Index: head-2007-07-10/arch/x86_64/kernel/Makefile
===================================================================
--- head-2007-07-10.orig/arch/x86_64/kernel/Makefile    2007-07-10 
11:19:11.000000000 +0200
+++ head-2007-07-10/arch/x86_64/kernel/Makefile 2007-07-10 11:19:31.000000000 
+0200
@@ -64,18 +64,8 @@ alternative-y                        += ../../i386/kernel/alt
 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) :=
Index: head-2007-07-10/arch/x86_64/mm/Makefile
===================================================================
--- head-2007-07-10.orig/arch/x86_64/mm/Makefile        2007-07-10 
10:29:24.000000000 +0200
+++ head-2007-07-10/arch/x86_64/mm/Makefile     2007-07-10 11:19:31.000000000 
+0200
@@ -7,15 +7,8 @@ obj-$(CONFIG_HUGETLB_PAGE) += hugetlbpag
 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
Index: head-2007-07-10/arch/x86_64/pci/Makefile
===================================================================
--- head-2007-07-10.orig/arch/x86_64/pci/Makefile       2007-07-10 
10:29:24.000000000 +0200
+++ head-2007-07-10/arch/x86_64/pci/Makefile    2007-07-10 11:19:31.000000000 
+0200
@@ -30,10 +30,3 @@ i386-y  += ../../i386/pci/i386.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
Index: head-2007-07-10/scripts/Makefile.build
===================================================================
--- head-2007-07-10.orig/scripts/Makefile.build 2007-07-09 01:32:17.000000000 
+0200
+++ head-2007-07-10/scripts/Makefile.build      2007-07-10 11:19:32.000000000 
+0200
@@ -68,6 +68,18 @@ 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
+
 # ===========================================================================
 
 ifneq ($(strip $(lib-y) $(lib-m) $(lib-n) $(lib-)),)
Index: head-2007-07-10/scripts/Makefile.lib
===================================================================
--- head-2007-07-10.orig/scripts/Makefile.lib   2007-07-09 01:32:17.000000000 
+0200
+++ head-2007-07-10/scripts/Makefile.lib        2007-07-10 11:19:32.000000000 
+0200
@@ -13,6 +13,12 @@ obj-m := $(filter-out $(obj-y),$(obj-m))
 
 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
 # ---------------------------------------------------------------------------
Index: head-2007-07-10/scripts/Makefile.xen
===================================================================
--- head-2007-07-10.orig/scripts/Makefile.xen   2007-07-10 10:29:24.000000000 
+0200
+++ /dev/null   1970-01-01 00:00:00.000000000 +0000
@@ -1,14 +0,0 @@
-
-# cherrypickxen($1 = allobj)
-cherrypickxen = $(foreach var, $(1), \
-               $(shell o=$(var); \
-                       c=$${o%.o}-xen.c; \
-                       s=$${o%.o}-xen.S; \
-                       oxen=$${o%.o}-xen.o; \
-                       [ -f $(srctree)/$(src)/$${c} ] || \
-                          [ -f $(srctree)/$(src)/$${s} ] \
-                               && echo $$oxen \
-                               || echo $(var) ) \
-         )
-# filterxen($1 = allobj, $2 = noobjs)
-filterxen = $(filter-out $(2), $(1))
Index: head-2007-07-10/scripts/Makefile.xen.awk
===================================================================
--- /dev/null   1970-01-01 00:00:00.000000000 +0000
+++ head-2007-07-10/scripts/Makefile.xen.awk    2007-07-10 11:19:32.000000000 
+0200
@@ -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-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-devel] [PATCH] linux: adjust make logic, Jan Beulich <=