Chromium Code Reviews| Index: third_party/sqlite/patches/0010-build-Undefined-symbol-in-intrinsic-on-clang.patch |
| diff --git a/third_party/sqlite/patches/0010-build-Undefined-symbol-in-intrinsic-on-clang.patch b/third_party/sqlite/patches/0010-build-Undefined-symbol-in-intrinsic-on-clang.patch |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..5af6af88451dfff5df43502db5d2d5bdc877d8fa |
| --- /dev/null |
| +++ b/third_party/sqlite/patches/0010-build-Undefined-symbol-in-intrinsic-on-clang.patch |
| @@ -0,0 +1,36 @@ |
| +From 0233385c56d2b900b6f709a1af07d399285445a2 Mon Sep 17 00:00:00 2001 |
| +From: Scott Hess <shess@chromium.org> |
| +Date: Tue, 14 Mar 2017 13:51:07 -0700 |
| +Subject: [PATCH 10/10] [build] Undefined symbol in intrinsic on clang. |
| + |
| +SQLite implements sqlite3MulInt64() using __builtin_mul_overflow() for |
| +appropriate versions of GCC or clang. But the Chromium clang package |
| +doesn't seem to provide the necessary library for Android or Linux i386. |
| + |
| +BUG=701524 |
| +--- |
| + third_party/sqlite/src/src/util.c | 8 +++++++- |
| + 1 file changed, 7 insertions(+), 1 deletion(-) |
| + |
| +diff --git a/third_party/sqlite/src/src/util.c b/third_party/sqlite/src/src/util.c |
| +index c6d2bae3a7b4..0a76ddec683d 100644 |
| +--- a/third_party/sqlite/src/src/util.c |
| ++++ b/third_party/sqlite/src/src/util.c |
| +@@ -1310,7 +1310,13 @@ int sqlite3SubInt64(i64 *pA, i64 iB){ |
| + #endif |
| + } |
| + int sqlite3MulInt64(i64 *pA, i64 iB){ |
| +-#if GCC_VERSION>=5004000 || CLANG_VERSION>=4000000 |
| ++/* TODO(shess): Chromium Android clang generates a link error: |
| ++** undefined reference to '__mulodi4' |
| ++** UPDATE(shess): Also, apparently, 32-bit Linux clang. |
| ++*/ |
| ++#if GCC_VERSION>=5004000 || \ |
| ++ (CLANG_VERSION>=4000000 && !defined(__ANDROID__) && \ |
| ++ (!defined(__linux__) || !defined(__i386__))) |
|
Scott Hess - ex-Googler
2017/03/20 19:35:30
Apologies, I forgot to upload the unpatched versio
|
| + return __builtin_mul_overflow(*pA, iB, pA); |
| + #else |
| + i64 iA = *pA; |
| +-- |
| +2.11.0 |
| + |