lineage_android_kernel_xiao.../scripts
Masahiro Yamada 48a90a9e56 kbuild: add .DELETE_ON_ERROR special target
[ 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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-09-26 08:36:31 +02:00
..
basic fixdep: faster CONFIG_ search 2016-08-24 22:34:19 +02:00
coccinelle Coccinelle: flag conditions with no effect 2016-10-11 09:57:17 +02:00
dtc scripts/dtc: dt_to_config - kernel config options for a devicetree 2016-07-22 14:48:16 -05:00
gcc-plugins gcc-plugins: update gcc-common.h for gcc-7 2017-01-12 11:39:07 +01:00
gdb scripts/gdb/linux/tasks.py: fix get_thread_info 2018-01-23 19:57:08 +01:00
genksyms kbuild: Regenerate genksyms lexer 2016-08-25 20:03:51 +02:00
kconfig kconfig: Avoid format overflow warning from GCC 8.1 2018-06-13 16:16:41 +02:00
ksymoops
mod scripts: modpost: check memory allocation results 2018-09-15 09:42:57 +02:00
package builddeb: Fix header package regarding dtc source links 2018-05-30 07:50:39 +02:00
selinux
tracing ftrace/scripts: Add helper script to bisect function tracing problem functions 2016-09-21 13:56:55 -04:00
.gitignore
Kbuild.include kbuild: add .DELETE_ON_ERROR special target 2018-09-26 08:36:31 +02:00
Lindent
Makefile GCC plugin infrastructure 2016-06-07 22:57:10 +02:00
Makefile.asm-generic kbuild: Remove stale asm-generic wrappers 2016-07-07 15:58:45 +02:00
Makefile.build objtool: Fix gcov check for older versions of GCC 2018-06-13 16:16:44 +02:00
Makefile.clean Shared library support 2016-06-07 22:57:10 +02:00
Makefile.dtbinst
Makefile.extrawarn Kbuild: enable -Wmaybe-uninitialized warnings by default 2016-11-11 08:45:08 -08:00
Makefile.fwinst
Makefile.gcc-plugins gcc-plugins: Add latent_entropy plugin 2016-10-10 14:51:44 -07:00
Makefile.headersinst
Makefile.help
Makefile.host Shared library support 2016-06-07 22:57:10 +02:00
Makefile.kasan kasan: don't emit builtin calls when sanitization is off 2018-08-17 20:59:29 +02:00
Makefile.lib kasan: don't emit builtin calls when sanitization is off 2018-08-17 20:59:29 +02:00
Makefile.modbuiltin
Makefile.modinst
Makefile.modpost kbuild: add arch specific post-link Makefile 2016-09-09 10:47:00 +02:00
Makefile.modsign
Makefile.ubsan Kbuild: enable -Wmaybe-uninitialized warning for "make W=1" 2016-11-11 08:45:08 -08:00
adjust_autoksyms.sh kbuild: make scripts/adjust_autoksyms.sh robust against timestamp races 2018-05-30 07:50:37 +02:00
analyze_suspend.py PM / tools: scripts: AnalyzeSuspend v4.2 2016-07-15 23:34:14 +02:00
asn1_compiler.c
bloat-o-meter scripts/bloat-o-meter: fix SIGPIPE 2016-11-11 08:12:37 -08:00
bootgraph.pl
check-lc_ctype.c
check_extable.sh
checkincludes.pl
checkkconfigsymbols.py checkkconfigsymbols: use arglist instead of cmd string 2016-08-28 11:08:34 +02:00
checkpatch.pl checkpatch: silence perl 5.26.0 unescaped left brace warnings 2017-07-21 07:42:21 +02:00
checkstack.pl
checksyscalls.sh
checkversion.pl
cleanfile
cleanpatch
coccicheck coccinelle: fix parallel build with CHECK=scripts/coccicheck 2017-12-14 09:28:22 +01:00
config
conmakehash.c
const_structs.checkpatch const_structs.checkpatch: add frequently used from Julia Lawall's list 2016-10-11 15:06:30 -07:00
decode_stacktrace.sh
decodecode
depmod.sh kbuild: make missing $DEPMOD a Warning instead of an Error 2018-09-15 09:43:01 +02:00
diffconfig
docproc.c
export_report.pl
extract-cert.c
extract-ikconfig
extract-module-sig.pl
extract-sys-certs.pl
extract-vmlinux
extract_xc3028.pl [media] extract_xc3028.pl: move it to scripts/dir 2016-07-17 14:08:12 -03:00
faddr2line scripts/faddr2line: improve on base path filtering a bit 2016-09-19 14:49:08 -07:00
gcc-goto.sh
gcc-ld
gcc-plugin.sh gcc-plugins: abort builds cleanly when not supported 2016-08-08 17:49:05 -07:00
gcc-version.sh
gcc-x86_32-has-stack-protector.sh
gcc-x86_64-has-stack-protector.sh scripts/has-stack-protector: add -fno-PIE 2016-11-09 22:28:05 +01:00
gen_initramfs_list.sh initramfs: Escape colons in depfile 2016-09-23 10:35:32 +02:00
get_dvb_firmware [media] doc-rst: move DVB avulse docs to Documentation/media 2016-07-17 14:02:45 -03:00
get_maintainer.pl get_maintainer: quiet noisy implicit -f vcs_file_exists checking 2016-08-26 17:39:34 -07:00
gfp-translate
headerdep.pl
headers.sh
headers_check.pl headers_check: don't warn about c++ guards 2016-05-24 14:12:48 +10:00
headers_install.sh
insert-sys-cert.c
kallsyms.c
kernel-doc scripts/kernel-doc: Don't fail with status != 0 if error encountered with -none 2018-02-25 11:05:47 +01:00
kernel-doc-xml-ref
ld-version.sh
link-vmlinux.sh kbuild: allow architectures to use thin archives instead of ld -r 2016-09-09 10:31:19 +02:00
makelst
markup_oops.pl
mkcompile_h
mkmakefile
mksysmap
mkuboot.sh
mkversion
module-common.lds objtool, modules: Discard objtool annotation sections for modules 2018-01-17 09:38:58 +01:00
namespace.pl
objdiff
patch-kernel
pnmtologo.c
profile2linkerlist.pl
prune-kernel
recordmcount.c nmi_backtrace: generate one-line reports for idle cpus 2016-10-07 18:46:30 -07:00
recordmcount.h
recordmcount.pl nmi_backtrace: generate one-line reports for idle cpus 2016-10-07 18:46:30 -07:00
setlocalversion kbuild: setlocalversion: print error to STDERR 2016-06-20 17:37:45 +02:00
show_delta
sign-file.c modsign: Make sign-file determine the format of the X.509 cert 2016-06-14 13:18:33 +01:00
sortextable.c
sortextable.h
spelling.txt spelling.txt: "modeled" is spelt correctly 2016-10-07 18:46:30 -07:00
stackdelta
stackusage
tags.sh tags: honor COMPILED_SOURCE with apart output directory 2018-04-13 19:48:21 +02:00
unifdef.c
ver_linux ver_linux: rename ver_linux.awk to ver_linux 2016-08-31 13:59:31 +02:00
xen-hypercalls.sh
xz_wrap.sh