2016-04-26 03:38:16

by Stephen Rothwell

[permalink] [raw]
Subject: linux-next: build failure after merge of the block tree

Hi Nicolas,

After merging the block tree, today's linux-next build (powerpc
ppc64_defconfig) failed like this:

ERROR: ".blk_queue_write_cache" [drivers/block/virtio_blk.ko] undefined!
ERROR: ".blk_queue_write_cache" [drivers/block/ps3disk.ko] undefined!
ERROR: ".blk_queue_write_cache" [drivers/block/nbd.ko] undefined!

Caused by commit

089095b8eef9 ("kbuild: better abstract vmlinux sequential prerequisites")

from the kbuild-pite tree.

I have reverted that commit for today.

--
Cheers,
Stephen Rothwell


2016-04-26 13:30:07

by Michal Marek

[permalink] [raw]
Subject: Re: linux-next: build failure after merge of the block tree

On 2016-04-26 05:38, Stephen Rothwell wrote:
> Hi Nicolas,
>
> After merging the block tree, today's linux-next build (powerpc
> ppc64_defconfig) failed like this:
>
> ERROR: ".blk_queue_write_cache" [drivers/block/virtio_blk.ko] undefined!
> ERROR: ".blk_queue_write_cache" [drivers/block/ps3disk.ko] undefined!
> ERROR: ".blk_queue_write_cache" [drivers/block/nbd.ko] undefined!
>
> Caused by commit
>
> 089095b8eef9 ("kbuild: better abstract vmlinux sequential prerequisites")
>
> from the kbuild-pite tree.
>
> I have reverted that commit for today.

I can't reproduce this with today's linux-next and the revert reverted.
Also, CONFIG_TRIM_UNUSED_KSYMS is disabled in the defconfig as expected,
so I have no idea what went wrong.

Michal

2016-04-26 13:56:10

by Stephen Rothwell

[permalink] [raw]
Subject: Re: linux-next: build failure after merge of the block tree

Hi Michal,

On Tue, 26 Apr 2016 15:30:01 +0200 Michal Marek <[email protected]> wrote:
>
> On 2016-04-26 05:38, Stephen Rothwell wrote:
> > Hi Nicolas,
> >
> > After merging the block tree, today's linux-next build (powerpc
> > ppc64_defconfig) failed like this:
> >
> > ERROR: ".blk_queue_write_cache" [drivers/block/virtio_blk.ko] undefined!
> > ERROR: ".blk_queue_write_cache" [drivers/block/ps3disk.ko] undefined!
> > ERROR: ".blk_queue_write_cache" [drivers/block/nbd.ko] undefined!
> >
> > Caused by commit
> >
> > 089095b8eef9 ("kbuild: better abstract vmlinux sequential prerequisites")
> >
> > from the kbuild-pite tree.
> >
> > I have reverted that commit for today.
>
> I can't reproduce this with today's linux-next and the revert reverted.
> Also, CONFIG_TRIM_UNUSED_KSYMS is disabled in the defconfig as expected,
> so I have no idea what went wrong.

