Hi, > I'm afraid this is quite likely to fail build smoke test again. I've > just tried a build on OpenBSD with the bash -> sh fix in it, and I > found that it still tried to build the keycodemap files in parallel > with checking out the GIT submodules. It also tried to run the > mkdir -p dtc/libfdt in parallel and this caused git to refuse to > checkout the dtc module due to that empty dir existing. So there's > still some deps problems in here I think that let make build in > the wrong order :-(
> In all my debugging the one thing I've seen work correctly is the > re-running of configure (via config.status), which always happens > earlier and is serialized wrt everything else. So I wonder if we > should change direction slightly, and have configure checkout the > submodules. Then just make sure that config.status is triggered > when submodules are out of date. I've noticed configure running *in parallel* to other stuff. Reproducer: (1) Apply patch #1 (2) run normal build (3) make -C dtc clean (4) touch configure (5) make Watch configure and dtc build running in parallel. I think the added Makefile dependency breaks it. Incremental fix (also pushed to queue/ui): --- a/Makefile +++ b/Makefile @@ -35,8 +35,6 @@ endif .git-submodule-status: git-submodule-update config-host.mak -Makefile: .git-submodule-status - # Check that we're not trying to do an out-of-tree build from # a tree that's been used for an in-tree build. ifneq ($(realpath $(SRC_PATH)),$(realpath .)) @@ -107,6 +105,7 @@ endif GENERATED_FILES += $(TRACE_HEADERS) GENERATED_FILES += $(TRACE_SOURCES) GENERATED_FILES += $(BUILD_DIR)/trace-events-all +GENERATED_FILES += .git-submodule-status trace-group-name = $(shell dirname $1 | sed -e 's/[^a-zA-Z0-9]/_/g') cheers, Gerd