<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/Makefile, branch v2.33.6</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://git.shady.money/git/atom?h=v2.33.6</id>
<link rel='self' href='https://git.shady.money/git/atom?h=v2.33.6'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/'/>
<updated>2021-10-12T20:51:49Z</updated>
<entry>
<title>Merge branch 'ab/make-clean-depend-dirs' into maint</title>
<updated>2021-10-12T20:51:49Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2021-10-12T20:51:49Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=bbfc8212e11de3f6aad7b77a3d7138083a39c336'/>
<id>urn:sha1:bbfc8212e11de3f6aad7b77a3d7138083a39c336</id>
<content type='text'>
"make clean" has been updated to remove leftover .depend/
directories, even when it is not told to use them to compute header
dependencies.

* ab/make-clean-depend-dirs:
  Makefile: clean .depend dirs under COMPUTE_HEADER_DEPENDENCIES != yes
</content>
</entry>
<entry>
<title>Merge branch 'ab/no-more-check-bindir' into maint</title>
<updated>2021-10-12T20:51:32Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2021-10-12T20:51:32Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=32b6c51888665499f51ba207f6097e6a3c666121'/>
<id>urn:sha1:32b6c51888665499f51ba207f6097e6a3c666121</id>
<content type='text'>
Build simplification.

* ab/no-more-check-bindir:
  Makefile: remove the check_bindir script
</content>
</entry>
<entry>
<title>Merge branch 'sg/make-fix-ar-invocation' into maint</title>
<updated>2021-10-12T20:51:25Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2021-10-12T20:51:25Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=5586bd2de231a6b504162107a65c2de6ea7959d2'/>
<id>urn:sha1:5586bd2de231a6b504162107a65c2de6ea7959d2</id>
<content type='text'>
Build fix.

* sg/make-fix-ar-invocation:
  Makefile: remove archives before manipulating them with 'ar'
</content>
</entry>
<entry>
<title>Makefile: clean .depend dirs under COMPUTE_HEADER_DEPENDENCIES != yes</title>
<updated>2021-09-22T20:34:34Z</updated>
<author>
<name>Ævar Arnfjörð Bjarmason</name>
<email>avarab@gmail.com</email>
</author>
<published>2021-09-22T20:17:06Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=f0a74bcb0352eab0ce7d474eea1754533e53bb5b'/>
<id>urn:sha1:f0a74bcb0352eab0ce7d474eea1754533e53bb5b</id>
<content type='text'>
Fix a logic error in dfea575017d (Makefile: lazily compute header
dependencies, 2010-01-26) where we'd make whether we cleaned the
.depend dirs contingent on the currently configured
COMPUTE_HEADER_DEPENDENCIES value. Before this running e.g.:

    make COMPUTE_HEADER_DEPENDENCIES=yes grep.o
    make COMPUTE_HEADER_DEPENDENCIES=no clean

Would leave behind the .depend directory, now it'll be removed.

Normally we'd need to use another variable, but in this case there's
no other uses of $(dep_dirs), as opposed to $(dep_args) which is used
as an argument to $(CC). So just deleting this line makes everything
work correctly.

See http://lore.kernel.org/git/xmqqmto48ufz.fsf@gitster.g for a report
about this issue.

Signed-off-by: Ævar Arnfjörð Bjarmason &lt;avarab@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Makefile: remove the check_bindir script</title>
<updated>2021-09-07T20:27:40Z</updated>
<author>
<name>Ævar Arnfjörð Bjarmason</name>
<email>avarab@gmail.com</email>
</author>
<published>2021-09-06T07:55:33Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=72b113e5621febe5d5138f73e464a4962b3b7851'/>
<id>urn:sha1:72b113e5621febe5d5138f73e464a4962b3b7851</id>
<content type='text'>
This script was added in f28ac70f48 (Move all dashed-form commands to
libexecdir, 2007-11-28) when commands such as "git-add" lived in the
bin directory, instead of the git exec directory.

This notice helped someone incorrectly installing version v1.6.0 and
later into a directory built for a pre-v1.6.0 git version.

We're now long past the point where anyone who'd be helped by this
warning is likely to be doing that, so let's just remove this check
and warning to simplify the Makefile.

Signed-off-by: Ævar Arnfjörð Bjarmason &lt;avarab@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Makefile: remove archives before manipulating them with 'ar'</title>
<updated>2021-08-19T23:44:32Z</updated>
<author>
<name>SZEDER Gábor</name>
<email>szeder.dev@gmail.com</email>
</author>
<published>2021-08-18T21:36:11Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=325b06deda688e5110a134a4f8d390ed48af7b80'/>
<id>urn:sha1:325b06deda688e5110a134a4f8d390ed48af7b80</id>
<content type='text'>
The rules creating the $(LIB_FILE) and $(XDIFF_LIB) archives used to
be:

  $(QUIET_AR)$(RM) $@ &amp;&amp; $(AR) $(ARFLAGS) $@ $^

until commit 7b76d6bf22 (Makefile: add and use the ".DELETE_ON_ERROR"
flag, 2021-06-29) removed the '$(RM) $@' part, claiming that "we can
rely on the "c" (create) being present in ARFLAGS", and (I presume)
assuming that it means that the named archive is created from scratch.

