tr/xdiff-fast-hash generates warnings and breaks tests
From: Øyvind A. Holm <hidden>
Date: 2016-06-15 22:53:50
On Debian GNU/Linux 6.0.5 (squeeze), the two commits on the
tr/xdiff-fast-hash branch introduces compiler warnings and breaks
t/t0020-crlf.sh and maybe later tests:
6942efc (xdiff: load full words in the inner loop of xdl_hash_record)
Introduces these compiler warnings (formatted for readability):
[...]
CC xdiff/xprepare.o
CC xdiff/xutils.o
xdiff/xutils.c: In function `has_zero':
xdiff/xutils.c:290: warning: integer constant is too large for
`unsigned long' type
xdiff/xutils.c:290: warning: integer constant is too large for
`unsigned long' type
xdiff/xutils.c: In function `xdl_hash_record':
xdiff/xutils.c:345: warning: integer constant is too large for
`unsigned long' type
xdiff/xutils.c:361: warning: integer constant is too large for
`unsigned long' type
CC xdiff/xemit.o
CC xdiff/xmerge.o
[...]
6f1af02 (xdiff: choose XDL_FAST_HASH code on sizeof(long) instead of
__WORDSIZE)
Breaks these tests in t/t0020-crlf.sh :
not ok - 12 apply patch (autocrlf=input)
not ok - 13 apply patch --cached (autocrlf=input)
not ok - 14 apply patch --index (autocrlf=input)
not ok - 15 apply patch (autocrlf=true)
not ok - 16 apply patch --cached (autocrlf=true)
not ok - 17 apply patch --index (autocrlf=true)
# failed 6 among 34 test(s)
Some later tests might also fail, haven't tested that.
Reverting those two commits on current master (6a4a482) fixes both
problems. Tried building on two other systems (Ubuntu 10.04.4 LTS and
Ubuntu 10.10), and these problems don't appear there. Some info:
$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 6.0.5 (squeeze)
Release: 6.0.5
Codename: squeeze
$ gcc --version
gcc (Debian 4.4.5-8) 4.4.5
$ ldd --version
ldd (Debian EGLIBC 2.11.3-3) 2.11.3
$ uname -a
Linux shell 2.6.32-5-amd64 #1 SMP Mon Jan 16 17:15:00 UTC 2012
x86_64 GNU/Linux
First part of /proc/cpuinfo:
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 23
model name : Intel(R) Xeon(R) CPU X3350 @ 2.66GHz
stepping : 7
cpu MHz : 2666.649
cache size : 6144 KB
physical id : 0
siblings : 4
core id : 0
cpu cores : 4
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 10
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr
pge mca cmov pat pse36 clflush dts acpi mmx fxsr
sse sse2 ss ht tm pbe syscall nx lm constant_tsc
arch_perfmon pebs bts rep_good aperfmperf pni
dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16
xtpr pdcm sse4_1 lahf_lm tpr_shadow vnmi
flexpriority
bogomips : 5333.29
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
Cheers,
Øyvind