Subject: Re: Git v2.21.0-rc0 broken on *BSD, maybe others

From: Duy Nguyen <[email-masked]>
Date: Tue, 12 Feb 2019 19:43:23 +0700

On Tue, Feb 12, 2019 at 01:13:35PM +0100, Ævar Arnfjörð Bjarmason wrote:
> 
> On Thu, Feb 07 2019, Junio C Hamano wrote:
> 
> > An early preview release Git v2.21.0-rc0 is now available for
> > testing at the usual places.  It is comprised of 426 non-merge
> > commits since v2.20.0, contributed by 57 people, 13 of which are
> > new faces.
> 
> As seen on https://gitlab.com/git-vcs/git-ci/branches there are
> regressions since 2.19.0, e.g. we have hard compile errors on BSD now,
> and maybe AIX. I haven't dug into it.

The build problem on BSD is known and being worked on [1]. I was going
to install FreeBSD to examine it closey, but got distracted.

The AIX problem is from d1dd94b308 (Do not print 'dangling' for
cat-file in case of ambiguity - 2019-01-17). Apparently AIX compiler
is a bit picky about enum being a strong or weak type. I like this
compiler. The below patch should do.

The test failures on NetBSD and Solaris/Sparc, not sure if we can do
anything without test logs or access to these systems.

-- 8< --
diff --git a/sha1-name.c b/sha1-name.c
index d1cc77c124..6dda2c16df 100644
--- a/sha1-name.c
+++ b/sha1-name.c
@@ -1820,9 +1820,11 @@ void maybe_die_on_misspelt_object_name(const char *name, const char *prefix)
 			       prefix, &oid, &oc);
 }
 
-int get_oid_with_context(struct repository *repo, const char *str,
-			 unsigned flags, struct object_id *oid,
-			 struct object_context *oc)
+enum get_oid_result get_oid_with_context(struct repository *repo,
+					 const char *str,
+					 unsigned flags,
+					 struct object_id *oid,
+					 struct object_context *oc)
 {
 	if (flags & GET_OID_FOLLOW_SYMLINKS && flags & GET_OID_ONLY_TO_DIE)
 		BUG("incompatible flags for get_sha1_with_context");
-- 8< --

[1] https://public-inbox.org/git/[email-masked]/
--
Duy