Description of problem: Version-Release number of selected component (if applicable): How reproducible: building out of tree object files fails for xen kernels Steps to Reproduce: 1. cp ./configs/xen-config .config 2. make O=/tmp/objdir oldconfig 3. make O=/tmp/objdir bzIma Actual results: OBJCOPY vmlinux-stripped GZIP vmlinuz ln: creating symbolic link `arch/i386/boot/bzImage' to `../../../vmlinuz': No such file or directory make[2]: *** [bzImage] Error 1 make[1]: *** [bzImage] Error 2 make[1]: Leaving directory `/usr/src/redhat/BUILD/kernel-2.6.9/linux-2.6.9' ***** make bzImage Failed: ***** Expected results: successul build Additional info:
Sorry dude, I'm on RHEL5 now.
Created attachment 140014 [details] A simple fix for the Makefile issue; basically get rid of the ln -sf that was causing the problem.
The previous patch should fix the problem; since Xen munges the Makefiles so that "vmlinuz" is put at the top-level directory as it is, there is no need to symlink it at all. This maintains behavior with the current RHEL-4 tree.
Sigh. Apparently I was on crack before; it is symlinking *from* $TOPDIR/vmlinuz to arch/i386/boot/bzImage. I'm still looking at this.
Created attachment 142318 [details] Second, more complete fix for out-of-tree (really bzImage) building problem.
Created attachment 142409 [details] Yet another fix for the out of tree problem. Let's try this one more time; I think this patch actually fixes it. I'm waiting on the results of Jeff Burke's testing to know for sure.
Jeff Burke's testing looked good; posted to rhkernel-list
committed in stream U5 build 42.31. A test kernel with this patch is available from http://people.redhat.com/~jbaron/rhel4/
QE ack for RHEL4.5.
When I try this using the -48.EL kernel source tree, I get this after doing the make bzImage step described above. I tried a ' make O=/tmp/objdir clean' and that didn't help. The error makes no sense as running a make mrproper would just undo the previous make oldconfig step. [root@dhcp58-247 linux-2.6.9]# make O=/tmp/objdir bzImage Using /usr/src/redhat/BUILD/kernel-2.6.9/linux-2.6.9 as source for kernel /usr/src/redhat/BUILD/kernel-2.6.9/linux-2.6.9 is not clean, please run 'make mrproper' in the '/usr/src/redhat/BUILD/kernel-2.6.9/linux-2.6.9' directory. make[1]: *** [prepare1] Error 1 make: *** [bzImage] Error 2
I believe this is a limitation/feature of the build system. If you are going to build things out of tree (ala "make O=/tmp/objdir bzImage"), you *also* have to copy the .config file there, run "make O=/tmp/objdir oldconfig", and make sure that the "pristine" tree (i.e. /usr/src/redhat/BUILD/kernel-2.6.9/linux-2.6.9) is clean via "make mrproper". If you do these three steps, does the out of tree build work? Chris Lalancette
yup, that worked. I was able to verify the bug with the -42.22 kernel and the fix with the -48 kernel.
An advisory has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on the solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHBA-2007-0304.html