From: Sasha Levin <Alexander.Levin@microsoft.com>
To: "stable@vger.kernel.org" <stable@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Cc: Masahiro Yamada <yamada.masahiro@socionext.com>,
Sasha Levin <Alexander.Levin@microsoft.com>
Subject: [PATCH AUTOSEL 4.9 09/43] kbuild: add .DELETE_ON_ERROR special target
Date: Fri, 7 Sep 2018 00:38:24 +0000 [thread overview]
Message-ID: <20180907003816.57852-9-alexander.levin@microsoft.com> (raw)
In-Reply-To: <20180907003816.57852-1-alexander.levin@microsoft.com>
From: Masahiro Yamada <yamada.masahiro@socionext.com>
[ Upstream commit 9c2af1c7377a8a6ef86e5cabf80978f3dbbb25c0 ]
If Make gets a fatal signal while a shell is executing, it may delete
the target file that the recipe was supposed to update. This is needed
to make sure that it is remade from scratch when Make is next run; if
Make is interrupted after the recipe has begun to write the target file,
it results in an incomplete file whose time stamp is newer than that
of the prerequisites files. Make automatically deletes the incomplete
file on interrupt unless the target is marked .PRECIOUS.
The situation is just the same as when the shell fails for some reasons.
Usually when a recipe line fails, if it has changed the target file at
all, the file is corrupted, or at least it is not completely updated.
Yet the file’s time stamp says that it is now up to date, so the next
time Make runs, it will not try to update that file.
However, Make does not cater to delete the incomplete target file in
this case. We need to add .DELETE_ON_ERROR somewhere in the Makefile
to request it.
scripts/Kbuild.include seems a suitable place to add it because it is
included from almost all sub-makes.
Please note .DELETE_ON_ERROR is not effective for phony targets.
The external module building should never ever touch the kernel tree.
The following recipe fails if include/generated/autoconf.h is missing.
However, include/config/auto.conf is not deleted since it is a phony
target.
PHONY += include/config/auto.conf
include/config/auto.conf:
$(Q)test -e include/generated/autoconf.h -a -e $@ || ( \
echo >&2; \
echo >&2 " ERROR: Kernel configuration is invalid."; \
echo >&2 " include/generated/autoconf.h or $@ are missing.";\
echo >&2 " Run 'make oldconfig && make prepare' on kernel src to fix it."; \
echo >&2 ; \
/bin/false)
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
---
scripts/Kbuild.include | 3 +++
1 file changed, 3 insertions(+)
diff --git a/scripts/Kbuild.include b/scripts/Kbuild.include
index 63774307a751..8f8965608ee3 100644
--- a/scripts/Kbuild.include
+++ b/scripts/Kbuild.include
@@ -394,3 +394,6 @@ endif
endef
#
###############################################################################
+
+# delete partially updated (i.e. corrupted) files on error
+.DELETE_ON_ERROR:
--
2.17.1
next prev parent reply other threads:[~2018-09-07 0:50 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-09-07 0:38 [PATCH AUTOSEL 4.9 01/43] usb: usbtest: use irqsave() in USB's complete callback Sasha Levin
2018-09-07 0:38 ` [PATCH AUTOSEL 4.9 02/43] iommu/arm-smmu-v3: sync the OVACKFLG to PRIQ consumer register Sasha Levin
2018-09-07 0:38 ` [PATCH AUTOSEL 4.9 03/43] ALSA: msnd: Fix the default sample sizes Sasha Levin
2018-09-07 0:38 ` [PATCH AUTOSEL 4.9 04/43] ALSA: usb-audio: Fix multiple definitions in AU0828_DEVICE() macro Sasha Levin
2018-09-07 0:38 ` [PATCH AUTOSEL 4.9 05/43] xfrm: fix 'passing zero to ERR_PTR()' warning Sasha Levin
2018-09-07 0:38 ` [PATCH AUTOSEL 4.9 07/43] clk: imx6ul: fix missing of_node_put() Sasha Levin
2018-09-07 0:38 ` [PATCH AUTOSEL 4.9 06/43] gfs2: Special-case rindex for gfs2_grow Sasha Levin
2018-09-07 0:38 ` [PATCH AUTOSEL 4.9 08/43] clk: clk-fixed-factor: Clear OF_POPULATED flag in case of failure Sasha Levin
2018-09-07 0:38 ` Sasha Levin [this message]
2018-09-07 0:38 ` [PATCH AUTOSEL 4.9 10/43] media: tw686x: Fix oops on buffer alloc failure Sasha Levin
2018-09-07 0:38 ` [PATCH AUTOSEL 4.9 11/43] dmaengine: pl330: fix irq race with terminate_all Sasha Levin
2018-09-07 0:38 ` [PATCH AUTOSEL 4.9 12/43] MIPS: ath79: fix system restart Sasha Levin
2018-09-07 0:38 ` [PATCH AUTOSEL 4.9 14/43] IB/rxe: Drop QP0 silently Sasha Levin
2018-09-07 0:38 ` [PATCH AUTOSEL 4.9 13/43] media: videobuf2-core: check for q->error in vb2_core_qbuf() Sasha Levin
2018-09-07 0:38 ` [PATCH AUTOSEL 4.9 15/43] mtd/maps: fix solutionengine.c printk format warnings Sasha Levin
2018-09-07 0:38 ` Sasha Levin
2018-09-07 0:38 ` [PATCH AUTOSEL 4.9 16/43] perf test: Fix subtest number when showing results Sasha Levin
2018-09-07 0:38 ` [PATCH AUTOSEL 4.9 18/43] iio: ad9523: Fix displayed phase Sasha Levin
2018-09-07 0:38 ` [PATCH AUTOSEL 4.9 17/43] gfs2: Don't reject a supposedly full bitmap if we have blocks reserved Sasha Levin
2018-09-07 0:38 ` [PATCH AUTOSEL 4.9 19/43] fbdev: omapfb: off by one in omapfb_register_client() Sasha Levin
2018-09-07 0:38 ` [PATCH AUTOSEL 4.9 20/43] video: goldfishfb: fix memory leak on driver remove Sasha Levin
2018-09-07 0:38 ` [PATCH AUTOSEL 4.9 21/43] fbdev/via: fix defined but not used warning Sasha Levin
2018-09-07 0:38 ` [PATCH AUTOSEL 4.9 22/43] perf powerpc: Fix callchain ip filtering when return address is in a register Sasha Levin
2018-09-07 0:38 ` [PATCH AUTOSEL 4.9 23/43] video: fbdev: pxafb: clear allocated memory for video modes Sasha Levin
2018-09-07 0:38 ` [PATCH AUTOSEL 4.9 24/43] fbdev: Distinguish between interlaced and progressive modes Sasha Levin
2018-09-07 0:38 ` [PATCH AUTOSEL 4.9 25/43] ARM: exynos: Clear global variable on init error path Sasha Levin
2018-09-07 0:38 ` [PATCH AUTOSEL 4.9 26/43] perf powerpc: Fix callchain ip filtering Sasha Levin
2018-09-07 0:38 ` [PATCH AUTOSEL 4.9 27/43] powerpc/powernv: opal_put_chars partial write fix Sasha Levin
2018-09-07 0:38 ` [PATCH AUTOSEL 4.9 28/43] MIPS: jz4740: Bump zload address Sasha Levin
2018-09-07 0:38 ` [PATCH AUTOSEL 4.9 29/43] mac80211: restrict delayed tailroom needed decrement Sasha Levin
2018-09-07 0:38 ` [PATCH AUTOSEL 4.9 30/43] Smack: Fix handling of IPv4 traffic received by PF_INET6 sockets Sasha Levin
2018-09-07 0:38 ` [PATCH AUTOSEL 4.9 31/43] wan/fsl_ucc_hdlc: use IS_ERR_VALUE() to check return value of qe_muram_alloc Sasha Levin
2018-09-07 0:38 ` [PATCH AUTOSEL 4.9 32/43] efi/arm: preserve early mapping of UEFI memory map longer for BGRT Sasha Levin
2018-09-07 0:38 ` [PATCH AUTOSEL 4.9 34/43] xen-netfront: fix queue name setting Sasha Levin
2018-09-07 0:38 ` [PATCH AUTOSEL 4.9 33/43] nfp: avoid buffer leak when FW communication fails Sasha Levin
2018-09-07 0:38 ` [PATCH AUTOSEL 4.9 36/43] ARM: dts: qcom: msm8974-hammerhead: increase load on l20 for sdhci Sasha Levin
2018-09-07 0:38 ` [PATCH AUTOSEL 4.9 35/43] arm64: dts: qcom: db410c: Fix Bluetooth LED trigger Sasha Levin
2018-09-07 0:38 ` [PATCH AUTOSEL 4.9 37/43] s390/qeth: fix race in used-buffer accounting Sasha Levin
2018-09-07 0:38 ` [PATCH AUTOSEL 4.9 38/43] s390/qeth: reset layer2 attribute on layer switch Sasha Levin
2018-09-07 0:38 ` [PATCH AUTOSEL 4.9 39/43] platform/x86: toshiba_acpi: Fix defined but not used build warnings Sasha Levin
2018-09-07 0:38 ` [PATCH AUTOSEL 4.9 40/43] KVM: arm/arm64: Fix vgic init race Sasha Levin
2018-09-07 0:38 ` [PATCH AUTOSEL 4.9 42/43] dmaengine: mv_xor_v2: kill the tasklets upon exit Sasha Levin
2018-09-07 0:38 ` [PATCH AUTOSEL 4.9 41/43] drivers/base: stop new probing during shutdown Sasha Levin
2018-09-07 0:38 ` [PATCH AUTOSEL 4.9 43/43] crypto: sharah - Unregister correct algorithms for SAHARA 3 Sasha Levin
2018-09-07 5:43 ` [PATCH AUTOSEL 4.9 01/43] usb: usbtest: use irqsave() in USB's complete callback Greg Kroah-Hartman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180907003816.57852-9-alexander.levin@microsoft.com \
--to=alexander.levin@microsoft.com \
--cc=linux-kernel@vger.kernel.org \
--cc=stable@vger.kernel.org \
--cc=yamada.masahiro@socionext.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.