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

Reply via email to