Re: [PATCH] Makefile: read configuration earlier
Junio C Hamano <[email protected]> Wed, 29 Jul 2026 21:10:15 -0700
| Newsgroups | org.kernel.vger.git |
|---|---|
| Message-ID | <[email protected]> |
"brian m. carlson" <[email protected]> writes: > When building with WITH_BREAKING_CHANGES, we need that option set before > we generate the list of binaries to build, since it affects whether > git-whatchanged is built. That in turn, affects whether t1517 passes, > since it does not if we are in breaking-changes mode and git-whatchanged > or git-pack-redundant exist. Load the configuration settings earlier in > the Makefile so that we properly honor this value when building. > > Signed-off-by: brian m. carlson <[email protected]> > --- > I noticed that Peff's patches didn't quite fix the problem for me and I > think we need this on top to make the tests pass properly. > > Makefile | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) This is a scary patch because its correctness depends on what is between lines 780-1050. It turns out that this now lets config.mak* to set quite a lot of symbols to affect the outcome: * PROGRAM_OBJS, BUILT_INS, TEST_BUILTIN_OBJS * WITH_BREAKING_CHANGES * SHELL_PATH * PERL_PATH * PYTHON_PATH * NO_RUST * DEBUG * uname_S????? * SPARSE_FLAGS * SPATCH_INCLUDE_FLAGS Especially curious is that currently there is this bit: ifeq ($(uname_S),Windows) RUST_LIB_NAME = gitcore.lib else RUST_LIB_NAME = libgitcore.a endif that comes WAY BEFORE config.mak.uname is included. If the location to include these files matter, then how could this bit have been working? I have no idea and since I have no access to Windows development box so I wouldn't know. > diff --git a/Makefile b/Makefile > index 98e995e4be..6bfa461aeb 100644 > --- a/Makefile > +++ b/Makefile > @@ -781,6 +781,10 @@ clean-perl-script: > clean-python-script: > $(RM) $(SCRIPT_PYTHON_GEN) > > +include config.mak.uname > +-include config.mak.autogen > +-include config.mak > + > SCRIPTS = $(SCRIPT_SH_GEN) \ > $(SCRIPT_PERL_GEN) \ > $(SCRIPT_PYTHON_GEN) \ > @@ -1050,10 +1054,6 @@ GIT-SPATCH-DEFINES: FORCE > echo "$$FLAGS" >GIT-SPATCH-DEFINES; \ > fi > > -include config.mak.uname > --include config.mak.autogen > --include config.mak > - > ifdef DEVELOPER > include config.mak.dev > endif