Makefile: fix unaligned loads in sha1dc with UBSan

The sha1dc library uses unaligned loads on platforms that support them. This is normally what you'd want for performance, but it does cause UBSan to complain when we compile with SANITIZE=undefined. Just like we set -DNO_UNALIGNED_LOADS for our own code in that case, we should set -DSHA1DC_FORCE_ALIGNED_ACCESS. Of course that does nothing without pulling in the patches from sha1dc to respect that define. So let's do that, too, updating both the submodule link and our in-tree copy (from the same commit). Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Jeff King committed Mar 12, 2019 at 17:06 UTC 07a20f569b4b1690e717eaac0954007a8edfbfc2
3 files changed +5 -3
Makefile
+1
@@ -1183,6 +1183,7 @@ BASIC_CFLAGS += -fsanitize=$(SANITIZE) -fno-sanitize-recover=$(SANITIZE)
1183 BASIC_CFLAGS += -fno-omit-frame-pointer
1184 ifneq ($(filter undefined,$(SANITIZERS)),)
1185 BASIC_CFLAGS += -DNO_UNALIGNED_LOADS
1186 +BASIC_CFLAGS += -DSHA1DC_FORCE_ALIGNED_ACCESS
1187 endif
1188 ifneq ($(filter leak,$(SANITIZERS)),)
1189 BASIC_CFLAGS += -DSUPPRESS_ANNOTATED_LEAKS
sha1collisiondetection
+1 -1
@@ -1 +1 @@
1 -Subproject commit 232357eb2ea0397388254a4b188333a227bf5b10
1 +Subproject commit 16033998da4b273aebd92c84b1e1b12e4aaf7009
sha1dc/sha1.c
+3 -2
@@ -124,10 +124,11 @@
124 #endif
125 /*ENDIANNESS SELECTION*/
126
127 +#ifndef SHA1DC_FORCE_ALIGNED_ACCESS
128 #if defined(SHA1DC_FORCE_UNALIGNED_ACCESS) || defined(SHA1DC_ON_INTEL_LIKE_PROCESSOR)
129 #define SHA1DC_ALLOW_UNALIGNED_ACCESS
129 -#endif /*UNALIGNMENT DETECTION*/
130 -
130 +#endif /*UNALIGNED ACCESS DETECTION*/
131 +#endif /*FORCE ALIGNED ACCESS*/
132
133 #define rotate_right(x,n) (((x)>>(n))|((x)<<(32-(n))))
134 #define rotate_left(x,n) (((x)<<(n))|((x)>>(32-(n))))