git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: git broken for AIX somewhere between 2.13.2 and 2.13.3

From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Date
Jul 29, 2018, 20:05 UTC
Message-ID
<87zhy9u7rz.fsf@evledraar.gmail.com>
In-Reply-To
<466c7a59-0535-e72c-6c90-5288a53b59a0@felt.demon.nl>
On Sun, Jul 29 2018, Michael wrote:
Show 75 quoted lines
> On 29/07/2018 20:10, brian m. carlson wrote:
>> On Sun, Jul 29, 2018 at 06:44:26PM +0200, Michael wrote:
>>> root@x066:[/tmp/xxx]git --version
>>> git version 2.13.3
>>> root@x066:[/tmp/xxx]git clone git@github.com:aixtools/hello-world.git
>>> Cloning into 'hello-world'...
>>> remote: Counting objects: 3, done.
>>> remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 3
>>> Receiving objects: 100% (3/3), done.
>>> fatal: pack is corrupted (SHA1 mismatch)
>>> fatal: index-pack failed
>>>
>>> p.s. - what surprises me re: git-2.13.2 - no messages about 'Cloning into
>>> ...', which version 2.13.1 did give.
>>>
>>> I guess a bisect is the next step - between version 2.13.2 and 2.13.3. Other
>>> suggestions welcome!
>> Are you using SHA1DC on that system, and does compiling with another
>> SHA-1 implementation help?  There was a change to the SHA1DC code big
>> endian detection in that commit, which might be the cause of your
>> problems if you're using a POWER or PowerPC system.
>
> I was thinking it might be an 'endian' issue. So, yes - AIX runs on
> POWER, only as BigEndian.
>
> git bisect returns:
>
> michael@x071:[/data/prj/aixtools/git/github/git-master]git bisect bad
> Bisecting: 1 revision left to test after this (roughly 1 step)
> [35049a2343948f686861e176a8c395f9f67da7b6] Merge branch
> 'aw/contrib-subtree-doc-asciidoctor' into maint
> michael@x071:[/data/prj/aixtools/git/github/git-master]git bisect good
> Bisecting: 0 revisions left to test after this (roughly 0 steps)
> [9936c1b52a39fa14fca04f937df3e75f7498ac66] sha1dc: update from upstream
>
>
> michael@x071:[/data/prj/aixtools/git/github/git-master]git bisect bad
> 9936c1b52a39fa14fca04f937df3e75f7498ac66 is the first bad commit
> commit 9936c1b52a39fa14fca04f937df3e75f7498ac66
> Author: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
> Date: Sat Jul 1 22:05:45 2017 +0000
>
>  sha1dc: update from upstream
>
>  Update sha1dc from the latest version by the upstream maintainer[1].
>
>  See commit 6b851e536b ("sha1dc: update from upstream", 2017-06-06) for
>  the last update.
>
>  This solves the Big Endian detection on Solaris reported against
>  v2.13.2[2], hopefully without any regressions. A version of this has
>  been tested on two Solaris SPARC installations, Cygwin (by jturney on
>  cygwin@Freenode), and on numerous more boring systems (mainly
>  linux/x86_64). See [3] for a discussion of the implementation and
>  platform-specific issues.
>
>  See commit a0103914c2 ("sha1dc: update from upstream", 2017-05-20) and
>  6b851e536b ("sha1dc: update from upstream", 2017-06-06) for previous
>  attempts in the 2.13 series to address various compile-time feature
>  detection in this library.
>
>
> 1. https://github.com/cr-marcstevens/sha1collisiondetection/commit/19d97bf5af05312267c2e874ee6bcf584d9e9681
>
>
> 2. <CAKKM46tHq13XiW5C8sux3=PZ1VHSu_npG8ExfWwcPD7rkZkyRQ@mail.gmail.com>
> (https://public-inbox.org/git/CAKKM46tHq13XiW5C8sux3=PZ1VHSu_npG8ExfWwcPD7rkZkyRQ@mail.gmail.com/)
>
>  3. https://github.com/cr-marcstevens/sha1collisiondetection/pull/34
>
>  Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
>  Signed-off-by: Junio C Hamano <gitster@pobox.com>
>
> :040000 040000 a84797967fb742e4ca9618a641d53ce3a6c6589b
> 32efa656d78901da961e4a47d84b6d82fede064b M sha1dc

Sorry about that. As can be seen from those PRs and the "git log" detecting whether something is big endian or not can be quite tricky, we figured out how to do it on both BSD and Solaris, but apparently broke AIX as a result.

You should be able to define -DSHA1DC_FORCE_LITTLEENDIAN or -DSHA1DC_FORCE_BIGENDIAN (looks like you'll need the latter) to get the latest version to compile, but I and upstream cr-marcstevens would be very interested to know from someone who knows AIX how this broke.

Also, to you and anyone else with access to AIX: I'd be happy to figure these issues out pro-actively if you give me a login to an AIX machine. I promise not to do anything except compile/debug/test git on it.

I used to have access to an AIX box through a previous job ages ago, it's a very interesting OS and like with Solaris it's easy to discover a lot of portability issues.

Previous: MichaelNext: Andreas Schwab
Message 4 of 25 in “git broken for AIX somewhere between 2.13.2 and 2.13.3”
  1. MichaelJul 29, 2018
  2. brian m. carlsonJul 29, 2018
  3. MichaelJul 29, 2018
  4. Ævar Arnfjörð BjarmasonJul 29, 2018
  5. Andreas SchwabJul 29, 2018
  6. MichaelJul 30, 2018
  7. MichaelJul 29, 2018
  8. brian m. carlsonJul 29, 2018
  9. MichaelJul 29, 2018
  10. Is detecting endianness at compile-time unworkable?Ævar Arnfjörð Bjarmason, Jul 30, 2018
  11. Junio C HamanoJul 30, 2018
  12. Junio C HamanoJul 30, 2018
  13. Daniel ShumowJul 30, 2018
  14. Michael FeltJul 31, 2018
  15. Eric WongAug 1, 2018
  16. Ævar Arnfjörð BjarmasonAug 1, 2018
  17. Michael FeltJul 31, 2018
  18. Ævar Arnfjörð BjarmasonAug 1, 2018
  19. sha1dc: update from upstreamÆvar Arnfjörð Bjarmason, Aug 2, 2018
  20. Michael Felt (aixtools)Aug 2, 2018
  21. Stefan BellerAug 2, 2018
  22. Michael FeltJul 31, 2018
  23. Michael FeltJul 31, 2018
  24. Ævar Arnfjörð BjarmasonJul 31, 2018
  25. MichaelJul 31, 2018

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.