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

Re: [Xen-devel] xen-unstable compile error in linux-2.6.18-xen_x86_64 and x86


  • To: "Yoshiaki Tamura" <tamura.yoshiaki@xxxxxxxxxxxxx>
  • From: "Todd Deshane" <deshantm@xxxxxxxxx>
  • Date: Fri, 14 Sep 2007 11:59:39 -0400
  • Cc: moriai@xxxxxxxx, xen-devel@xxxxxxxxxxxxxxxxxxx
  • Delivery-date: Fri, 14 Sep 2007 09:00:19 -0700
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:reply-to:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=Y8jRInr02E0YLjzB1rFLoNZf9+fALrxL17AV2VWFrKayY9hjXCcRZ0lCIH1VWwVOwve6mOMHijyZOhzAYKoFs1P4pdBvstAzEQ/CjfGttHdtUw2TFOVrstcKyjHBevrQFbIpbZ361IcuRnAwxTyvJanESi6+XPYXVb/QpPkGIXk=
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>

Hi All,

Thanks for the patch Yoshi. I got me past my initial error and onto a
new one (see below).

On 8/3/07, Yoshiaki Tamura <tamura.yoshiaki@xxxxxxxxxxxxx> wrote:
> Hi,
>
> I got the same error when I built changeset 152 of linux-2.6.18-xen.hg on 
> debian
> etch i386 machine. This problem occurred after changeset 130 and 131.
> The following patch reverts changeset 130 and changeset 131 manually.
> I hope this is useful for someone.
>
> Thanks,
>
> Yoshi Tamura
>
> ---
> diff -r 50477b1b3016 -r 670f8d5305d2 arch/i386/Makefile
> --- a/arch/i386/Makefile        Fri Jul 13 13:35:06 2007 +0100
> +++ b/arch/i386/Makefile        Thu Jul 12 16:05:09 2007 +0100
> @@ -116,6 +116,7 @@ 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 50477b1b3016 -r 670f8d5305d2 arch/i386/kernel/Makefile
> --- a/arch/i386/kernel/Makefile Fri Jul 13 13:35:06 2007 +0100
> +++ b/arch/i386/kernel/Makefile Thu Jul 12 16:05:09 2007 +0100
> @@ -43,7 +43,12 @@ EXTRA_AFLAGS   := -traditional
>   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.
> @@ -66,7 +71,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.o FORCE
> +                     $(obj)/vsyscall-%.o $(obj)/$(vsyscall_note) FORCE
>         $(call if_changed,syscall)
>
>   # We also create a special relocatable object that should mirror the symbol
> @@ -78,11 +83,20 @@ extra-y += vsyscall-syms.o
>
>   SYSCFLAGS_vsyscall-syms.o = -r
>   $(obj)/vsyscall-syms.o: $(src)/vsyscall.lds \
> -                       $(obj)/vsyscall-sysenter.o $(obj)/vsyscall-note.o 
> FORCE
> +                       $(obj)/vsyscall-sysenter.o $(obj)/$(vsyscall_note) 
> FORCE
>         $(call if_changed,syscall)
>
> -early_printk-y            += ../../x86_64/kernel/early_printk.o
>   k8-y                      += ../../x86_64/kernel/k8.o
>
> -disabled-obj-$(CONFIG_XEN) := i8259.o reboot.o smpboot.o trampoline.o
> -%/head.o %/head.s: $(if $(CONFIG_XEN),EXTRA_AFLAGS,dummy) :=
> +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
> diff -r 50477b1b3016 -r 670f8d5305d2 arch/i386/kernel/acpi/Makefile
> --- a/arch/i386/kernel/acpi/Makefile    Fri Jul 13 13:35:06 2007 +0100
> +++ b/arch/i386/kernel/acpi/Makefile    Thu Jul 12 16:05:09 2007 +0100
> @@ -6,3 +6,7 @@ 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 50477b1b3016 -r 670f8d5305d2 arch/i386/kernel/cpu/Makefile
> --- a/arch/i386/kernel/cpu/Makefile     Fri Jul 13 13:35:06 2007 +0100
> +++ b/arch/i386/kernel/cpu/Makefile     Thu Jul 12 16:05:09 2007 +0100
> @@ -18,3 +18,7 @@ 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 50477b1b3016 -r 670f8d5305d2 arch/i386/kernel/cpu/mtrr/Makefile
> --- a/arch/i386/kernel/cpu/mtrr/Makefile        Fri Jul 13 13:35:06 2007 +0100
> +++ b/arch/i386/kernel/cpu/mtrr/Makefile        Thu Jul 12 16:05:09 2007 +0100
> @@ -3,4 +3,10 @@ obj-y          += cyrix.o
>   obj-y         += cyrix.o
>   obj-y         += centaur.o
>
> -obj-$(CONFIG_XEN) := main.o if.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
> diff -r 50477b1b3016 -r 670f8d5305d2 arch/i386/mm/Makefile
> --- a/arch/i386/mm/Makefile     Fri Jul 13 13:35:06 2007 +0100
> +++ b/arch/i386/mm/Makefile     Thu Jul 12 16:05:09 2007 +0100
> @@ -8,4 +8,11 @@ obj-$(CONFIG_HUGETLB_PAGE) += hugetlbpag
>   obj-$(CONFIG_HUGETLB_PAGE) += hugetlbpage.o
>   obj-$(CONFIG_HIGHMEM) += highmem.o
>   obj-$(CONFIG_BOOT_IOREMAP) += boot_ioremap.o
> -obj-$(CONFIG_XEN) += hypervisor.o
> +
> +ifdef CONFIG_XEN
> +include $(srctree)/scripts/Makefile.xen
> +
> +obj-y          += hypervisor.o
> +
> +obj-y := $(call cherrypickxen, $(obj-y))
> +endif
> diff -r 50477b1b3016 -r 670f8d5305d2 arch/i386/pci/Makefile
> --- a/arch/i386/pci/Makefile    Fri Jul 13 13:35:06 2007 +0100
> +++ b/arch/i386/pci/Makefile    Thu Jul 12 16:05:09 2007 +0100
> @@ -16,3 +16,8 @@ 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 50477b1b3016 -r 670f8d5305d2 arch/x86_64/Makefile
> --- a/arch/x86_64/Makefile      Fri Jul 13 13:35:06 2007 +0100
> +++ b/arch/x86_64/Makefile      Thu Jul 12 16:05:09 2007 +0100
> @@ -80,6 +80,7 @@ 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 50477b1b3016 -r 670f8d5305d2 arch/x86_64/ia32/Makefile
> --- a/arch/x86_64/ia32/Makefile Fri Jul 13 13:35:06 2007 +0100
> +++ b/arch/x86_64/ia32/Makefile Thu Jul 12 16:05:09 2007 +0100
> @@ -37,8 +37,15 @@ AFLAGS_vsyscall-syscall.o = -m32 -Wa,-32
>
>   ifdef CONFIG_XEN
>   AFLAGS_vsyscall-int80.o = -m32 -Wa,-32 -Iarch/i386/kernel
> -CFLAGS_syscall32.o += -DUSE_INT80
> -AFLAGS_syscall32_syscall.o += -DUSE_INT80
> +CFLAGS_syscall32-xen.o += -DUSE_INT80
> +AFLAGS_syscall32_syscall-xen.o += -DUSE_INT80
>
> -$(obj)/syscall32_syscall.o: $(obj)/vsyscall-int80.so
> +$(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))
>   endif
> diff -r 50477b1b3016 -r 670f8d5305d2 arch/x86_64/kernel/Makefile
> --- a/arch/x86_64/kernel/Makefile       Fri Jul 13 13:35:06 2007 +0100
> +++ b/arch/x86_64/kernel/Makefile       Thu Jul 12 16:05:09 2007 +0100
> @@ -57,8 +57,18 @@ msr-$(subst m,y,$(CONFIG_X86_MSR))  += .
>   msr-$(subst m,y,$(CONFIG_X86_MSR))  += ../../i386/kernel/msr.o
>   alternative-y                 += ../../i386/kernel/alternative.o
>
> -time-$(CONFIG_XEN)             += ../../i386/kernel/time.o
> -pci-dma-$(CONFIG_XEN)          += ../../i386/kernel/pci-dma.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
>
> -disabled-obj-$(CONFIG_XEN)     := i8259.o reboot.o smpboot.o trampoline.o
> -%/head.o %/head.s: $(if $(CONFIG_XEN),EXTRA_AFLAGS,dummy) :=
> +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
> diff -r 50477b1b3016 -r 670f8d5305d2 arch/x86_64/mm/Makefile
> --- a/arch/x86_64/mm/Makefile   Fri Jul 13 13:35:06 2007 +0100
> +++ b/arch/x86_64/mm/Makefile   Thu Jul 12 16:05:09 2007 +0100
> @@ -7,8 +7,15 @@ 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
> -ioremap-$(CONFIG_XEN) := ../../i386/mm/ioremap.o
> -hypervisor-y := ../../i386/mm/hypervisor.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
> diff -r 50477b1b3016 -r 670f8d5305d2 arch/x86_64/pci/Makefile
> --- a/arch/x86_64/pci/Makefile  Fri Jul 13 13:35:06 2007 +0100
> +++ b/arch/x86_64/pci/Makefile  Thu Jul 12 16:05:09 2007 +0100
> @@ -28,3 +28,10 @@ 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 50477b1b3016 -r 670f8d5305d2 scripts/Makefile.build
> --- a/scripts/Makefile.build    Fri Jul 13 13:35:06 2007 +0100
> +++ b/scripts/Makefile.build    Thu Jul 12 16:05:09 2007 +0100
> @@ -66,18 +66,6 @@ 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 50477b1b3016 -r 670f8d5305d2 scripts/Makefile.lib
> --- a/scripts/Makefile.lib      Fri Jul 13 13:35:06 2007 +0100
> +++ b/scripts/Makefile.lib      Thu Jul 12 16:05:09 2007 +0100
> @@ -12,12 +12,6 @@ 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 50477b1b3016 -r 670f8d5305d2 scripts/Makefile.xen.awk
> --- a/scripts/Makefile.xen.awk  Fri Jul 13 13:35:06 2007 +0100
> +++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
> @@ -1,34 +0,0 @@
> -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
> -}
>

