* 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