Well, I have no idea why this particular errors has appeared,
but I took a look at the arm makefiles in 2.5.42.
This is my first sot at converting them to the new kbuild
way of doing things.
I have fixed several potential problems.
I also took advantage of the infrastructure in Rules.make, especially
in boot and boot/compressed.
I have installed arm-linux-gcc 2.95.3, but the compilations fails
early, so this is untested.
Let me know if you want me to proceed, and in that case where to get
a compile able arm-kernel.
	Sam
===== arch/arm/Makefile 1.23 vs edited =====
--- 1.23/arch/arm/Makefile	Mon Sep 23 01:33:05 2002
+++ edited/arch/arm/Makefile	Sat Oct 12 23:18:37 2002
@@ -179,8 +179,7 @@
 
 libs-y				+= arch/arm/lib/
 
-MAKEBOOT	 =$(MAKE) -C arch/$(ARCH)/boot
-MAKETOOLS	 =$(MAKE) -C arch/$(ARCH)/tools
+makeboot = $(call descend,arch/arm/boot,$(1))
 
 #	Update machine arch and proc symlinks if something which affects
 #	them changed.  We use .arch and .proc to indicate when they were
@@ -200,13 +199,13 @@
 
 prepare: maketools
 
-.PHONY: maketools
+.PHONY: maketools FORCE
 maketools: include/asm-arm/.arch include/asm-arm/.proc \
-	 include/asm-arm/constants.h include/linux/version.h FORCE
-	@$(MAKETOOLS)
+	   include/asm-arm/constants.h include/linux/version.h FORCE
+	+@$(call descend,arch/arm/tools, include/asm-arm/mach-types.h)
 
 bzImage zImage zinstall Image bootpImage install: vmlinux
-	@$(MAKEBOOT) $@
+	+@$(call makeboot,$@)
 
 MRPROPER_FILES	+= \
 	include/asm-arm/arch include/asm-arm/.arch \
@@ -215,18 +214,16 @@
 	include/asm-arm/mach-types.h
 
 # We use MRPROPER_FILES and CLEAN_FILES now
-archmrproper: FORCE
-	@/bin/true
-
+archmrproper:
 archclean: FORCE
-	@$(MAKEBOOT) clean
+	+@$(call makeboot,clean)
 
 # My testing targets (that short circuit a few dependencies)
-zImg:;	@$(MAKEBOOT) zImage
-Img:;	@$(MAKEBOOT) Image
-i:;	@$(MAKEBOOT) install
-zi:;	@$(MAKEBOOT) zinstall
-bp:;	@$(MAKEBOOT) bootpImage
+zImg:;	+@$(call makeboot, zImage)
+Img:;	+@$(call makeboot, Image)
+i:;	+@$(call makeboot, install)
+zi:;	+@$(call makeboot, zinstall)
+bp:;	+@$(call makeboot, bootpImage)
 
 #
 # Configuration targets.  Use these to select a
===== arch/arm/boot/Makefile 1.15 vs edited =====
--- 1.15/arch/arm/boot/Makefile	Wed Aug 21 17:00:38 2002
+++ edited/arch/arm/boot/Makefile	Sat Oct 12 22:18:57 2002
@@ -8,8 +8,6 @@
 # Copyright (C) 1995-2002 Russell King
 #
 
-SYSTEM	=$(TOPDIR)/vmlinux
-
 # Note: the following conditions must always be true:
 #   ZRELADDR == virt_to_phys(TEXTADDR)
 #   PARAMS_PHYS must be with 4MB of ZRELADDR
@@ -121,38 +119,46 @@
 ZBSSADDR	=ALIGN(4)
 endif
 
-export	SYSTEM ZTEXTADDR ZBSSADDR ZRELADDR INITRD_PHYS PARAMS_PHYS
+export	ZTEXTADDR ZBSSADDR ZRELADDR INITRD_PHYS PARAMS_PHYS
+
+include $(TOPDIR)/Rules.make
 
-Image:	$(SYSTEM)
-	$(OBJCOPY) $(OBJCOPYFLAGS) $< $@
+$(obj)/Image: vmlinux FORCE
+	$(call if_changed,objcopy)
 
 bzImage: zImage
 
