Subject: Re: linux-next: build failure after merge of the block tree

From: Nicolas Pitre <[email-masked]>
Date: Tue, 26 Apr 2016 16:48:44 -0400 (EDT)

On Wed, 27 Apr 2016, Stephen Rothwell wrote:

> Hi Nicolas,
> 
> On Tue, 26 Apr 2016 10:40:57 -0400 (EDT) Nicolas Pitre <[email-masked]> wrote:
> >
> > If you can reproduce this build failure, could you try a make mrproper 
> > and attempt it again?  I, too, would like to find an explanation and a 
> > way to reproduce.
> 
> I reset my build tree to commit 9d67df654092 ("Merge remote-tracking
> branch 'block/for-next'") and the build failed with:
> 
> ERROR: ".local_clock" [drivers/vhost/vhost_net.ko] undefined!
> ERROR: ".local_clock" [drivers/misc/cxl/cxl.ko] undefined!
> 
> :-(
> 
> So I did a "make mrproper" and did the build again.
> 
> That built correctly.
> 
[...]

OK!  After digging and diffing through 750 megabytes of make debug logs 
I finally found the explanation.  The if_changed directive is useless 
against phony targets.

@Stephen: could you replace the revert with the patch below in your tree?

@Michal: could you fold the patch below into commit 2441e78b19 in your tree?

diff --git a/Makefile b/Makefile
index ca46af5cc0..3a7b9a93b2 100644
--- a/Makefile
+++ b/Makefile
@@ -953,7 +953,7 @@ include/generated/autoksyms.h: FORCE
       cmd_link-vmlinux = $(CONFIG_SHELL) $< $(LD) $(LDFLAGS) $(LDFLAGS_vmlinux)
 quiet_cmd_link-vmlinux = LINK    $@
 
-vmlinux: scripts/link-vmlinux.sh vmlinux_prereq FORCE
+vmlinux: scripts/link-vmlinux.sh vmlinux_prereq $(vmlinux-deps) FORCE
 	+$(call if_changed,link-vmlinux)
 
 # Build samples along the rest of the kernel