summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrances Wingerter <wingerter@google.com>2024-02-29 15:48:39 -0500
committerFrances Wingerter <wingerter@google.com>2024-03-13 17:56:58 -0400
commit7ac9bf3070439c092d6974388d4838cf50a531f2 (patch)
tree1fcd350158907193b5b03c0c585c0fec941d52f7
parent7ddc7aabdcb578ebea952f088950679f3bce1b76 (diff)
downloadlib-7ac9bf3070439c092d6974388d4838cf50a531f2.tar.gz
build: avoid creating empty file when bindgen fails
for some reason, bindgen creates an empty file when -o is passed and it fails we can avoid subsequent builds treating this file as a successful bindgen output by creating it at a temporary location and only moving it to the permanent one after bindgen succeeds Bug: 316184497 Test: insert syntax error in bindings.h file, build (should fail), fix syntax error, build again (second build fails without this CL) Change-Id: I9fb809631d40fd2e553453da43826c13745009f8
-rw-r--r--make/bindgen.mk3
1 files changed, 2 insertions, 1 deletions
diff --git a/make/bindgen.mk b/make/bindgen.mk
index 2b57cf3..e31d44c 100644
--- a/make/bindgen.mk
+++ b/make/bindgen.mk
@@ -76,7 +76,8 @@ $(MODULE_BINDGEN_OUTPUT_FILE): $(MODULE_BINDGEN_SRC_HEADER) $(BINDGEN) $(MODULE_
$(NOECHO)
CLANG_PATH=$(BINDGEN_CLANG_PATH) \
LIBCLANG_PATH=$(BINDGEN_LIBCLANG_PATH) \
- $(BINDGEN) $< -o $@ $(MODULE_BINDGEN_FLAGS) --depfile $@.d -- $(GLOBAL_COMPILEFLAGS) $(ARCH_COMPILEFLAGS) $(BINDGEN_MODULE_COMPILEFLAGS) $(BINDGEN_MODULE_INCLUDES) $(GLOBAL_INCLUDES) $(DEFINES)
+ $(BINDGEN) $< -o $@.tmp $(MODULE_BINDGEN_FLAGS) --depfile $@.d -- $(GLOBAL_COMPILEFLAGS) $(ARCH_COMPILEFLAGS) $(BINDGEN_MODULE_COMPILEFLAGS) $(BINDGEN_MODULE_INCLUDES) $(GLOBAL_INCLUDES) $(DEFINES)
+ @$(call TESTANDREPLACEFILE,$@.tmp,$@)
MODULE_SRCDEPS += $(MODULE_BINDGEN_OUTPUT_FILE)