Merge "[fuchsia] Add Fuchsia support to SQLite." am: ee7bc7bbb7
am: 117a5461e7

Change-Id: I94bbc2d7404061fcc5f5f4ecd6c9a7934220d3ec
diff --git a/dist/Android.bp b/dist/Android.bp
index 54cd389..43304a0 100644
--- a/dist/Android.bp
+++ b/dist/Android.bp
@@ -61,6 +61,13 @@
                 "-DHAVE_MALLOC_USABLE_SIZE",
             ],
         },
+        fuchsia: {
+            cflags: [
+                "-Dfdatasync=fdatasync",
+                "-DHAVE_MALLOC_H=1",
+                "-DHAVE_MALLOC_USABLE_SIZE",
+            ],
+        },
     },
 }
 
@@ -87,6 +94,18 @@
             // include android specific methods
             whole_static_libs: ["libsqlite3_android"],
         },
+        fuchsia: {
+            shared_libs: [
+                "liblog",
+                "libutils",
+                "libicuuc",
+                "libicui18n",
+            ],
+            cflags: ["-DSQLITE_ENABLE_ICU"],
+
+            // include android specific methods
+            whole_static_libs: ["libsqlite3_android"],
+        },
         host: {
             static_libs: [
                 "liblog",
@@ -134,6 +153,18 @@
                 "libutils",
             ],
         },
+        fuchsia: {
+            shared_libs: [
+                "libsqlite",
+                "libicuuc",
+                "libicui18n",
+                "liblog",
+                "libutils",
+            ],
+            static_libs: [
+                "libicuandroid_utils",
+            ],
+        },
         host: {
             cflags: ["-DNO_ANDROID_FUNCS=1"],
             static_libs: [
diff --git a/dist/Android.patch b/dist/Android.patch
index 307a832..80873e2 100644
--- a/dist/Android.patch
+++ b/dist/Android.patch
@@ -1,5 +1,5 @@
---- orig/shell.c	2018-04-17 11:53:05.520972146 +0100
-+++ shell.c	2019-03-14 19:26:19.523122555 +0000
+--- orig/shell.c	2018-06-15 18:37:50.651936274 -0700
++++ shell.c	2019-03-18 16:45:23.691937057 -0700
 @@ -87,6 +87,12 @@
  #endif
  #include <ctype.h>
@@ -37,8 +37,8 @@
      if( p->openMode==SHELL_OPEN_ZIPFILE ){
        char *zSql = sqlite3_mprintf(
           "CREATE VIRTUAL TABLE zip USING zipfile(%Q);", p->zDbFilename);
---- orig/sqlite3.c	2019-03-11 19:52:44.237549639 +0000
-+++ sqlite3.c	2019-03-11 19:52:44.293549396 +0000
+--- orig/sqlite3.c	2019-03-18 16:45:23.687937080 -0700
++++ sqlite3.c	2019-03-18 16:45:24.723931232 -0700
 @@ -30672,6 +30672,10 @@
  # include <sys/mount.h>
  #endif
@@ -104,7 +104,18 @@
        goto shm_open_err;
      }
  
-@@ -118054,7 +118070,7 @@
+@@ -38434,6 +38450,10 @@
+     UNIXVFS("unix",          autolockIoFinder ),
+ #elif OS_VXWORKS
+     UNIXVFS("unix",          vxworksIoFinder ),
++#elif __Fuchsia__
++    /* None of the system calls for other exclusion methods are currently
++    ** implemented on Fuchsia, so use simple dot-file locking for now. */
++    UNIXVFS("unix",          dotlockIoFinder ),
+ #else
+     UNIXVFS("unix",          posixIoFinder ),
+ #endif
+@@ -118054,7 +118074,7 @@
    }
    if( pDb->pSchema->file_format>SQLITE_MAX_FILE_FORMAT ){
      sqlite3SetString(pzErrMsg, db, "unsupported file format");
@@ -113,7 +124,7 @@
      goto initone_error_out;
    }
  
-@@ -152769,13 +152785,25 @@
+@@ -152769,13 +152789,25 @@
    ** module with sqlite.
    */
    if( SQLITE_OK==rc 
diff --git a/dist/sqlite3.c b/dist/sqlite3.c
index 18b8246..1931481 100644
--- a/dist/sqlite3.c
+++ b/dist/sqlite3.c
@@ -38450,6 +38450,10 @@
     UNIXVFS("unix",          autolockIoFinder ),
 #elif OS_VXWORKS
     UNIXVFS("unix",          vxworksIoFinder ),
+#elif __Fuchsia__
+    /* None of the system calls for other exclusion methods are currently
+    ** implemented on Fuchsia, so use simple dot-file locking for now. */
+    UNIXVFS("unix",          dotlockIoFinder ),
 #else
     UNIXVFS("unix",          posixIoFinder ),
 #endif