auto merge of #17129 : epdtry/rust/misc/llvm-root-reconfig, r=brson
Currently `./configure --llvm-root=...` and similar flags will break incremental builds by forcing reconfiguration on every `make`. This happens because `reconfig.mk` incorrectly treats submodules in the `-` (uninitialized) state as requiring reconfiguration, and `./configure` deliberately deinitializes unneeded submodules. The fix is to reconfigure only when submodules are in the `+` state (wrong commit checked out).
This commit is contained in:
commit
6faa4f33a4
1 changed files with 5 additions and 1 deletions
|
@ -15,7 +15,11 @@ rwildcard=$(foreach d,$(wildcard $1*),$(call rwildcard,$d/,$2) \
|
||||||
|
|
||||||
ifndef CFG_DISABLE_MANAGE_SUBMODULES
|
ifndef CFG_DISABLE_MANAGE_SUBMODULES
|
||||||
# This is a pretty expensive operation but I don't see any way to avoid it
|
# This is a pretty expensive operation but I don't see any way to avoid it
|
||||||
NEED_GIT_RECONFIG=$(shell cd "$(CFG_SRC_DIR)" && "$(CFG_GIT)" submodule status | grep -c '^\(+\|-\)')
|
# NB: This only looks for '+' status (wrong commit checked out), not '-' status
|
||||||
|
# (nothing checked out at all). `./configure --{llvm,jemalloc,libuv}-root`
|
||||||
|
# will explicitly deinitialize the corresponding submodules, and we don't
|
||||||
|
# want to force constant rebuilds in that case.
|
||||||
|
NEED_GIT_RECONFIG=$(shell cd "$(CFG_SRC_DIR)" && "$(CFG_GIT)" submodule status | grep -c '^+')
|
||||||
else
|
else
|
||||||
NEED_GIT_RECONFIG=0
|
NEED_GIT_RECONFIG=0
|
||||||
endif
|
endif
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue