Re: make 3.82 fails on powerpc defconfig update [was: Linux 2.6.35]

2010-08-07 Thread Paul Smith
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]

2010-08-02 Thread Sam Ravnborg
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]

2010-08-02 Thread Sam Ravnborg
 
 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]

2010-08-02 Thread Thomas Backlund
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]

2010-08-02 Thread Andreas Schwab
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]

2010-08-02 Thread Thomas Backlund
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