Re: git broken for AIX somewhere between 2.13.2 and 2.13.3
flat view
From: Ævar Arnfjörð Bjarmason <hidden>
Date: 2018-07-29 20:05:59
On Sun, Jul 29 2018, Michael wrote:
On 29/07/2018 20:10, brian m. carlson wrote:quoted
On Sun, Jul 29, 2018 at 06:44:26PM +0200, Michael wrote:quoted
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 [off-list ref] 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. [ref] (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 [off-list ref] Signed-off-by: Junio C Hamano [off-list ref] :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.