I just pulled the latest xen and linux unstable and applied the patch
above manually, since some of the line numbers had changed. It got rid
of the previous error I was having and it compiled the kernel for
awhile longer, but it came to a new error:

  CC      net/compat.o
  CC      net/sysctl_net.o
  LD      net/built-in.o
  CC      lib/sort.o
  CC      lib/parser.o
  CC      lib/halfmd4.o
  CC      lib/iomap_copy.o
  CC      lib/debug_locks.o
  CC      lib/kernel_lock.o
  CC      lib/plist.o
  HOSTCC  lib/gen_crc32table
  GEN     lib/crc32table.h
  CC      lib/crc32.o
  CC      lib/iomap.o
  LD      lib/reed_solomon/built-in.o
  LD      lib/zlib_deflate/built-in.o
  CC      lib/zlib_inflate/inffast.o
  CC      lib/zlib_inflate/inflate.o
  CC      lib/zlib_inflate/inftrees.o
  CC      lib/zlib_inflate/inflate_syms.o
  LD      lib/zlib_inflate/zlib_inflate.o
  LD      lib/zlib_inflate/built-in.o
  CC      lib/textsearch.o
  CC      lib/percpu_counter.o
  CC      lib/swiotlb.o
/home/deshantm/devel/linux-2.6.18-xen.hg/lib/swiotlb.c:270: error:
redefinition of 'address_needs_mapping'
/home/deshantm/devel/linux-2.6.18-xen.hg/include/asm-i386/mach-xen/asm/dma-mapping.h:17:
error: previous definition of 'address_needs_mapping' was here
make[6]: *** [lib/swiotlb.o] Error 1
make[5]: *** [lib] Error 2
make[4]: *** [vmlinuz] Error 2
make[3]: *** [vmlinuz] Error 2
make[3]: Leaving directory
`/home/deshantm/devel/xen-unstable.hg/build-linux-2.6.18-xen_x86_64'
make[2]: *** [build] Error 2
make[2]: Leaving directory `/home/deshantm/devel/xen-unstable.hg'
make[1]: *** [linux-2.6-xen-install] Error 2
make[1]: Leaving directory `/home/deshantm/devel/xen-unstable.hg'

I will make mrproper (again) re-build and turn on the V=1 etc. again.
And try again, but I don't understand why I can't pull xen unstable
directly and have it work... Does  anybody do that ever to test that
it works? If so, what could I possible be doing wrong?

Thanks for any thoughts or ideas

I really hope to contribute some code this year and be an active
contributor. I just need to get over the initial big learning curve as
to even simply building xen unstable, so as to be able to create
relevant patches.

Best regards,
Todd

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


 


Rackspace

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