On Fri, Dec 04, 2009 at 03:29:28PM -0500, Nathaniel W Filardo wrote: > On Fri, Dec 04, 2009 at 09:16:40PM +0100, Andreas Schwab wrote: > > Nathaniel W Filardo writes: > > > > > On this machine, > > > > > > mirrors hydra:/tank0/mirrors/misc% uname -a > > > FreeBSD hydra.priv.oc.ietfng.org 9.0-CURRENT FreeBSD 9.0-CURRENT #13: Sat Nov 14 19:40:25 EST 2009 root@hydra.priv.oc.ietfng.org:/systank/obj/systank/src/sys/NWFKERN sparc64 > > > > > > attempting to fetch from an svn source yields the following error: > > > > > > rs hydra:/tank0/mirrors/misc% git svn init -s https://joshua.svn.sourceforge.net/svnroot/joshua test-joshua > > > Initialized empty Git repository in /tank0/mirrors/misc/test-joshua/.git/ > > > mirrors hydra:/tank0/mirrors/misc% cd test-joshua > > > mirrors hydra:/tank0/mirrors/misc/test-joshua% git svn fetch > > > A scripts/distributedLM/config.template > > > [...] > > > A build.xml > > > r1 = fe84a7d821ec6d92da75133ac7ad1deb476b6484 (refs/remotes/trunk) > > > error: index uses extension, which we do not understand > > > fatal: index file corrupt > > > write-tree: command returned error: 128 > > > > I could not reproduce that on powerpc (both 32bit and 64bit). > > > > Andreas. I got some free time and tracked it down. The following one-line delta fixes this issue for me; AIUI on sparc64 "unsigned long" is 8 bits and in the wrong endianness for the memcpy trick to work as written? I could be sligntly off in my assessment of the problem, tho'. index 1bbaf1c..9033dd3 100644 --- a/read-cache.c +++ b/read-cache.c @@ -1322,7 +1322,7 @@ int read_index_from(struct index_state *istate, const char *path) * extension name (4-byte) and section length * in 4-byte network byte order. */ - unsigned long extsize; + uint32_t extsize; memcpy(&extsize, (char *)mmap + src_offset + 4, 4); extsize = ntohl(extsize); if (read_index_extension(istate, --nwf;