* Tore Anderson

>  I think that file is only used if ARCH=xen.  Which is correct for
> all released versions of Xen, but the new implementation that
> eventually will be merged into the kernel sources use ARCH=i386 (or
> x86_64), and then you choose Xen-compatible when asked for
> Subarchitecture Type under Processor type and features in
> menuconfig.  This sets CONFIG_X86_XEN=y.

* Manoj Srivastava

>         Have your tried make-kpkg with ARCH=xen? I think I see code
>  that'll allowit to do the right thing.

  Hmm.  I think we're talking past each other.  I'll try to explain.
 When the Xen project started releasing kernel patches, they made Xen a
 completely separate architecture.  To build it you needed ARCH=xen.
 All released versions of Xen use ARCH=xen, and make-kpkg are able to
 build packages of these kernels just fine.  This bug report is not
 about those kernels, however.

  Now, the Xen people wanted to have their code accepted into Linus'
 tarball.  However, the attitude of the people on LKML was something
 like:  «Why do you need a completely separate arch/xen/ when 90% of
 the code is the same as in arch/i386/?  Think about the code
 duplication and the maintenance nightmare it will be.  We won't accept
 your patch before it improves on these issues.»

  So the Xen people, determined on getting their code into Linus' tree,
 went back to the drawing board and came up with a plan that should
 please the LKML people.  Instead of having Xen a separate architecture,
 they made it a sub architecture of i386 (and x86_64, and in the future
 probably all other architectures Xen is ported to as well).  In
 essence, that means that the arch/xen/ is removed, and all attempts to
 build the kernel with ARCH=xen will just fail with an error message
 such as (example of "make oldconfig" from the Mercurial pull of today):

    Makefile:449: /usr/src/linux-2.6-xen/arch/xen/Makefile: No such file or 
directory
    make: *** No rule to make target 
`/usr/src/linux-2.6-xen/arch/xen/Makefile'.  Stop.

  Instead, all Xen-specific code are moved to arch/i386/mach-xen/ (for
 i386 at least).

  Now, in order to build a Xen kernel, you make your *config target of
 choice (using ARCH=i386), and when you are asked for "Subarchitecture
 type" (where most people select "PC-compatible"), you must instead
 select "Xen-compatible".  This sets CONFIG_X86_XEN=y.  Then you can go
 on to build the kernel image as normal, still using ARCH=i386.  But not
 bzImage, only vmlinuz - that's where make-kpkg currently fail.  My bug
 report applies to these kernels only.

  To the best of my knowlegde, the only way to obtain such a kernel
 source is through the Mercurial repository.  All released stable,
 alpha, beta, etc. versions are the old ARCH=xen way.  But that will
 change as the Xen-as-subarch three reaches maturity;  I doubt they want
 to maintain two separate source trees for very long, and the ARCH=xen
 way is a dead end due to the kernel maintainers' refusal to merge it.
 It seems the Xen-as-subarch tree is where the developers are at too,
 linux-2.6-xen.hg has been at 2.6.15 for some time, while
 xen-unstable.hg (where the most recent ARCH=xen code is found) is
 still at 2.6.12.

  I hope that cleared things up?  :-)

Kind regards
-- 
Tore Anderson


Reply via email to