Unfortunately, that's not what the 'c' flag does, it merely "Suppress
the diagnostic message that is written to standard error by default
when the archive is created" [1].  Consequently, all object files that
are already present in an existing archive and are not replaced will
remain there.  This leads to linker errors in back-to-back builds of
different revisions without a 'make clean' between them if source
files going into these archives are renamed in between:

  # The last commit renaming files that go into 'libgit.a':
  # bc62692757 (hash-lookup: rename from sha1-lookup, 2020-12-31)
  #  sha1-lookup.c =&gt; hash-lookup.c | 14 +++++++-------
  #  sha1-lookup.h =&gt; hash-lookup.h | 12 ++++++------
  $ git checkout bc62692757^
  HEAD is now at 7a7d992d0d sha1-lookup: rename `sha1_pos()` as `hash_pos()`
  $ make
  [...]
  $ git checkout 7b76d6bf22
  HEAD is now at 7b76d6bf22 Makefile: add and use the ".DELETE_ON_ERROR" flag
  $ make
  [...]
      AR libgit.a
      LINK git
  /usr/bin/ld: libgit.a(hash-lookup.o): in function `bsearch_hash':
  /home/szeder/src/git/hash-lookup.c:105: multiple definition of `bsearch_hash'; libgit.a(sha1-lookup.o):/home/szeder/src/git/sha1-lookup.c:105: first defined here
  collect2: error: ld returned 1 exit status
  make: *** [Makefile:2213: git] Error 1

Restore the original make rules to first remove $(LIB_FILE) and
$(XDIFF_LIB) and then create them from scratch to avoid these build
errors.

[1] Quoting POSIX at:
    https://pubs.opengroup.org/onlinepubs/9699919799/utilities/ar.html

Signed-off-by: SZEDER Gábor &lt;szeder.dev@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'ab/getcwd-test'</title>
<updated>2021-08-04T20:28:55Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2021-08-04T20:28:55Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=fea3738ac550776db44eddd2cd1ab37ae1004d6b'/>
<id>urn:sha1:fea3738ac550776db44eddd2cd1ab37ae1004d6b</id>
<content type='text'>
Portability test update.

* ab/getcwd-test:
  t0001: fix broken not-quite getcwd(3) test in bed67874e2
</content>
</entry>
<entry>
<title>t0001: fix broken not-quite getcwd(3) test in bed67874e2</title>
<updated>2021-07-30T17:18:27Z</updated>
<author>
<name>Ævar Arnfjörð Bjarmason</name>
<email>avarab@gmail.com</email>
</author>
<published>2021-07-30T16:18:14Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=482e1488a9b549cbf7466f4ee5396f93bb4588d6'/>
<id>urn:sha1:482e1488a9b549cbf7466f4ee5396f93bb4588d6</id>
<content type='text'>
With a54e938e5b (strbuf: support long paths w/o read rights in
strbuf_getcwd() on FreeBSD, 2017-03-26) we had t0001 break on systems
like OpenBSD and AIX whose getcwd(3) has standard (but not like glibc
et al) behavior.

This was partially fixed in bed67874e2 (t0001: skip test with
restrictive permissions if getpwd(3) respects them, 2017-08-07).

The problem with that fix is that while its analysis of the problem is
correct, it doesn't actually call getcwd(3), instead it invokes "pwd
-P". There is no guarantee that "pwd -P" is going to call getcwd(3),
as opposed to e.g. being a shell built-in.

On AIX under both bash and ksh this test breaks because "pwd -P" will
happily display the current working directory, but getcwd(3) called by
the "git init" we're testing here will fail to get it.

I checked whether clobbering the $PWD environment variable would
affect it, and it didn't. Presumably these shells keep track of their
working directory internally.

There's possible follow-up work here in teaching strbuf_getcwd() to
get the working directory with whatever method "pwd" uses on these
platforms. See [1] for a discussion of that, but let's take the easy
way out here and just skip these tests by fixing the
GETCWD_IGNORES_PERMS prerequisite to match the limitations of
strbuf_getcwd().

1. https://lore.kernel.org/git/b650bef5-d739-d98d-e9f1-fa292b6ce982@web.de/

Signed-off-by: Ævar Arnfjörð Bjarmason &lt;avarab@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'ew/many-alternate-optim'</title>
<updated>2021-07-28T20:17:57Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2021-07-28T20:17:57Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=e5cc59c77c875aeda93a3cdfe70c8254164324ab'/>
<id>urn:sha1:e5cc59c77c875aeda93a3cdfe70c8254164324ab</id>
<content type='text'>
Optimization for repositories with many alternate object store.

* ew/many-alternate-optim:
  oidtree: a crit-bit tree for odb_loose_cache
  oidcpy_with_padding: constify `src' arg
  make object_directory.loose_objects_subdir_seen a bitmap
  avoid strlen via strbuf_addstr in link_alt_odb_entry
  speed up alt_odb_usable() with many alternates
</content>
</entry>
<entry>
<title>Merge branch 'js/ci-windows-update'</title>
<updated>2021-07-22T20:05:55Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2021-07-22T20:05:55Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=dae59cb26302fe384158a04b5fe4b204d95dfef0'/>
<id>urn:sha1:dae59cb26302fe384158a04b5fe4b204d95dfef0</id>
<content type='text'>
GitHub Actions / CI update.

* js/ci-windows-update:
  ci: accelerate the checkout
  ci (vs-build): build with NO_GETTEXT
  artifacts-tar: respect NO_GETTEXT
  ci (windows): transfer also the Git-tracked files to the test jobs
  ci: upgrade to using actions/{up,down}load-artifacts v2
  ci (vs-build): use `cmd` to copy the DLLs, not `powershell`
  ci: use the new GitHub Action to download git-sdk-64-minimal
</content>
</entry>
</feed>
