From: Shawn O. Pearce Date: Tue, 11 Dec 2007 08:54:40 GMT Subject: Re: Building git-1.5.3.7 on HP-UX 11.00 Message-ID: <20071211085440.GK14735@spearce.org> In-Reply-To: <7vfxy9fxh3.fsf@gitster.siamese.dyndns.org> Junio C Hamano wrote: > "H.Merijn Brand" 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.