-zImage:	compressed/vmlinux
-	$(OBJCOPY) $(OBJCOPYFLAGS) $< $@
+$(obj)/zImage:	$(obj)/compressed/vmlinux FORCE
+	$(call if_changed,objcopy)
 
-bootpImage: bootp/bootp
-	$(OBJCOPY) $(OBJCOPYFLAGS) $< $@
+$(obj)/bootpImage: $(obj)/bootp/bootp FORCE
+	$(call if_changed,objcopy)
 
-compressed/vmlinux: $(TOPDIR)/vmlinux FORCE
-	@$(MAKE) -C compressed vmlinux
+$(obj)/compressed/vmlinux: vmlinux FORCE
+	+@$(descend arch/arm/boot/compressed, vmlinux)
 
-bootp/bootp: zImage initrd FORCE
-	@$(MAKE) -C bootp bootp
+$(obj)/bootp/bootp: $(obj)/zImage initrd FORCE
+	+@$(descend arch/arm/boot/bootp, bootp)
 
+.PHONY: initrd
 initrd:
-	@test "$(INITRD_PHYS)" != "" || (echo This machine does not support INITRD; exit -1)
-	@test "$(INITRD)" != "" || (echo You must specify INITRD; exit -1)
-
-install: Image
-	sh ./install.sh $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) Image $(TOPDIR)/System.map "$(INSTALL_PATH)"
-
-zinstall: zImage
-	sh ./install.sh $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) zImage $(TOPDIR)/System.map "$(INSTALL_PATH)"
+	@test "$(INITRD_PHYS)" != "" || \
+	(echo This machine does not support INITRD; exit -1)
+	@test "$(INITRD)" != "" || \
+	(echo You must specify INITRD; exit -1)
+
+install: $(obj)/Image
+	$(CONFIG_SHELL) $(obj)/install.sh \
+	$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) \
+	$(obj)/Image System.map "$(INSTALL_PATH)"
+
+zinstall: $(obj)/zImage
+	$(CONFIG_SHELL) $(obj)/install.sh \
+	$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) \
+	$(obj)/zImage System.map "$(INSTALL_PATH)"
 
 clean:
-	$(RM) Image zImage bootpImage
-	@$(MAKE) -C compressed clean
-	@$(MAKE) -C bootp clean
+	$(RM) $(addprefix $(obj)/,Image zImage bootpImage)
+	+@$(call descend arch/arm/boot/bootp, clean)
+	+@$(call descend arch/arm/boot/compressed, clean)
 
-FORCE:
===== arch/arm/boot/bootp/Makefile 1.5 vs edited =====
--- 1.5/arch/arm/boot/bootp/Makefile	Wed Aug 21 17:11:43 2002
+++ edited/arch/arm/boot/bootp/Makefile	Sat Oct 12 22:31:50 2002
@@ -2,23 +2,25 @@
 # linux/arch/arm/boot/bootp/Makefile
 #
 
-ZSYSTEM		=$(TOPDIR)/arch/arm/boot/zImage
-ZLDFLAGS	=-p -X -T bootp.lds \
+ZSYSTEM		= arch/arm/boot/zImage
+ZLDFLAGS	=-p -X -T $(obj)/bootp.lds \
 		 --defsym initrd_addr=$(INITRD_PHYS) \
 		 --defsym params=$(PARAMS_PHYS)
 
-all:		bootp
+EXTRA_TARGETS := bootp
+
+include $(TOPDIR)/Rules.make
 
 # Note that bootp.lds picks up kernel.o and initrd.o
-bootp:		init.o kernel.o initrd.o bootp.lds
-		$(LD) $(ZLDFLAGS) -o $@ init.o
+$(obj)/bootp:	$(addprefix $(obj)/,init.o kernel.o initrd.o bootp.lds)
+		$(LD) $(ZLDFLAGS) -o $@ $(obj)/init.o
 
-kernel.o:	$(ZSYSTEM)
+$(obj)/kernel.o: $(ZSYSTEM)
 		$(LD) -r -s -o $@ -b binary $(ZSYSTEM)
 
-initrd.o:	$(INITRD)
+$(obj)/initrd.o: $(INITRD)
 		$(LD) -r -s -o $@ -b binary $(INITRD)
 
 .PHONY:		$(INITRD) $(ZSYSTEM)
 
-clean:;		$(RM) bootp
+clean:;		$(RM) $(obj)/bootp
===== arch/arm/boot/compressed/Makefile 1.9 vs edited =====
--- 1.9/arch/arm/boot/compressed/Makefile	Thu Jun 20 20:35:13 2002
+++ edited/arch/arm/boot/compressed/Makefile	Sat Oct 12 22:19:16 2002
@@ -3,15 +3,13 @@
 #
 # create a compressed vmlinuz image from the original vmlinux
 #
-# Note! SYSTEM, ZTEXTADDR, ZBSSADDR and ZRELADDR are now exported
+# Note! ZTEXTADDR, ZBSSADDR and ZRELADDR are now exported
 # from arch/arm/boot/Makefile
 #
 
-HEAD		 = head.o
-OBJS		 = misc.o
-CFLAGS		 = $(CPPFLAGS) -O2 -DSTDC_HEADERS $(CFLAGS_BOOT) -fpic
-FONTC		 = $(TOPDIR)/drivers/video/font_acorn_8x8.c
-ZLDFLAGS	 = -p -X -T vmlinux.lds
+HEAD	= head.o
+OBJS	= misc.o
+FONTC	= drivers/video/font_acorn_8x8.c
 
 #
 # Architecture dependencies
@@ -67,33 +65,35 @@
 
 SEDFLAGS	= s/TEXT_START/$(ZTEXTADDR)/;s/LOAD_ADDR/$(ZRELADDR)/;s/BSS_START/$(ZBSSADDR)/
 
-LIBGCC		:= $(shell $(CC) $(CFLAGS) --print-libgcc-file-name)
+EXTRA_TARGETS := vmlinux piggy.o font.o head.o $(OBJS)
+EXTRA_CFLAGS  := $(CFLAGS_BOOT) -fpic
+EXTRA_AFLAGS  := -traditional
 
-all:		vmlinux
+include $(TOPDIR)/Rules.make
 
-vmlinux:	$(HEAD) $(OBJS) piggy.o vmlinux.lds
-		$(LD) $(ZLDFLAGS) $(HEAD) $(OBJS) piggy.o $(LIBGCC) -o vmlinux
+LDFLAGS_vmlinux := -p -X -T $(obj)/vmlinux.lds \
+	$(shell $(CC) $(CFLAGS) --print-libgcc-file-name)
 
-$(HEAD): 	$(HEAD:.o=.S)
-		$(CC) $(AFLAGS) -traditional -c $(HEAD:.o=.S)
+$(obj)/vmlinux: $(obj)/$(HEAD) $(obj)/piggy.o $(obj)/vmlinux.lds \
+	 	$(addprefix $(obj)/, $(OBJS))
+	$(call if_changed,ld)
 
-piggy.o:	$(SYSTEM)
-		$(OBJCOPY) $(OBJCOPYFLAGS) $(SYSTEM) piggy
-		gzip $(GZFLAGS) < piggy > piggy.gz
-		$(LD) -r -o $@ -b binary piggy.gz
-		rm -f piggy piggy.gz
 
-font.o:		$(FONTC)
-		$(CC) $(CFLAGS) -Dstatic= -c -o $@ $(FONTC)
+$(obj)/piggy:    vmlinux;	$(call if_changed,objcopy)
+$(obj)/piggy.gz: $(obj)/piggy;	$(call if_changed,gzip)
 
-vmlinux.lds:	vmlinux.lds.in Makefile $(TOPDIR)/arch/$(ARCH)/boot/Makefile $(TOPDIR)/.config
-		@sed "$(SEDFLAGS)" < vmlinux.lds.in > $@
+LDFLAGS_piggy.o := -r -b binary
+$(obj)/piggy.o:  $(obj)piggy.gz
+	$(call if_changed,ld)
 
-clean:;		rm -f vmlinux core piggy* vmlinux.lds
+CFLAGS_font.o := -Dstatic=
+$(obj)/font.o: $(FONTC)
+
+$(obj)/vmlinux.lds: $(obj)/vmlinux.lds.in Makefile arch/arm/boot/Makefile.config	@sed "$(SEDFLAGS)" < $< > $@
 
 .PHONY:	clean
+clean:
+	rm -f $(addprefix $(obj)/,vmlinux core piggy* vmlinux.lds)
 
-misc.o: misc.c $(TOPDIR)/include/asm/arch/uncompress.h $(TOPDIR)/lib/inflate.c
+$(obj)/misc.o: $(obj)/misc.c include/asm/arch/uncompress.h lib/inflate.c
 
-%.o: %.S
-	$(CC) $(AFLAGS) $(EXTRA_AFLAGS) $(AFLAGS_$@) -c -o $@ $<
===== arch/arm/kernel/Makefile 1.10 vs edited =====
--- 1.10/arch/arm/kernel/Makefile	Mon Sep 23 01:33:05 2002
+++ edited/arch/arm/kernel/Makefile	Sat Oct 12 21:34:11 2002
@@ -43,6 +43,7 @@
 include $(TOPDIR)/Rules.make
 
 # Spell out some dependencies that `make dep' doesn't spot
-entry-armv.o: entry-header.S $(TOPDIR)/include/asm-arm/constants.h
-entry-armo.o: entry-header.S $(TOPDIR)/include/asm-arm/constants.h
-entry-common.o: entry-header.S calls.S $(TOPDIR)/include/asm-arm/constants.h
+$(obj)/entry-armv.o: 	$(obj)/entry-header.S include/asm-arm/constants.h
+$(obj)/entry-armo.o: 	$(obj)/entry-header.S include/asm-arm/constants.h
+$(obj)/entry-common.o: 	$(obj)/entry-header.S include/asm-arm/constants.h \
+			$(obj)/calls.S
===== arch/arm/lib/Makefile 1.11 vs edited =====
--- 1.11/arch/arm/lib/Makefile	Sun Sep 29 18:42:10 2002
+++ edited/arch/arm/lib/Makefile	Sat Oct 12 21:35:01 2002
@@ -43,6 +43,6 @@
 
 include $(TOPDIR)/Rules.make
 
-csumpartialcopy.o: csumpartialcopygeneric.S
-csumpartialcopyuser.o: csumpartialcopygeneric.S
+$(obj)/csumpartialcopy.o:	$(obj)/csumpartialcopygeneric.S
+$(obj)/csumpartialcopyuser.o:	$(obj)/csumpartialcopygeneric.S
 
===== arch/arm/mm/Makefile 1.12 vs edited =====
--- 1.12/arch/arm/mm/Makefile	Mon Sep 23 01:33:05 2002
+++ edited/arch/arm/mm/Makefile	Sat Oct 12 21:38:54 2002
@@ -42,4 +42,4 @@
 include $(TOPDIR)/Rules.make
 
 # Special dependencies
-$(p-y):	$(TOPDIR)/include/asm-arm/constants.h
+$(obj)/$(p-y):	include/asm-arm/constants.h
===== arch/arm/tools/Makefile 1.6 vs edited =====
--- 1.6/arch/arm/tools/Makefile	Sun Jun 16 02:49:51 2002
+++ edited/arch/arm/tools/Makefile	Sat Oct 12 23:18:26 2002
@@ -4,9 +4,8 @@
 # Copyright (C) 2001 Russell King
 #
 
-all:	$(TOPDIR)/include/asm-arm/mach-types.h
+include $(TOPDIR)/Rules.make
 
-$(TOPDIR)/include/asm-arm/mach-types.h: mach-types gen-mach-types
-	awk -f gen-mach-types mach-types > $@
+include/asm-arm/mach-types.h: $(obj)/mach-types $(obj)/gen-mach-types
+	awk -f $(obj)/gen-mach-types $(obj)/mach-types > $@
 
-.PHONY:	all
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/