On 1/25/2014 3:59 AM, Corinna Vinschen wrote: > On Jan 23 11:51, Corinna Vinschen wrote: >> On Jan 22 16:42, Chris O'Bryan wrote: >>>> On Mon, Jan 20, 2014 at 5:31 PM, Steven Penny wrote: >>>> >>>>> Are you certain the bug is present in Adam’s version? He >>>>> has tested it here >>>>> >>>>> http://cygwin.com/ml/cygwin/2014-01/msg00085.html >>>> >>>> I just tried cloning something big again (the linux kernel). >>>> See below. The first one was with git-1.7.9 the default >>>> Cygwin version. [...] x86$ git clone >>>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git >>>> >>>> linux-git-1.8.5.2 >>>> Cloning into 'linux-git-1.8.5.2'... remote: Counting objects: >>>> 3366700, done. remote: Compressing objects: 100% >>>> (508113/508113), done. remote: Total 3366700 (delta 2833563), >>>> reused 3362434 (delta 2829537) Receiving objects: 100% >>>> (3366700/3366700), 703.64 MiB | 2.16 MiB/s, done. fatal: pack >>>> is corrupted (SHA1 mismatch) fatal: index-pack failed [...] >> >> Even if it's an OpenSSL issue, I'm not sure what to do about it. >> I'm building OpenSSL for Cygwin, but I have no knowledge of the >> crypto stuff... >> >> I don't see anything unusual in the build process, except, maybe, >> that for SHA1 the x86 assembler code is used. I'm wondering what >> happens when taking out -DSHA1_ASM from the build process. Or >> what happens when using -O2 instead of -O3. > > I have a hunch that this is not a OpenSSL but a Cygwin problem. > > The default case in OpenSSL is to use SSE2 instructions in the x86 > assembler code. However, SSE2 instructions utilize the x86 XMM > registers, which are not saved and restored in setjmp/longjmp, nor > are they stored and restored in signal handling under Cygwin. > > In the long run Cygwin should save and restore the XMM registers > on x86 as well, I guess. > > For the time being, I've build a new OpenSSL version 1.0.1f-2 with > the "no-sse2" flag. With this version I could clone the linx repo > without error. Please give it a try.
The new OpenSSL version fixes things for me. This explanation makes sense given what I've seen as well. I had built my own updated git binaries a while ago. I noticed that for x86, the binaries would fail cloning a large repository, and would also give spurious errors from "git fsck" on an existing repository. I had no such problems with my x86_64 build. With the new OpenSSL on x86, both the clone and the fsck problems have gone away. Thanks! Now my colleagues can use Git 1.8 with x86! -- David Rothenberger ---- daver...@acm.org Revolution, n.: In politics, an abrupt change in the form of misgovernment. -- Ambrose Bierce -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple