From 2711cada39c0b5f455de5728f29c570ea6fcde5a Mon Sep 17 00:00:00 2001 From: Fedor Date: Thu, 12 Mar 2020 20:43:14 +0300 Subject: [PATCH] Unfold sqlite3 from nss. --- .../basilisk/installer/package-manifest.in | 2 -- application/palemoon/confvars.sh | 5 ---- .../palemoon/installer/package-manifest.in | 2 -- config/external/moz.build | 6 ++--- config/external/nss/Makefile.in | 6 +---- config/external/nss/moz.build | 3 ++- config/external/nss/nss.symbols | 1 - config/external/sqlite/moz.build | 18 ------------- db/sqlite3/src/moz.build | 26 ++++++++----------- dom/system/OSFileConstants.cpp | 15 ++--------- moz.build | 3 +++ 11 files changed, 21 insertions(+), 66 deletions(-) delete mode 100644 config/external/sqlite/moz.build diff --git a/application/basilisk/installer/package-manifest.in b/application/basilisk/installer/package-manifest.in index 576c10065..11212fa3d 100644 --- a/application/basilisk/installer/package-manifest.in +++ b/application/basilisk/installer/package-manifest.in @@ -125,10 +125,8 @@ #endif @RESPATH@/platform.ini #ifndef MOZ_SYSTEM_SQLITE -#ifndef MOZ_FOLD_LIBS @BINPATH@/@DLL_PREFIX@mozsqlite3@DLL_SUFFIX@ #endif -#endif @BINPATH@/@DLL_PREFIX@lgpllibs@DLL_SUFFIX@ #ifdef MOZ_FFVPX @BINPATH@/@DLL_PREFIX@mozavutil@DLL_SUFFIX@ diff --git a/application/palemoon/confvars.sh b/application/palemoon/confvars.sh index 132d33648..169cf8af6 100644 --- a/application/palemoon/confvars.sh +++ b/application/palemoon/confvars.sh @@ -87,11 +87,6 @@ MOZ_CHROME_FILE_FORMAT=omni # Set the default top-level extensions MOZ_EXTENSIONS_DEFAULT=" gio" -# Fold Libs -if test "$OS_TARGET" = "WINNT" -o "$OS_TARGET" = "Darwin"; then - MOZ_FOLD_LIBS=1 -fi - # Include bundled fonts if test "$OS_ARCH" = "WINNT" -o \ "$OS_ARCH" = "Linux"; then diff --git a/application/palemoon/installer/package-manifest.in b/application/palemoon/installer/package-manifest.in index 7daf511fb..7b3c378d9 100644 --- a/application/palemoon/installer/package-manifest.in +++ b/application/palemoon/installer/package-manifest.in @@ -126,10 +126,8 @@ #endif @RESPATH@/platform.ini #ifndef MOZ_SYSTEM_SQLITE -#ifndef MOZ_FOLD_LIBS @BINPATH@/@DLL_PREFIX@mozsqlite3@DLL_SUFFIX@ #endif -#endif @BINPATH@/@DLL_PREFIX@lgpllibs@DLL_SUFFIX@ #ifdef MOZ_FFVPX @BINPATH@/@DLL_PREFIX@mozavutil@DLL_SUFFIX@ diff --git a/config/external/moz.build b/config/external/moz.build index 321ca3a5b..f4013c18a 100644 --- a/config/external/moz.build +++ b/config/external/moz.build @@ -6,10 +6,8 @@ external_dirs = [] -DIRS += [ - 'lgpllibs', - 'sqlite', -] +DIRS += ['lgpllibs'] + if not CONFIG['MOZ_SYSTEM_JPEG']: external_dirs += ['media/libjpeg'] diff --git a/config/external/nss/Makefile.in b/config/external/nss/Makefile.in index ddf956040..7289e57f4 100644 --- a/config/external/nss/Makefile.in +++ b/config/external/nss/Makefile.in @@ -119,12 +119,8 @@ DEFAULT_GMAKE_FLAGS += NSS_ENABLE_TLS_1_3=1 ifeq ($(OS_ARCH)_$(GNU_CC),WINNT_1) DEFAULT_GMAKE_FLAGS += OS_DLLFLAGS='-static-libgcc' NSPR31_LIB_PREFIX=lib endif -ifdef MOZ_FOLD_LIBS -DEFAULT_GMAKE_FLAGS += SQLITE_LIB_NAME=nss3 -else DEFAULT_GMAKE_FLAGS += SQLITE_LIB_NAME=mozsqlite3 -DEFAULT_GMAKE_FLAGS += SQLITE_LIB_DIR=$(ABS_DIST)/../config/external/sqlite -endif # MOZ_FOLD_LIBS +DEFAULT_GMAKE_FLAGS += SQLITE_LIB_DIR=$(ABS_DIST)/../db/sqlite3/src DEFAULT_GMAKE_FLAGS += SQLITE_INCLUDE_DIR=$(ABS_DIST)/include ifdef NSS_DISABLE_DBM DEFAULT_GMAKE_FLAGS += NSS_DISABLE_DBM=1 diff --git a/config/external/nss/moz.build b/config/external/nss/moz.build index dbf19ff50..bf94d7648 100644 --- a/config/external/nss/moz.build +++ b/config/external/nss/moz.build @@ -29,9 +29,10 @@ else: '/security/nss/lib/smime/smime3', '/security/nss/lib/ssl/ssl3', '/security/nss/lib/util/nssutil3', - 'sqlite', ] +USE_LIBS += ['sqlite'] + # XXX: We should fix these warnings. ALLOW_COMPILER_WARNINGS = True diff --git a/config/external/nss/nss.symbols b/config/external/nss/nss.symbols index c46f86dea..705af4a94 100644 --- a/config/external/nss/nss.symbols +++ b/config/external/nss/nss.symbols @@ -13,7 +13,6 @@ PR_* PL_* #endif -#include ../../../db/sqlite3/src/sqlite.symbols ATOB_AsciiToData ATOB_AsciiToData_Util ATOB_ConvertAsciiToItem diff --git a/config/external/sqlite/moz.build b/config/external/sqlite/moz.build deleted file mode 100644 index 31f8e3438..000000000 --- a/config/external/sqlite/moz.build +++ /dev/null @@ -1,18 +0,0 @@ -# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*- -# vim: set filetype=python: -# This Source Code Form is subject to the terms of the Mozilla Public -# License, v. 2.0. If a copy of the MPL was not distributed with this -# file, You can obtain one at http://mozilla.org/MPL/2.0/. - -DIRS += ['../../../db/sqlite3/src'] -if CONFIG['MOZ_FOLD_LIBS']: - Library('sqlite') - # When folding libraries, sqlite is actually in the nss library. - USE_LIBS += [ - 'nss', - ] -else: - SharedLibrary('sqlite') - SHARED_LIBRARY_NAME = 'mozsqlite3' - - SYMBOLS_FILE = '/db/sqlite3/src/sqlite.symbols' diff --git a/db/sqlite3/src/moz.build b/db/sqlite3/src/moz.build index 1c26db9c4..70a5f456a 100644 --- a/db/sqlite3/src/moz.build +++ b/db/sqlite3/src/moz.build @@ -3,25 +3,18 @@ # This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. -NO_VISIBILITY_FLAGS = True -EXPORTS += [ - 'sqlite3.h', -] +NO_VISIBILITY_FLAGS = True # We allow warnings for third-party code that can be updated from upstream. ALLOW_COMPILER_WARNINGS = True -if CONFIG['MOZ_FOLD_LIBS']: - # When folding libraries, sqlite is actually in the nss library. - FINAL_LIBRARY = 'nss' -else: - # The final library is in config/external/sqlite - FINAL_LIBRARY = 'sqlite' +GeckoSharedLibrary('sqlite', linkage=None, mozglue='library') +SHARED_LIBRARY_NAME = 'mozsqlite3' +SYMBOLS_FILE = 'sqlite.symbols' -SOURCES += [ - 'sqlite3.c', -] +EXPORTS += ['sqlite3.h'] +SOURCES += ['sqlite3.c'] # -DSQLITE_SECURE_DELETE=1 will cause SQLITE to 0-fill delete data so we # don't have to vacuum to make sure the data is not visible in the file. @@ -34,8 +27,11 @@ SOURCES += [ # hidden preference. If that preference is missing or invalid then this value # will be used. # Note: Be sure to update the configure.in checks when these change! -for var in ('SQLITE_SECURE_DELETE', 'SQLITE_THREADSAFE', 'SQLITE_CORE', - 'SQLITE_ENABLE_FTS3', 'SQLITE_ENABLE_UNLOCK_NOTIFY', +for var in ('SQLITE_SECURE_DELETE', + 'SQLITE_THREADSAFE', + 'SQLITE_CORE', + 'SQLITE_ENABLE_FTS3', + 'SQLITE_ENABLE_UNLOCK_NOTIFY', 'SQLITE_ENABLE_DBSTAT_VTAB'): DEFINES[var] = 1 diff --git a/dom/system/OSFileConstants.cpp b/dom/system/OSFileConstants.cpp index 0a3b1ccc5..89618626b 100644 --- a/dom/system/OSFileConstants.cpp +++ b/dom/system/OSFileConstants.cpp @@ -1048,22 +1048,11 @@ bool DefineOSFileConstants(JSContext *cx, JS::Handle global) } #endif // defined(XP_MACOSX) - // sqlite3 is linked from different places depending on the platform + // sqlite3 is always a shared lib nsAutoString libsqlite3; -#if defined(ANDROID) - // On Android, we use the system's libsqlite3 libsqlite3.AppendLiteral(DLL_PREFIX); - libsqlite3.AppendLiteral("sqlite3"); + libsqlite3.AppendLiteral("mozsqlite3"); libsqlite3.AppendLiteral(DLL_SUFFIX); -#elif defined(XP_WIN) - // On Windows, for some reason, this is part of nss3.dll - libsqlite3.AppendLiteral(DLL_PREFIX); - libsqlite3.AppendLiteral("nss3"); - libsqlite3.AppendLiteral(DLL_SUFFIX); -#else - // On other platforms, we link sqlite3 into libxul - libsqlite3 = libxul; -#endif // defined(ANDROID) || defined(XP_WIN) if (!SetStringProperty(cx, objPath, "libsqlite3", libsqlite3)) { return false; diff --git a/moz.build b/moz.build index 401f938e2..21c2d5641 100644 --- a/moz.build +++ b/moz.build @@ -69,6 +69,9 @@ if not CONFIG['MOZ_DISABLE_PLATFORM']: if CONFIG['COMPILE_ENVIRONMENT']: if not CONFIG['JS_STANDALONE']: + # Hopefully build sqlite before nss + DIRS += ['db/sqlite3/src'] + DIRS += [ 'config/external', 'config/external/nss',