Skip to content

Commit b57e58f

Browse files
committed
Merge branch 'fk/relink-upon-ldflags-update'
* fk/relink-upon-ldflags-update: Makefile: Track changes to LDFLAGS and relink when necessary
2 parents 182f228 + d9a25fc commit b57e58f

File tree

2 files changed

+18
-8
lines changed

2 files changed

+18
-8
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
/GIT-BUILD-OPTIONS
22
/GIT-CFLAGS
3+
/GIT-LDFLAGS
34
/GIT-GUI-VARS
45
/GIT-VERSION-FILE
56
/bin-wrappers/

Makefile

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1710,7 +1710,7 @@ git.sp git.s git.o: EXTRA_CPPFLAGS = -DGIT_VERSION='"$(GIT_VERSION)"' \
17101710
'-DGIT_MAN_PATH="$(mandir_SQ)"' \
17111711
'-DGIT_INFO_PATH="$(infodir_SQ)"'
17121712

1713-
git$X: git.o $(BUILTIN_OBJS) $(GITLIBS)
1713+
git$X: git.o GIT-LDFLAGS $(BUILTIN_OBJS) $(GITLIBS)
17141714
$(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ git.o \
17151715
$(BUILTIN_OBJS) $(ALL_LDFLAGS) $(LIBS)
17161716

@@ -2008,17 +2008,17 @@ compat/nedmalloc/nedmalloc.sp compat/nedmalloc/nedmalloc.o: EXTRA_CPPFLAGS = \
20082008
-DNDEBUG -DOVERRIDE_STRDUP -DREPLACE_SYSTEM_ALLOCATOR
20092009
endif
20102010

2011-
git-%$X: %.o $(GITLIBS)
2011+
git-%$X: %.o GIT-LDFLAGS $(GITLIBS)
20122012
$(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) $(LIBS)
20132013

2014-
git-imap-send$X: imap-send.o $(GITLIBS)
2014+
git-imap-send$X: imap-send.o GIT-LDFLAGS $(GITLIBS)
20152015
$(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) \
20162016
$(LIBS) $(OPENSSL_LINK) $(OPENSSL_LIBSSL) $(LIB_4_CRYPTO)
20172017

2018-
git-http-fetch$X: revision.o http.o http-walker.o http-fetch.o $(GITLIBS)
2018+
git-http-fetch$X: revision.o http.o http-walker.o http-fetch.o GIT-LDFLAGS $(GITLIBS)
20192019
$(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) \
20202020
$(LIBS) $(CURL_LIBCURL)
2021-
git-http-push$X: revision.o http.o http-push.o $(GITLIBS)
2021+
git-http-push$X: revision.o http.o http-push.o GIT-LDFLAGS $(GITLIBS)
20222022
$(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) \
20232023
$(LIBS) $(CURL_LIBCURL) $(EXPAT_LIBEXPAT)
20242024

@@ -2028,7 +2028,7 @@ $(REMOTE_CURL_ALIASES): $(REMOTE_CURL_PRIMARY)
20282028
ln -s $< $@ 2>/dev/null || \
20292029
cp $< $@
20302030

2031-
$(REMOTE_CURL_PRIMARY): remote-curl.o http.o http-walker.o $(GITLIBS)
2031+
$(REMOTE_CURL_PRIMARY): remote-curl.o http.o http-walker.o GIT-LDFLAGS $(GITLIBS)
20322032
$(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) \
20332033
$(LIBS) $(CURL_LIBCURL) $(EXPAT_LIBEXPAT)
20342034

@@ -2098,6 +2098,15 @@ GIT-CFLAGS: FORCE
20982098
echo "$$FLAGS" >GIT-CFLAGS; \
20992099
fi
21002100

2101+
TRACK_LDFLAGS = $(subst ','\'',$(ALL_LDFLAGS))
2102+
2103+
GIT-LDFLAGS: FORCE
2104+
@FLAGS='$(TRACK_LDFLAGS)'; \
2105+
if test x"$$FLAGS" != x"`cat GIT-LDFLAGS 2>/dev/null`" ; then \
2106+
echo 1>&2 " * new link flags"; \
2107+
echo "$$FLAGS" >GIT-LDFLAGS; \
2108+
fi
2109+
21012110
# We need to apply sq twice, once to protect from the shell
21022111
# that runs GIT-BUILD-OPTIONS, and then again to protect it
21032112
# and the first level quoting from the shell that runs "echo".
@@ -2169,7 +2178,7 @@ test-svn-fe$X: vcs-svn/lib.a
21692178

21702179
.PRECIOUS: $(TEST_OBJS)
21712180

2172-
test-%$X: test-%.o $(GITLIBS)
2181+
test-%$X: test-%.o GIT-LDFLAGS $(GITLIBS)
21732182
$(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) $(filter %.a,$^) $(LIBS)
21742183

21752184
check-sha1:: test-sha1$X
@@ -2379,7 +2388,7 @@ ifndef NO_TCLTK
23792388
$(MAKE) -C gitk-git clean
23802389
$(MAKE) -C git-gui clean
23812390
endif
2382-
$(RM) GIT-VERSION-FILE GIT-CFLAGS GIT-GUI-VARS GIT-BUILD-OPTIONS
2391+
$(RM) GIT-VERSION-FILE GIT-CFLAGS GIT-LDFLAGS GIT-GUI-VARS GIT-BUILD-OPTIONS
23832392

23842393
.PHONY: all install clean strip
23852394
.PHONY: shell_compatibility_test please_set_SHELL_PATH_to_a_more_modern_shell

0 commit comments

Comments
 (0)