[kbuild-devel] can't build head_8260.S
I am getting further in the ppc port for 2.4.x kernels. I'm stuck trying to compile head_8260.S in the boot/mbx directory. The error message is: make[1]: *** No rule to make target `arch/ppc/boot/mbx/head_8260.o', needed by `arch/ppc/boot/mbx/zvmlinux'. Stop. I don't know why. Where are the compile rules ? I've grepped the root directory and scripts directory but can't not find anything (apart from Rules.mk which isn't used anymore.I think). Brendan Simon. ___ kbuild-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/kbuild-devel
Re: [kbuild-devel] can't build head_8260.S
On Wed, 24 Apr 2002 18:06:57 +1000, Brendan J Simon [EMAIL PROTECTED] wrote: I am getting further in the ppc port for 2.4.x kernels. I'm stuck trying to compile head_8260.S in the boot/mbx directory. The error message is: make[1]: *** No rule to make target `arch/ppc/boot/mbx/head_8260.o', needed by `arch/ppc/boot/mbx/zvmlinux'. Stop. The existing kbuild system has generic rules for building .o from .S but generic rules do not work with special flags, separate source and object etc. so kbuild 2.5 does not use generic rules. pp_makefile4 builds the global makefile with explicit rules for what is required, including deciding how to convert C or asm to object. pp_makefile4 only generates make rules if the object is selected. I am guessing that you have hard coded head_8260.o in the link commands for zvmlinux. Objects to be linked must be selected under the same base_target(), like this from i386. base_target(bzImage) select(bbootsect.o bsetup.o) user_command(bzImage ($(objfile bbootsect) $(objfile bsetup) $(objfile compressed/bvmlinux) $(objfile tools/build)) (set -e; $(OBJCOPY) $(OBJCOPYFLAGS) $(objfile compressed/bvmlinux) $(objfile compressed/bvmlinux.out); cd $(objdir); tools/build -b bbootsect bsetup compressed/bvmlinux.out $(ROOT_DEV) $(@F)) () ) ___ kbuild-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/kbuild-devel
Re: [kbuild-devel] can't build head_8260.S
Keith Owens wrote: On Wed, 24 Apr 2002 18:06:57 +1000, Brendan J Simon [EMAIL PROTECTED] wrote: I am getting further in the ppc port for 2.4.x kernels. I'm stuck trying to compile head_8260.S in the boot/mbx directory. The error message is: make[1]: *** No rule to make target `arch/ppc/boot/mbx/head_8260.o', needed by `arch/ppc/boot/mbx/zvmlinux'. Stop. The existing kbuild system has generic rules for building .o from .S but generic rules do not work with special flags, separate source and object etc. so kbuild 2.5 does not use generic rules. pp_makefile4 builds the global makefile with explicit rules for what is required, including deciding how to convert C or asm to object. pp_makefile4 only generates make rules if the object is selected. I am guessing that you have hard coded head_8260.o in the link commands for zvmlinux. Objects to be linked must be selected under the same base_target(), like this from i386. base_target(bzImage) select(bbootsect.o bsetup.o) user_command(bzImage ($(objfile bbootsect) $(objfile bsetup) $(objfile compressed/bvmlinux) $(objfile tools/build)) (set -e; $(OBJCOPY) $(OBJCOPYFLAGS) $(objfile compressed/bvmlinux) $(objfile compressed/bvmlinux.out); cd $(objdir); tools/build -b bbootsect bsetup compressed/bvmlinux.out $(ROOT_DEV) $(@F)) () ) Your guess is correct :) The reason I avoided select() was that there is more than one target in the mbx/boot directory (I think they are zImage, zImage.initrd, znet, znet.initrd). I was not sure how to use select with these options as they all use the same source files. It seemed very repetitive to have multiple base_target() and select() statements. I have no problem with multiple base_target() statements but repeating the select() statements for each base_target() statement seemed to verbose and prone to copy/paste errors ;-) There is probably a better way. Any suggestions ?? Thanks, Brendan Simon. ___ kbuild-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/kbuild-devel