Masahiro Yamada
9c2af1c737
kbuild: add .DELETE_ON_ERROR special target
...
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>
2018-07-25 23:25:31 +09:00
..
basic
fixdep: suppress consecutive / from file paths in dependency list files
2018-05-07 21:40:39 +09:00
coccinelle
Kbuild updates for v4.18
2018-06-06 11:00:15 -07:00
dtc
scripts/dtc: Update to upstream version v1.4.6-21-g84e414b0b5bc
2018-05-14 19:45:01 -05:00
gcc-plugins
gcc-plugins: test plugin support in Kconfig and clean up Makefile
2018-06-11 09:16:22 +09:00
gdb
scripts/gdb/linux/tasks.py: fix get_thread_info
2018-01-19 10:09:41 -08:00
genksyms
genksyms: remove symbol prefix support
2018-05-17 22:43:35 +09:00
kconfig
kconfig: allow all config targets to write auto.conf if missing
2018-07-25 23:25:30 +09:00
ksymoops
Fix dead URLs to ftp.kernel.org
2017-03-28 16:16:52 +02:00
mod
Kbuild updates for v4.18
2018-06-06 11:00:15 -07:00
package
kbuild: deb-pkg improve maintainer address generation
2018-05-17 22:38:15 +09:00
selinux
staging: lustre: delete the filesystem from the tree.
2018-06-05 19:22:35 +02:00
tracing
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
.gitignore
Docs: clean up some DocBook loose ends
2017-06-23 14:17:38 -06:00
adjust_autoksyms.sh
kbuild: remove CONFIG_HAVE_UNDERSCORE_SYMBOL_PREFIX
2018-05-17 22:44:57 +09:00
asn1_compiler.c
kbuild: rename *-asn1.[ch] to *.asn1.[ch]
2018-04-07 19:04:02 +09:00
bloat-o-meter
syscalls/core, syscalls/x86: Clean up compat syscall stub naming convention
2018-04-09 16:47:28 +02:00
bootgraph.pl
scripts: Switch to more portable Perl shebang
2017-05-14 11:20:44 +09:00
bpf_helpers_doc.py
bpf: change eBPF helper doc parsing script to allow for smaller indent
2018-05-17 17:34:43 +02:00
cc-can-link.sh
bpfilter: check compiler capability in Kconfig
2018-06-28 13:36:39 +09:00
check_00index.sh
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
check_extable.sh
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
checkincludes.pl
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
checkkconfigsymbols.py
checkkconfigsymbols.py: support Kconfig's 'imply' statement
2017-02-03 11:49:06 +01:00
checkpatch.pl
checkpatch: fix duplicate invalid vsprintf pointer extension '%p<foo>' messages
2018-07-14 11:11:10 -07:00
checkstack.pl
scripts/checkstack.pl: remove blackfin support
2018-03-26 15:56:15 +02:00
checksyscalls.sh
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
checkversion.pl
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
clang-version.sh
kconfig: add CC_IS_CLANG and CLANG_VERSION
2018-06-08 18:56:01 +09:00
cleanfile
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
cleanpatch
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
coccicheck
Coccinelle: coccicheck: fix typo
2018-02-02 00:21:47 +09:00
config
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
conmakehash.c
kbuild: trivial - remove trailing spaces
2014-04-30 17:34:32 +02:00
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
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
decodecode
scripts/decodecode: make it take multiline Code line
2018-01-31 17:18:34 -08:00
depmod.sh
depmod.sh: remove symbol prefix support
2018-05-17 22:44:52 +09:00
diffconfig
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
documentation-file-ref-check
scripts/documentation-file-ref-check: check tools/*/Documentation
2018-06-15 18:10:01 -03:00
export_report.pl
scripts: Switch to more portable Perl shebang
2017-05-14 11:20:44 +09:00
extract-cert.c
KEYS: Remove unnecessary header #inclusions from extract-cert.c
2015-09-25 16:31:45 +01:00
extract-ikconfig
scripts/extract-ikconfig: Support LZ4-compressed images.
2015-04-15 14:01:12 +02:00
extract-module-sig.pl
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
extract-sys-certs.pl
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
extract-vmlinux
scripts: teach extract-vmlinux about LZ4 and ZSTD
2018-07-08 09:32:32 +09:00
extract_xc3028.pl
MAINTAINERS & files: Canonize the e-mails I use at files
2018-05-04 06:21:06 -04:00
faddr2line
scripts/faddr2line: make the new code listing format optional
2018-06-05 09:04:37 -07:00
file-size.sh
kbuild: Use ls(1) instead of stat(1) to obtain file size
2018-03-26 02:01:24 +09:00
find-unused-docs.sh
scripts: Add a script to find unused documentation
2017-10-23 08:01:37 -06:00
gcc-goto.sh
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
gcc-ld
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
gcc-plugin.sh
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
gcc-version.sh
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
gcc-x86_32-has-stack-protector.sh
stack-protector: test compiler capability in Kconfig and drop AUTO mode
2018-06-08 18:56:00 +09:00
gcc-x86_64-has-stack-protector.sh
stack-protector: Fix test with 32-bit userland and CONFIG_64BIT=y
2018-06-25 23:21:13 +09:00
gen_initramfs_list.sh
kbuild: Improve portability of some sed invocations
2018-03-26 02:01:18 +09:00
get_dvb_firmware
scripts: Switch to more portable Perl shebang
2017-05-14 11:20:44 +09:00
get_maintainer.pl
get_maintainer: improve patch recognition
2018-06-07 17:34:39 -07:00
gfp-translate
chmod +x scripts/gfp-translate
2012-06-27 12:44:29 -07:00
headerdep.pl
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
headers.sh
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
headers_check.pl
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
headers_install.sh
kbuild: Improve portability of some sed invocations
2018-03-26 02:01:18 +09:00
insert-sys-cert.c
KEYS: Reserve an extra certificate symbol for inserting without recompiling
2016-02-26 15:30:20 +00:00
kallsyms.c
scripts: Fixed printf format mismatch
2018-05-29 22:04:12 +09:00
Kbuild.include
kbuild: add .DELETE_ON_ERROR special target
2018-07-25 23:25:31 +09:00
Kconfig.include
gcc-plugins: test plugin support in Kconfig and clean up Makefile
2018-06-11 09:16:22 +09:00
kernel-doc
docs: kernel-doc: fix parsing of arrays
2018-03-29 15:27:42 -06:00
ld-version.sh
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
leaking_addresses.pl
leaking_addresses: check if file name contains address
2018-04-07 08:50:34 +10:00
Lindent
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
link-vmlinux.sh
kallsyms: remove symbol prefix support
2018-05-17 22:43:36 +09:00
Makefile
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
Makefile.asm-generic
Kbuild updates for v4.15
2017-11-17 17:45:29 -08:00
Makefile.build
kbuild: remove duplicated comments about PHONY
2018-07-06 22:04:03 +09:00
Makefile.clean
kbuild: remove duplicated comments about PHONY
2018-07-06 22:04:03 +09:00
Makefile.dtbinst
DeviceTree for 4.15:
2017-11-14 18:25:40 -08:00
Makefile.extrawarn
Kbuild: suppress packed-not-aligned warning for default setting only
2018-01-18 09:37:53 +09:00
Makefile.gcc-plugins
gcc-plugins: test plugin support in Kconfig and clean up Makefile
2018-06-11 09:16:22 +09:00
Makefile.headersinst
Kbuild updates for v4.15
2017-11-17 17:45:29 -08:00
Makefile.host
kbuild: use HOSTLDFLAGS for single .c executables
2018-04-07 19:04:02 +09:00
Makefile.kasan
kasan: rework Kconfig settings
2018-02-06 18:32:47 -08:00
Makefile.kcov
kcov: test compiler capability in Kconfig and correct dependency
2018-06-11 09:14:08 +09:00
Makefile.lib
DeviceTree updates for v4.18:
2018-06-07 14:06:31 -07:00
Makefile.modbuiltin
kbuild: remove duplicated comments about PHONY
2018-07-06 22:04:03 +09:00
Makefile.modinst
kbuild: remove duplicated comments about PHONY
2018-07-06 22:04:03 +09:00
Makefile.modpost
kbuild: remove duplicated comments about PHONY
2018-07-06 22:04:03 +09:00
Makefile.modsign
kbuild: remove duplicated comments about PHONY
2018-07-06 22:04:03 +09:00
Makefile.ubsan
lib/ubsan: remove returns-nonnull-attribute checks
2018-02-06 18:32:46 -08:00
makelst
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
markup_oops.pl
scripts: Switch to more portable Perl shebang
2017-05-14 11:20:44 +09:00
mkcompile_h
Kbuild updates for v4.15
2017-11-17 17:45:29 -08:00
mkmakefile
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
mksysmap
mksysmap: Add h8300 local symbol pattern
2015-06-23 13:35:47 +09:00
mkuboot.sh
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
module-common.lds
module: set .init_array alignment to 8
2017-03-13 09:40:28 -07:00
namespace.pl
kbuild: rename built-in.o to built-in.a
2018-03-26 02:01:19 +09:00
objdiff
scripts: objdiff: Ignore debug info when comparing
2017-03-11 11:13:38 +09:00
parse-maintainers.pl
parse-maintainers: add ability to specify filenames
2017-11-17 16:10:01 -08:00
patch-kernel
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
pnmtologo.c
kbuild: trivial - remove trailing empty lines
2014-06-10 00:04:06 +02:00
profile2linkerlist.pl
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
prune-kernel
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
recordmcount.c
scripts: Fixed printf format mismatch
2018-05-29 22:04:12 +09:00
recordmcount.h
scripts: Fixed printf format mismatch
2018-05-29 22:04:12 +09:00
recordmcount.pl
powerpc/kbuild: Use flags variables rather than overriding LD/CC/AS
2018-06-01 23:08:09 +10:00
setlocalversion
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
show_delta
kbuild: trivial - remove trailing empty lines
2014-06-10 00:04:06 +02:00
sign-file.c
sign-file: fix build error in sign-file.c with libressl
2017-02-10 12:43:47 +11:00
sortextable.c
powerpc: Build-time sort the exception table
2016-11-14 11:11:51 +11:00
sortextable.h
scripts/sortextable: suppress warning: `relocs_size' may be used uninitialized
2014-10-14 02:18:23 +02:00
spdxcheck.py
scripts: Add SPDX checker script
2018-04-27 16:45:49 -06:00
spelling.txt
spelling.txt: add "unnecessary" typo variants
2017-11-17 16:10:00 -08:00
sphinx-pre-install
docs-rst: don't require adjustbox anymore
2017-09-08 10:02:55 -06:00
split-man.pl
MAINTAINERS & files: Canonize the e-mails I use at files
2018-05-04 06:21:06 -04:00
stackdelta
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
stackusage
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
tags.sh
scripts/tags.sh: add __ro_after_init
2018-07-13 00:48:18 +09:00
unifdef.c
unifdef: update to upstream version 2.5
2011-01-22 15:50:59 +01:00
ver_linux
ver_linux: Drop redundant calls to system() to test if file is readable
2018-05-14 16:36:39 +02:00
xen-hypercalls.sh
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
xz_wrap.sh
kbuild: Make scripts executable
2014-08-20 16:03:45 +02:00