Subject: Re: Building git-1.5.3.7 on HP-UX 11.00

From: "Shawn O. Pearce" <[email-masked]>
Date: Tue, 11 Dec 2007 03:54:40 -0500

Junio C Hamano <[email-masked]> wrote:
> "H.Merijn Brand" <[email-masked]> writes:
> 
> > 3 I am willing to believe that HP_UX' vsnprintf () is broken, or
> >   at least does not conform to the expectations in the GNU world,
> >   but chickening out like the way strbuf_addf () does is maybe a
> >   bit too rude, so I forced a minimum of 64bytes available. That
> >   fixes a lot!
> >
> >   but it still breaks t4013 :(
> 
> I think Shawn had something similar for Solaris, and if it is a small
> cost to help portability, it does not feel so bad.

My Solaris change is already in your tree; on Solaris vnsprintf
will return -1 if the input buffer we gave it had a length of 0.
This can happen at odd times, depending on what is already in the
strbuf and how its buffer is. :)

The fix for Solaris turned out to be just make sure there is at
least 1 byte in the buffer before calling vsnprintf().
 
> > + git-index-pack -o tmp.idx test-2-7f8ead892057e78576c0329a70cc83afb113f117.pack
> > fatal: serious inflate inconsistency
> 
> That sounds like a broken zlib X-<.

I think this is actually a broken pread().  Its been reported
multiple times by different people on HP-UX.  Compiling with
NO_PREAD=1 resolves the issues for everyone who has tried it.

Jakub asked me for an autoconf test to look for this sort of
breakage in pread(), I have yet to come up with a theory for
what sort of breakage HP-UX is showing us here, let alone write
a test for it.

-- 
Shawn.