Re: make 3.82 fails on powerpc defconfig update [was: Linux 2.6.35]
On Mon, 2010-08-02 at 11:51 +0300, Thomas Backlund wrote: BOOT_TARGETS = zImage zImage.initrd uImage zImage% dtbImage% treeImage.% cuImage.% simpleImage.% Now, I dont know if this is intended breakage by the make update, or if the Makefile needs to be updated The change is intentional. Note, though, that this syntax was always dodgy, even in previous versions of GNU make. If you wrote it exactly as you did, where all the explicit targets come first and all the implicit targets come second, then it seems to have been interpreted correctly. However, if you did it any other way (for example, put some explicit targets after the first implicit target) then make would silently throw away all the targets starting with the first implicit target. Since the syntax used here wasn't ever described in the documentation, rather than reworking it as a new feature I decided to follow the docs and disallow it, and be verbose about the error. -- --- Paul D. Smith psm...@gnu.org Find some GNU make tips at: http://www.gnu.org http://make.mad-scientist.net Please remain calm...I may be mad, but I am a professional. --Mad Scientist ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: make 3.82 fails on powerpc defconfig update [was: Linux 2.6.35]
On Mon, Aug 02, 2010 at 11:51:11AM +0300, Thomas Backlund wrote: Hi, (please cc me as I'm not subscribed) updating from make 3.81 to 3.82 gets me this: [tho...@tmb linux-2.6.35]$ cp arch/powerpc/configs/ppc64_defconfig .config [tho...@tmb linux-2.6.35]$ LC_ALL=C make oldconfig ARCH=powerpc /mnt/work/2.6.35/linux-2.6.35/arch/powerpc/Makefile:183: *** mixed implicit and normal rules. Stop. The lines are: 182: 183: $(BOOT_TARGETS): vmlinux 184: $(Q)$(MAKE) ARCH=ppc64 $(build)=$(boot) $(patsubst %,$(boot)/%,$@) 185: BOOT_TARGETS are defined on line 166 as: BOOT_TARGETS = zImage zImage.initrd uImage zImage% dtbImage% treeImage.% cuImage.% simpleImage.% Now it's not a regression in the kernel as the same happends with the 2.6.34 tree too. (btw, the host I'm syncing the defconfig with is a x86_64 machine) Now, I dont know if this is intended breakage by the make update, or if the Makefile needs to be updated Any ideas how to fix ? This is in the category intended breakage. We had a similar issue in the top-level Makefile which Paul (IIRC) helped me to fix long time ago. To fix popwerpc I suggest something along these lines. [Note: I did not test it - please do so. Sam [PATCH] powerpc: fix build with make 3.82 Thomas Backlund reported that the powerpc build broke with make 3.82. It failed with the following message: arch/powerpc/Makefile:183: *** mixed implicit and normal rules. Stop. The fix is to avoid mixing non-wildcard and wildcard targets. Reported-by: Thomas Backlund t...@mandriva.org Cc: Michal Marek mma...@suse.cz Signed-off-by: Sam Ravnborg s...@ravnborg.org --- diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile index 77cfe7a..ad88b21 100644 --- a/arch/powerpc/Makefile +++ b/arch/powerpc/Makefile @@ -163,9 +163,11 @@ drivers-$(CONFIG_OPROFILE) += arch/powerpc/oprofile/ # Default to zImage, override when needed all: zImage -BOOT_TARGETS = zImage zImage.initrd uImage zImage% dtbImage% treeImage.% cuImage.% simpleImage.% +# With make 3.82 we cannot mix normal and wildcard targets +BOOT_TARGETS1 := zImage zImage.initrd uImaged +BOOT_TARGETS2 := zImage% dtbImage% treeImage.% cuImage.% simpleImage.% -PHONY += $(BOOT_TARGETS) +PHONY += $(BOOT_TARGETS1) $(BOOT_TARGETS2) boot := arch/$(ARCH)/boot @@ -180,7 +182,9 @@ relocs_check: arch/powerpc/relocs_check.pl vmlinux zImage: relocs_check endif -$(BOOT_TARGETS): vmlinux +$(BOOT_TARGETS1): vmlinux + $(Q)$(MAKE) ARCH=ppc64 $(build)=$(boot) $(patsubst %,$(boot)/%,$@) +$(BOOT_TARGETS2): vmlinux $(Q)$(MAKE) ARCH=ppc64 $(build)=$(boot) $(patsubst %,$(boot)/%,$@) bootwrapper_install %.dtb: ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: make 3.82 fails on powerpc defconfig update [was: Linux 2.6.35]
Thanks, this seems to fix the first issue, but then I get the same erro on the following line 190: 190: bootwrapper_install %.dtb: 191:$(Q)$(MAKE) ARCH=ppc64 $(build)=$(boot) $(patsubst %,$(boot)/%,$@) Obviously - dunno how I missed that. Updated patch below. I will do a proper submission after you confirm that powerpc build is working with make 3.82. Sam diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile index 77cfe7a..ace7a3e 100644 --- a/arch/powerpc/Makefile +++ b/arch/powerpc/Makefile @@ -163,9 +163,11 @@ drivers-$(CONFIG_OPROFILE) += arch/powerpc/oprofile/ # Default to zImage, override when needed all: zImage -BOOT_TARGETS = zImage zImage.initrd uImage zImage% dtbImage% treeImage.% cuImage.% simpleImage.% +# With make 3.82 we cannot mix normal and wildcard targets +BOOT_TARGETS1 := zImage zImage.initrd uImaged +BOOT_TARGETS2 := zImage% dtbImage% treeImage.% cuImage.% simpleImage.% -PHONY += $(BOOT_TARGETS) +PHONY += $(BOOT_TARGETS1) $(BOOT_TARGETS2) boot := arch/$(ARCH)/boot @@ -180,10 +182,16 @@ relocs_check: arch/powerpc/relocs_check.pl vmlinux zImage: relocs_check endif -$(BOOT_TARGETS): vmlinux +$(BOOT_TARGETS1): vmlinux + $(Q)$(MAKE) ARCH=ppc64 $(build)=$(boot) $(patsubst %,$(boot)/%,$@) +$(BOOT_TARGETS2): vmlinux + $(Q)$(MAKE) ARCH=ppc64 $(build)=$(boot) $(patsubst %,$(boot)/%,$@) + + +bootwrapper_install $(Q)$(MAKE) ARCH=ppc64 $(build)=$(boot) $(patsubst %,$(boot)/%,$@) -bootwrapper_install %.dtb: +%.dtb: $(Q)$(MAKE) ARCH=ppc64 $(build)=$(boot) $(patsubst %,$(boot)/%,$@) define archhelp ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: make 3.82 fails on powerpc defconfig update [was: Linux 2.6.35]
02.08.2010 21:28, Sam Ravnborg skrev: On Mon, Aug 02, 2010 at 11:51:11AM +0300, Thomas Backlund wrote: Hi, (please cc me as I'm not subscribed) updating from make 3.81 to 3.82 gets me this: [tho...@tmb linux-2.6.35]$ cp arch/powerpc/configs/ppc64_defconfig .config [tho...@tmb linux-2.6.35]$ LC_ALL=C make oldconfig ARCH=powerpc /mnt/work/2.6.35/linux-2.6.35/arch/powerpc/Makefile:183: *** mixed implicit and normal rules. Stop. The lines are: 182: 183: $(BOOT_TARGETS): vmlinux 184: $(Q)$(MAKE) ARCH=ppc64 $(build)=$(boot) $(patsubst %,$(boot)/%,$@) 185: BOOT_TARGETS are defined on line 166 as: BOOT_TARGETS = zImage zImage.initrd uImage zImage% dtbImage% treeImage.% cuImage.% simpleImage.% Now it's not a regression in the kernel as the same happends with the 2.6.34 tree too. (btw, the host I'm syncing the defconfig with is a x86_64 machine) Now, I dont know if this is intended breakage by the make update, or if the Makefile needs to be updated Any ideas how to fix ? This is in the category intended breakage. We had a similar issue in the top-level Makefile which Paul (IIRC) helped me to fix long time ago. To fix popwerpc I suggest something along these lines. [Note: I did not test it - please do so. Sam [PATCH] powerpc: fix build with make 3.82 Thomas Backlund reported that the powerpc build broke with make 3.82. It failed with the following message: arch/powerpc/Makefile:183: *** mixed implicit and normal rules. Stop. The fix is to avoid mixing non-wildcard and wildcard targets. Reported-by: Thomas Backlund t...@mandriva.org Cc: Michal Marek mma...@suse.cz Signed-off-by: Sam Ravnborg s...@ravnborg.org --- diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile index 77cfe7a..ad88b21 100644 --- a/arch/powerpc/Makefile +++ b/arch/powerpc/Makefile @@ -163,9 +163,11 @@ drivers-$(CONFIG_OPROFILE) += arch/powerpc/oprofile/ # Default to zImage, override when needed all: zImage -BOOT_TARGETS = zImage zImage.initrd uImage zImage% dtbImage% treeImage.% cuImage.% simpleImage.% +# With make 3.82 we cannot mix normal and wildcard targets +BOOT_TARGETS1 := zImage zImage.initrd uImaged +BOOT_TARGETS2 := zImage% dtbImage% treeImage.% cuImage.% simpleImage.% -PHONY += $(BOOT_TARGETS) +PHONY += $(BOOT_TARGETS1) $(BOOT_TARGETS2) boot := arch/$(ARCH)/boot @@ -180,7 +182,9 @@ relocs_check: arch/powerpc/relocs_check.pl vmlinux zImage: relocs_check endif -$(BOOT_TARGETS): vmlinux +$(BOOT_TARGETS1): vmlinux + $(Q)$(MAKE) ARCH=ppc64 $(build)=$(boot) $(patsubst %,$(boot)/%,$@) +$(BOOT_TARGETS2): vmlinux $(Q)$(MAKE) ARCH=ppc64 $(build)=$(boot) $(patsubst %,$(boot)/%,$@) bootwrapper_install %.dtb: Thanks, this seems to fix the first issue, but then I get the same erro on the following line 190: 190: bootwrapper_install %.dtb: 191:$(Q)$(MAKE) ARCH=ppc64 $(build)=$(boot) $(patsubst %,$(boot)/%,$@) -- Thomas ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: make 3.82 fails on powerpc defconfig update [was: Linux 2.6.35]
Sam Ravnborg s...@ravnborg.org writes: +bootwrapper_install Missing colon. Andreas. -- Andreas Schwab, sch...@linux-m68k.org GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 And now for something completely different. ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: make 3.82 fails on powerpc defconfig update [was: Linux 2.6.35]
02.08.2010 23:51, Sam Ravnborg skrev: Thanks, this seems to fix the first issue, but then I get the same erro on the following line 190: 190: bootwrapper_install %.dtb: 191:$(Q)$(MAKE) ARCH=ppc64 $(build)=$(boot) $(patsubst %,$(boot)/%,$@) Obviously - dunno how I missed that. Updated patch below. I will do a proper submission after you confirm that powerpc build is working with make 3.82. Yeah, that was an obvious fix, thanks! One small typo fix below... (a missing ':') Otherwise it works here, so: Tested-by: Thomas Backlund t...@mandriva.org Sam diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile index 77cfe7a..ace7a3e 100644 --- a/arch/powerpc/Makefile +++ b/arch/powerpc/Makefile @@ -163,9 +163,11 @@ drivers-$(CONFIG_OPROFILE) += arch/powerpc/oprofile/ # Default to zImage, override when needed all: zImage -BOOT_TARGETS = zImage zImage.initrd uImage zImage% dtbImage% treeImage.% cuImage.% simpleImage.% +# With make 3.82 we cannot mix normal and wildcard targets +BOOT_TARGETS1 := zImage zImage.initrd uImaged +BOOT_TARGETS2 := zImage% dtbImage% treeImage.% cuImage.% simpleImage.% -PHONY += $(BOOT_TARGETS) +PHONY += $(BOOT_TARGETS1) $(BOOT_TARGETS2) boot := arch/$(ARCH)/boot @@ -180,10 +182,16 @@ relocs_check: arch/powerpc/relocs_check.pl vmlinux zImage: relocs_check endif -$(BOOT_TARGETS): vmlinux +$(BOOT_TARGETS1): vmlinux + $(Q)$(MAKE) ARCH=ppc64 $(build)=$(boot) $(patsubst %,$(boot)/%,$@) +$(BOOT_TARGETS2): vmlinux + $(Q)$(MAKE) ARCH=ppc64 $(build)=$(boot) $(patsubst %,$(boot)/%,$@) + + +bootwrapper_install bootwrapper_install: $(Q)$(MAKE) ARCH=ppc64 $(build)=$(boot) $(patsubst %,$(boot)/%,$@) -bootwrapper_install %.dtb: +%.dtb: $(Q)$(MAKE) ARCH=ppc64 $(build)=$(boot) $(patsubst %,$(boot)/%,$@) define archhelp . -- Thomas ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev