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

Message ID alpine.LFD.2.20.1604261603310.5091@knanqh.ubzr
State New
Headers show

Commit Message

Nicolas Pitre April 26, 2016, 8:48 p.m.
On Wed, 27 Apr 2016, Stephen Rothwell wrote:

> Hi Nicolas,

> 

> On Tue, 26 Apr 2016 10:40:57 -0400 (EDT) Nicolas Pitre <nicolas.pitre@linaro.org> 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?

Comments

Nicolas Pitre April 27, 2016, 1:46 p.m. | #1
On Wed, 27 Apr 2016, Michal Marek wrote:

> On 2016-04-26 22:48, Nicolas Pitre wrote:

> > On Wed, 27 Apr 2016, Stephen Rothwell wrote:

> > 

> >> Hi Nicolas,

> >>

> >> On Tue, 26 Apr 2016 10:40:57 -0400 (EDT) Nicolas Pitre <nicolas.pitre@linaro.org> 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?

> 

> I prefer not to overwrite the topic branches unless necessary and I

> wanted to credit Stephen, so I committed your patch with a fabricated

> commit message and your signoff (since you wanted to fold it into a

> patch that you had already signed off).


Fine with me.


Nicolas

Patch

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