aboutsummaryrefslogtreecommitdiff
path: root/repos/clang/firefox/sqlite-ppc.patch
diff options
context:
space:
mode:
Diffstat (limited to 'repos/clang/firefox/sqlite-ppc.patch')
-rw-r--r--repos/clang/firefox/sqlite-ppc.patch46
1 files changed, 46 insertions, 0 deletions
diff --git a/repos/clang/firefox/sqlite-ppc.patch b/repos/clang/firefox/sqlite-ppc.patch
new file mode 100644
index 00000000..6314b729
--- /dev/null
+++ b/repos/clang/firefox/sqlite-ppc.patch
@@ -0,0 +1,46 @@
+From f6546e3e0cadd98764ad85f80e771dca043cb77d Mon Sep 17 00:00:00 2001
+From: q66 <q66@chimera-linux.org>
+Date: Fri, 23 Sep 2022 02:38:29 +0200
+Subject: [PATCH] fix sqlite3 on ppc with clang
+
+The __ppc__ macro is always defined on clang but not gcc, which
+results in sqlite mistakenly thinking that ppc64le with clang
+is big endian.
+
+Also disable some inline assembly stuff on ppc that is never used
+with gcc and probably was never tested with modern machines.
+---
+ third_party/sqlite3/src/sqlite3.c | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/third_party/sqlite3/src/sqlite3.c b/third_party/sqlite3/src/sqlite3.c
+index dd3b5c5757..73398934f0 100644
+--- a/third_party/sqlite3/src/sqlite3.c
++++ b/third_party/sqlite3/src/sqlite3.c
+@@ -14875,7 +14875,7 @@
+ # elif defined(i386) || defined(__i386__) || defined(_M_IX86) || \
+ defined(__x86_64) || defined(__x86_64__) || defined(_M_X64) || \
+ defined(_M_AMD64) || defined(_M_ARM) || defined(__x86) || \
+- defined(__ARMEL__) || defined(__AARCH64EL__) || defined(_M_ARM64)
++ defined(__ARMEL__) || defined(__AARCH64EL__) || defined(_M_ARM64) || defined(__LITTLE_ENDIAN__)
+ # define SQLITE_BYTEORDER 1234
+ # elif defined(sparc) || defined(__ARMEB__) || defined(__AARCH64EB__)
+ # define SQLITE_BYTEORDER 4321
+@@ -35670,7 +35670,7 @@ SQLITE_PRIVATE int sqlite3VListNameToNum(VList *pIn, const char *zName, int nNam
+ return (sqlite_uint64)hi << 32 | lo;
+ }
+
+-#elif !defined(__STRICT_ANSI__) && (defined(__GNUC__) && defined(__ppc__))
++#elif 0
+
+ __inline__ sqlite_uint64 sqlite3Hwtime(void){
+ unsigned long long retval;
+@@ -207003,7 +207003,7 @@
+ # elif defined(i386) || defined(__i386__) || defined(_M_IX86) || \
+ defined(__x86_64) || defined(__x86_64__) || defined(_M_X64) || \
+ defined(_M_AMD64) || defined(_M_ARM) || defined(__x86) || \
+- defined(__ARMEL__) || defined(__AARCH64EL__) || defined(_M_ARM64)
++ defined(__ARMEL__) || defined(__AARCH64EL__) || defined(_M_ARM64) || defined(__LITTLE_ENDIAN__)
+ # define SQLITE_BYTEORDER 1234
+ # elif defined(sparc) || defined(__ARMEB__) || defined(__AARCH64EB__)
+ # define SQLITE_BYTEORDER 4321