summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--external/libtommath/UnpackedTarball_libtommath.mk1
-rwxr-xr-xexternal/libtommath/clang-cl.patch16
2 files changed, 17 insertions, 0 deletions
diff --git a/external/libtommath/UnpackedTarball_libtommath.mk b/external/libtommath/UnpackedTarball_libtommath.mk
index 2a3184c9fc6c..bb0b9e352930 100644
--- a/external/libtommath/UnpackedTarball_libtommath.mk
+++ b/external/libtommath/UnpackedTarball_libtommath.mk
@@ -15,6 +15,7 @@ $(eval $(call gb_UnpackedTarball_set_patchlevel,libtommath,0))
$(eval $(call gb_UnpackedTarball_add_patches,libtommath,\
external/libtommath/libtommath-msvc.patch \
+ external/libtommath/clang-cl.patch \
))
# vim: set noet sw=4 ts=4:
diff --git a/external/libtommath/clang-cl.patch b/external/libtommath/clang-cl.patch
new file mode 100755
index 000000000000..1cc92d380c62
--- /dev/null
+++ b/external/libtommath/clang-cl.patch
@@ -0,0 +1,16 @@
+--- tommath.h
++++ tommath.h
+@@ -15,6 +15,13 @@
+ #ifndef BN_H_
+ #define BN_H_
+
++// Work around clang-cl issue when mp_word is a typedef for unsigned __int128, see
++// <https://bugs.llvm.org/show_bug.cgi?id=25305> "Clang-cl generates a call to an undefined symbol
++// _udivti3":
++#if defined _WIN32 && defined __clang__
++#define MP_8BIT
++#endif
++
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <stdint.h>