Yeah, I couldn't figure it out either, but the revert made it work for
me. Could it be that I do incremental builds - so today, I would have
built commit b087ce990625 ("Merge remote-tracking branch 'input/next'")
which worked, then commit 9d67df654092 ("Merge remote-tracking branch
'block/for-next'") which failed.

The only suspect code in the block tree has been there since April 13
with no build failures.

Anyway, I can see how things go tomorrow, but I hate it when things
seem fragile like this.
--
Cheers,
Stephen Rothwell

2016-04-26 14:41:05

by Nicolas Pitre

[permalink] [raw]
Subject: Re: linux-next: build failure after merge of the block tree

On Tue, 26 Apr 2016, Stephen Rothwell wrote:

> Hi Michal,
>
> On Tue, 26 Apr 2016 15:30:01 +0200 Michal Marek <[email protected]> wrote:
> >
> > On 2016-04-26 05:38, Stephen Rothwell wrote:
> > > Hi Nicolas,
> > >
> > > After merging the block tree, today's linux-next build (powerpc
> > > ppc64_defconfig) failed like this:
> > >
> > > ERROR: ".blk_queue_write_cache" [drivers/block/virtio_blk.ko] undefined!
> > > ERROR: ".blk_queue_write_cache" [drivers/block/ps3disk.ko] undefined!
> > > ERROR: ".blk_queue_write_cache" [drivers/block/nbd.ko] undefined!
> > >
> > > Caused by commit
> > >
> > > 089095b8eef9 ("kbuild: better abstract vmlinux sequential prerequisites")
> > >
> > > from the kbuild-pite tree.
> > >
> > > I have reverted that commit for today.
> >
> > I can't reproduce this with today's linux-next and the revert reverted.
> > Also, CONFIG_TRIM_UNUSED_KSYMS is disabled in the defconfig as expected,
> > so I have no idea what went wrong.
>
> Yeah, I couldn't figure it out either, but the revert made it work for
> me. Could it be that I do incremental builds - so today, I would have
> built commit b087ce990625 ("Merge remote-tracking branch 'input/next'")
> which worked, then commit 9d67df654092 ("Merge remote-tracking branch
> 'block/for-next'") which failed.
>
> The only suspect code in the block tree has been there since April 13
> with no build failures.
>
> Anyway, I can see how things go tomorrow, but I hate it when things
> seem fragile like this.

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.


Nicolas

2016-04-26 14:41:59

by Jens Axboe

[permalink] [raw]
Subject: Re: linux-next: build failure after merge of the block tree

On 04/26/2016 08:40 AM, Nicolas Pitre wrote:
> On Tue, 26 Apr 2016, Stephen Rothwell wrote:
>
>> Hi Michal,
>>
>> On Tue, 26 Apr 2016 15:30:01 +0200 Michal Marek <[email protected]> wrote:
>>>
>>> On 2016-04-26 05:38, Stephen Rothwell wrote:
>>>> Hi Nicolas,
>>>>
>>>> After merging the block tree, today's linux-next build (powerpc
>>>> ppc64_defconfig) failed like this:
>>>>
>>>> ERROR: ".blk_queue_write_cache" [drivers/block/virtio_blk.ko] undefined!
>>>> ERROR: ".blk_queue_write_cache" [drivers/block/ps3disk.ko] undefined!
>>>> ERROR: ".blk_queue_write_cache" [drivers/block/nbd.ko] undefined!
>>>>
>>>> Caused by commit
>>>>
>>>> 089095b8eef9 ("kbuild: better abstract vmlinux sequential prerequisites")
>>>>
>>>> from the kbuild-pite tree.
>>>>
>>>> I have reverted that commit for today.
>>>
>>> I can't reproduce this with today's linux-next and the revert reverted.
>>> Also, CONFIG_TRIM_UNUSED_KSYMS is disabled in the defconfig as expected,
>>> so I have no idea what went wrong.
>>
>> Yeah, I couldn't figure it out either, but the revert made it work for
>> me. Could it be that I do incremental builds - so today, I would have
>> built commit b087ce990625 ("Merge remote-tracking branch 'input/next'")
>> which worked, then commit 9d67df654092 ("Merge remote-tracking branch
>> 'block/for-next'") which failed.
>>
>> The only suspect code in the block tree has been there since April 13
>> with no build failures.
>>
>> Anyway, I can see how things go tomorrow, but I hate it when things
>> seem fragile like this.
>
> 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 just took a look at it, and it doesn't make any sense to me...

--
Jens Axboe

2016-04-26 15:18:30

by Stephen Rothwell

[permalink] [raw]
Subject: Re: linux-next: build failure after merge of the block tree

Hi Nicolas,

On Tue, 26 Apr 2016 10:40:57 -0400 (EDT) Nicolas Pitre <[email protected]> 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.

Then I reset the tree to commit b087ce990625 ("Merge remote-tracking
branch 'input/next'"), did a "make mrproper", "make ppc64_defconfig",
"make" and that built correctly. So I fast forwarded back to the block
tree merge and did "make ppc64_defconfig" and "make" and that failed
with:

ERROR: ".blk_queue_write_cache" [drivers/block/virtio_blk.ko] undefined!
ERROR: ".blk_queue_write_cache" [drivers/block/ps3disk.ko] undefined!
ERROR: ".blk_queue_write_cache" [drivers/block/nbd.ko] undefined!

Doing the revert made it build, then doing "reset --hard HEAD^" (i.e.
undoing the revert) also kept the build working.

These builds all have a separate object directory and are powerpc64le
hosted powerpc64be cross builds and use "make -j80".

--
Cheers,
Stephen Rothwell

2016-04-26 20:48:51

by Nicolas Pitre

[permalink] [raw]
Subject: Re: linux-next: build failure after merge of the block tree

On Wed, 27 Apr 2016, Stephen Rothwell wrote:

> Hi Nicolas,
>
> On Tue, 26 Apr 2016 10:40:57 -0400 (EDT) Nicolas Pitre <[email protected]> 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

2016-04-26 21:39:19

by Stephen Rothwell

[permalink] [raw]
Subject: Re: linux-next: build failure after merge of the block tree

Hi Nicolas,

On Tue, 26 Apr 2016 16:48:44 -0400 (EDT) Nicolas Pitre <[email protected]> wrote:
>
> 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.

Thanks for working this out.

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

Will do, unless Michal beats me to it.

--
Cheers,
Stephen Rothwell

2016-04-27 09:02:14

by Michal Marek

[permalink] [raw]
Subject: Re: linux-next: build failure after merge of the block tree

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 <[email protected]> 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).

Michal

2016-04-27 13:46:43

by Nicolas Pitre

[permalink] [raw]
Subject: Re: linux-next: build failure after merge of the block tree

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 <[email protected]> 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