RepositoryExternal.mk                                    |   13 
 bin/lo-all-static-libs                                   |    1 
 config_host.mk.in                                        |    2 
 configure.ac                                             |   36 +-
 connectivity/source/drivers/hsqldb/HDriver.cxx           |   31 ++
 download.lst                                             |   58 ++--
 external/curl/ExternalPackage_curl.mk                    |    2 
 external/curl/ExternalProject_curl.mk                    |    5 
 external/curl/UnpackedTarball_curl.mk                    |    9 
 external/curl/asan-poison-nsspem.patch.0                 |   11 
 external/curl/clang-cl.patch.0                           |    2 
 external/curl/configurable-z-option.patch.0              |   20 +
 external/curl/curl-7.26.0_win-proxy.patch                |  121 --------
 external/curl/curl-msvc-disable-protocols.patch.1        |    4 
 external/curl/curl-msvc-zlib.patch.1                     |   16 +
 external/curl/curl-msvc.patch.1                          |    4 
 external/curl/curl-nss.patch.1                           |   15 -
 external/curl/zlib.patch.0                               |   20 -
 external/expat/expat-winapi.patch                        |   13 
 external/hsqldb/UnpackedTarball_hsqldb.mk                |    1 
 external/hsqldb/patches/disable-dump-script.patch        |   14 
 external/libjpeg-turbo/ExternalProject_libjpeg-turbo.mk  |   43 ---
 external/libjpeg-turbo/Module_libjpeg-turbo.mk           |    2 
 external/libjpeg-turbo/StaticLibrary_libjpeg-turbo.mk    |  214 +++++++++++++++
 external/libjpeg-turbo/UnpackedTarball_libjpeg-turbo.mk  |   13 
 external/libjpeg-turbo/jconfig.h                         |   86 ++++++
 external/libjpeg-turbo/jconfigint.h                      |   51 +++
 external/libjpeg-turbo/jpeg-turbo.build.patch.1          |   58 ----
 external/libjpeg-turbo/jpeg-turbo.win_build.patch.1      |   54 ---
 external/libjpeg-turbo/ubsan.patch                       |   39 --
 external/libxml2/ExternalPackage_libxml2.mk              |    2 
 external/libxml2/UnpackedTarball_libxml2.mk              |    3 
 external/libxml2/libxml2-android.patch                   |    6 
 external/libxml2/libxml2-config.patch.1                  |   43 ---
 external/libxml2/xml2-config.in                          |   28 +
 external/nss/UnpackedTarball_nss.mk                      |    3 
 external/nss/asan.patch.1                                |    6 
 external/nss/clang-cl.patch.0                            |   23 +
 external/nss/macos-dlopen.patch.0                        |    2 
 external/nss/nss-3.13.5-zlib-werror.patch                |   13 
 external/nss/nss-android.patch.1                         |    8 
 external/nss/nss-bz1646594.patch.1                       |    2 
 external/nss/nss-ios.patch                               |   44 +--
 external/nss/nss-restore-manual-pre-dependencies.patch.1 |    2 
 external/nss/nss-win32-make.patch.1                      |    4 
 external/nss/nss.aix.patch                               |   10 
 external/nss/nss.bzmozilla1238154.patch                  |    2 
 external/nss/nss.cygwin64.in32bit.patch                  |    2 
 external/nss/nss.nowerror.patch                          |    2 
 external/nss/nss.patch                                   |   22 -
 external/nss/nss.utf8bom.patch.1                         |    4 
 external/nss/nss.vs2015.patch                            |    2 
 external/nss/nss.vs2015.pdb.patch                        |    2 
 external/nss/nss.windows.patch                           |    6 
 external/nss/nss_macosx.patch                            |   12 
 external/nss/ubsan.patch.0                               |   11 
 external/openssl/UnpackedTarball_openssl.mk              |    2 
 external/openssl/configurable-z-option.patch.0           |   34 ++
 external/openssl/openssl-no-_umul128-on-aarch64.patch.1  |   58 ++++
 external/openssl/openssl-no-multilib.patch.0             |    4 
 external/openssl/opensslios.patch                        |   12 
 formula/source/core/api/token.cxx                        |   13 
 jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx      |   16 -
 jvmfwk/source/framework.cxx                              |    8 
 jvmfwk/source/fwkbase.cxx                                |    6 
 sc/source/core/inc/interpre.hxx                          |   12 
 sc/source/core/tool/interpr1.cxx                         |    4 
 sc/source/core/tool/interpr3.cxx                         |    4 
 sc/source/core/tool/interpr4.cxx                         |   10 
 sc/source/core/tool/interpr7.cxx                         |    2 
 solenv/bin/concat-deps.c                                 |    5 
 solenv/gbuild/LinkTarget.mk                              |   77 +++++
 solenv/gbuild/StaticLibrary.mk                           |    2 
 solenv/gbuild/TargetLocations.mk                         |    3 
 solenv/gbuild/platform/android.mk                        |    1 
 solenv/gbuild/platform/com_MSC_class.mk                  |    1 
 solenv/gbuild/platform/iOS.mk                            |    2 
 solenv/gbuild/platform/macosx.mk                         |    2 
 solenv/gbuild/platform/solaris.mk                        |    2 
 solenv/gbuild/platform/unxgcc.mk                         |    2 
 test/source/xmltesttools.cxx                             |    2 
 ucb/source/ucp/ftp/ftpcontent.cxx                        |   15 +
 unoxml/source/xpath/xpathobject.cxx                      |    2 
 83 files changed, 945 insertions(+), 578 deletions(-)

New commits:
commit e04b28a58922e7fef93ffe938626c8260b067298
Author:     Andras Timar <andras.ti...@collabora.com>
AuthorDate: Sun Mar 26 17:05:03 2023 +0200
Commit:     Andras Timar <andras.ti...@collabora.com>
CommitDate: Sun Mar 26 17:05:03 2023 +0200

    Bump version to 7.1.8.1.M4
    
    Change-Id: Ieb57d1bf8350cf8f8992cc7a4450c813704e94d7

diff --git a/configure.ac b/configure.ac
index c52fc3a62804..e9cc927a1a26 100644
--- a/configure.ac
+++ b/configure.ac
@@ -9,7 +9,7 @@ dnl in order to create a configure script.
 # several non-alphanumeric characters, those are split off and used only for 
the
 # ABOUTBOXPRODUCTVERSIONSUFFIX in openoffice.lst. Why that is necessary, no 
idea.
 
-AC_INIT([LibreOffice],[7.1.8.1.M3],[],[],[http://documentfoundation.org/])
+AC_INIT([LibreOffice],[7.1.8.1.M4],[],[],[http://documentfoundation.org/])
 
 dnl libnumbertext needs autoconf 2.68, but that can pick up autoconf268 just 
fine if it is installed
 dnl whereas aclocal (as run by autogen.sh) insists on using autoconf and fails 
hard
commit 3ed8cdc9a9b3344ac0ed36b15ce060e5ab66e877
Author:     Michael Stahl <michael.st...@allotropia.de>
AuthorDate: Tue Mar 21 10:46:46 2023 +0100
Commit:     Andras Timar <andras.ti...@collabora.com>
CommitDate: Sun Mar 26 17:03:59 2023 +0200

    curl: upgrade to release 8.0.1
    
    Apparently 8.0.0 had a serious regression.
    
    Change-Id: Icc761f5e5e01b5d9bebecc13f7cba608f5834f54
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149212
    Tested-by: Andras Timar <andras.ti...@collabora.com>
    Reviewed-by: Andras Timar <andras.ti...@collabora.com>

diff --git a/download.lst b/download.lst
index 032997018ccf..1bc9b4b7f4e1 100644
--- a/download.lst
+++ b/download.lst
@@ -39,8 +39,8 @@ export CPPUNIT_SHA256SUM := 
89c5c6665337f56fd2db36bc3805a5619709d51fb136e5193707
 export CPPUNIT_TARBALL := cppunit-1.15.1.tar.gz
 export CT2N_SHA256SUM := 
71b238efd2734be9800af07566daea8d6685aeed28db5eb5fa0e6453f4d85de3
 export CT2N_TARBALL := 
1f467e5bb703f12cbbb09d5cf67ecf4a-converttexttonumber-1-5-0.oxt
-export CURL_SHA256SUM := 
759690f9a375a720f8bcce9f953897b0d93f31eed9649b74f846d54bbf63bbcc
-export CURL_TARBALL := curl-8.0.0.tar.xz
+export CURL_SHA256SUM := 
0a381cd82f4d00a9a334438b8ca239afea5bfefcfa9a1025f2bf118e79e0b5f0
+export CURL_TARBALL := curl-8.0.1.tar.xz
 export EBOOK_SHA256SUM := 
7e8d8ff34f27831aca3bc6f9cc532c2f90d2057c778963b884ff3d1e34dfe1f9
 export EBOOK_TARBALL := libe-book-0.1.3.tar.xz
 export EPOXY_SHA256SUM := 
002958c5528321edd53440235d3c44e71b5b1e09b9177e8daf677450b6c4433d
commit 031fec0e0ff8dc9b065c2357da6029d016d24575
Author:     Michael Stahl <michael.st...@allotropia.de>
AuthorDate: Mon Mar 20 11:52:22 2023 +0100
Commit:     Andras Timar <andras.ti...@collabora.com>
CommitDate: Sun Mar 26 17:03:59 2023 +0200

    curl: upgrade to release 8.0.0
    
    Fixes CVE-2023-27535.
    
    Also hopefully fixes excessive storage consumption during build:
    o build: drop the use of XC_AMEND_DISTCLEAN [62]
    
    Change-Id: I8792e95bc7634ee496488e80fec5a1310b24a31c
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149153
    Tested-by: Jenkins
    Reviewed-by: Michael Stahl <michael.st...@allotropia.de>
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149211
    Tested-by: Andras Timar <andras.ti...@collabora.com>
    Reviewed-by: Andras Timar <andras.ti...@collabora.com>

diff --git a/download.lst b/download.lst
index 504c5d862f2a..032997018ccf 100644
--- a/download.lst
+++ b/download.lst
@@ -39,8 +39,8 @@ export CPPUNIT_SHA256SUM := 
89c5c6665337f56fd2db36bc3805a5619709d51fb136e5193707
 export CPPUNIT_TARBALL := cppunit-1.15.1.tar.gz
 export CT2N_SHA256SUM := 
71b238efd2734be9800af07566daea8d6685aeed28db5eb5fa0e6453f4d85de3
 export CT2N_TARBALL := 
1f467e5bb703f12cbbb09d5cf67ecf4a-converttexttonumber-1-5-0.oxt
-export CURL_SHA256SUM := 
1dae31b2a7c1fe269de99c0c31bb488346aab3459b5ffca909d6938249ae415f
-export CURL_TARBALL := curl-7.88.1.tar.xz
+export CURL_SHA256SUM := 
759690f9a375a720f8bcce9f953897b0d93f31eed9649b74f846d54bbf63bbcc
+export CURL_TARBALL := curl-8.0.0.tar.xz
 export EBOOK_SHA256SUM := 
7e8d8ff34f27831aca3bc6f9cc532c2f90d2057c778963b884ff3d1e34dfe1f9
 export EBOOK_TARBALL := libe-book-0.1.3.tar.xz
 export EPOXY_SHA256SUM := 
002958c5528321edd53440235d3c44e71b5b1e09b9177e8daf677450b6c4433d
commit e066d1a9ac9ddf7a2a82452365a6cb43aa4edd0b
Author:     Stephan Bergmann <sberg...@redhat.com>
AuthorDate: Mon Feb 21 11:55:21 2022 +0100
Commit:     Andras Timar <andras.ti...@collabora.com>
CommitDate: Sun Mar 26 17:03:59 2023 +0200

    Avoid unnecessary empty -Djava.class.path=
    
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130242
    Tested-by: Jenkins
    Reviewed-by: Stephan Bergmann <sberg...@redhat.com>
    (cherry picked from commit 5e8f64e50f97d39e83a3358697be14db03566878)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130265
    Reviewed-by: Caolán McNamara <caol...@redhat.com>
    (cherry picked from commit 04bb6f736f92b93497bed28b7420fac97753f95e)
    
    Change-Id: Idcfe7321077b60381c0273910b1faeb444ef1fd8

diff --git a/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx 
b/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx
index f47b0a3ee4fd..843f6d19ccec 100644
--- a/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx
+++ b/jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx
@@ -713,17 +713,22 @@ javaPluginError jfw_plugin_startJavaVirtualMachine(
     // all versions below 1.5.1
     options.emplace_back("abort", reinterpret_cast<void*>(abort_handler));
     bool hasStackSize = false;
+#ifdef UNX
+    // Until java 1.5 we need to put a plugin.jar or javaplugin.jar (<1.4.2)
+    // in the class path in order to have applet support:
+    OString sAddPath = getPluginJarPath(pInfo->sVendor, 
pInfo->sLocation,pInfo->sVersion);
+#endif
     for (int i = 0; i < cOptions; i++)
     {
         OString opt(arOptions[i].optionString);
 #ifdef UNX
-        // Until java 1.5 we need to put a plugin.jar or javaplugin.jar 
(<1.4.2)
-        // in the class path in order to have applet support:
         if (opt.startsWith("-Djava.class.path="))
         {
-            OString sAddPath = getPluginJarPath(pInfo->sVendor, 
pInfo->sLocation,pInfo->sVersion);
             if (!sAddPath.isEmpty())
+            {
                 opt += OStringChar(SAL_PATHSEPARATOR) + sAddPath;
+                sAddPath.clear();
+            }
         }
 #endif
         if (opt == "-Xint") {
@@ -768,6 +773,11 @@ javaPluginError jfw_plugin_startJavaVirtualMachine(
         }
 #endif
     }
+#ifdef UNX
+    if (!sAddPath.isEmpty()) {
+        options.emplace_back("-Djava.class.path=" + sAddPath, nullptr);
+    }
+#endif
 
     std::unique_ptr<JavaVMOption[]> sarOptions(new 
JavaVMOption[options.size()]);
     for (std::vector<Option>::size_type i = 0; i != options.size(); ++i) {
diff --git a/jvmfwk/source/framework.cxx b/jvmfwk/source/framework.cxx
index 5a7cef449b78..478b42b759f4 100644
--- a/jvmfwk/source/framework.cxx
+++ b/jvmfwk/source/framework.cxx
@@ -189,8 +189,12 @@ javaFrameworkError jfw_startVM(
                 //In direct mode the options are specified by bootstrap 
variables
                 //of the form UNO_JAVA_JFW_PARAMETER_1 .. 
UNO_JAVA_JFW_PARAMETER_n
                 vmParams = jfw::BootParams::getVMParameters();
-                sUserClassPath =
-                    "-Djava.class.path=" + jfw::BootParams::getClasspath();
+                auto const cp = jfw::BootParams::getClasspath();
+                if (!cp.isEmpty())
+                {
+                    sUserClassPath =
+                        "-Djava.class.path=" + cp;
+                }
             }
             else
                 OSL_ASSERT(false);
diff --git a/jvmfwk/source/fwkbase.cxx b/jvmfwk/source/fwkbase.cxx
index df84d7c77f9e..2c3f1649be0c 100644
--- a/jvmfwk/source/fwkbase.cxx
+++ b/jvmfwk/source/fwkbase.cxx
@@ -456,8 +456,10 @@ OString makeClassPathOption(OUString const & 
sUserClassPath)
         sBufCP.append(sAppCP);
     }
 
-    sPaths = OUStringToOString(
-        sBufCP.makeStringAndClear(), osl_getThreadTextEncoding());
+    sPaths = OUStringToOString(sBufCP.makeStringAndClear(), 
osl_getThreadTextEncoding());
+    if (sPaths.isEmpty()) {
+        return "";
+    }
 
     OString sOptionClassPath = "-Djava.class.path=" + sPaths;
     return sOptionClassPath;
commit a28e17b58a010f30564f8329436b55380cfbbf29
Author:     Michael Stahl <michael.st...@allotropia.de>
AuthorDate: Wed Oct 26 14:58:09 2022 +0200
Commit:     Andras Timar <andras.ti...@collabora.com>
CommitDate: Sun Mar 26 17:03:59 2023 +0200

    ucb: FTP UCP: report CURLE_URL_MALFORMAT as IllegalIdentifierException
    
    With curl 7.86, the test JunitTest_ucb_complex starts to fail:
    
    .ftp://noname:nopasswd@*nohost.invalid
    now executing open
    com.sun.star.ucb.InteractiveAugmentedIOException:
            at com.sun.proxy.$Proxy15.execute(Unknown Source)
            at complex.ucb.UCB.executeCommand(UCB.java:63)
            at complex.ucb.UCB.checkWrongFtpConnection(UCB.java:119)
    
    because curl_easy_perform() now returns CURLE_URL_MALFORMAT where
    previously it was CURLE_COULDNT_RESOLVE_HOST.
    
    Map this to an exception the test expects.
    
    Change-Id: Ifdb672946726ddb4cb4d9426b7e70eefac63f040
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141877
    Tested-by: Jenkins
    Reviewed-by: Michael Stahl <michael.st...@allotropia.de>
    (cherry picked from commit 022e476af44c0dfc97403dc0f3a3b63e731903e6)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141844
    Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org>
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148678
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com>
    Reviewed-by: Andras Timar <andras.ti...@collabora.com>

diff --git a/ucb/source/ucp/ftp/ftpcontent.cxx 
b/ucb/source/ucp/ftp/ftpcontent.cxx
index e655c6cbe162..dc6284976dfb 100644
--- a/ucb/source/ucp/ftp/ftpcontent.cxx
+++ b/ucb/source/ucp/ftp/ftpcontent.cxx
@@ -62,6 +62,7 @@
 #include <com/sun/star/ucb/UnsupportedDataSinkException.hpp>
 #include <com/sun/star/ucb/OpenCommandArgument2.hpp>
 #include <com/sun/star/ucb/UnsupportedOpenModeException.hpp>
+#include <com/sun/star/ucb/IllegalIdentifierException.hpp>
 #include <com/sun/star/ucb/InteractiveNetworkConnectException.hpp>
 #include <com/sun/star/ucb/InteractiveNetworkResolveNameException.hpp>
 #include <com/sun/star/ucb/InteractiveIOException.hpp>
@@ -225,6 +226,7 @@ enum ACTION { NOACTION,
               THROWAUTHENTICATIONREQUEST,
               THROWACCESSDENIED,
               THROWINTERACTIVECONNECT,
+              THROWMALFORMED,
               THROWRESOLVENAME,
               THROWQUOTE,
               THROWNOFILE,
@@ -343,6 +345,15 @@ Any SAL_CALL FTPContent::execute( const Command& aCommand,
                         Environment);
                     break;
                 }
+            case THROWMALFORMED:
+                {
+                    IllegalIdentifierException ex;
+                    aRet <<= ex;
+                    ucbhelper::cancelCommandExecution(
+                        aRet,
+                        Environment);
+                    break;
+                }
             case THROWRESOLVENAME:
                 {
                     InteractiveNetworkResolveNameException excep;
@@ -537,6 +548,10 @@ Any SAL_CALL FTPContent::execute( const Command& aCommand,
         {
             if(e.code() == CURLE_COULDNT_CONNECT)
                 action = THROWINTERACTIVECONNECT;
+            else if (e.code() == CURLE_URL_MALFORMAT)
+            {
+                action = THROWMALFORMED;
+            }
             else if(e.code() == CURLE_COULDNT_RESOLVE_HOST )
                 action = THROWRESOLVENAME;
             else if(e.code() == CURLE_FTP_USER_PASSWORD_INCORRECT ||
commit 1e65bfb7c8df8a2f6bbaed927a61264d1ee07d76
Author:     Andras Timar <andras.ti...@collabora.com>
AuthorDate: Fri Mar 10 12:09:59 2023 +0100
Commit:     Andras Timar <andras.ti...@collabora.com>
CommitDate: Sun Mar 26 17:03:42 2023 +0200

    update 3rd party libs
    
    * curl 7.88.1
    * expat 2.5.0
    * libjpeg-turbo 2.1.2
    * libxml2 2.10.3
    * nss 3.88.1
    * openssl 1.1.1t
    * libpng 1.6.39
    * zlib 1.2.13
    
    Change-Id: I3ece36a221af44612519f964d580affa9004a0f9
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148612
    Tested-by: Andras Timar <andras.ti...@collabora.com>
    Reviewed-by: Andras Timar <andras.ti...@collabora.com>

diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk
index 15125ff10c60..c7af2664afaa 100644
--- a/RepositoryExternal.mk
+++ b/RepositoryExternal.mk
@@ -397,6 +397,10 @@ endif # SYSTEM_ZLIB
 ifneq ($(SYSTEM_LIBJPEG),)
 
 define gb_LinkTarget__use_libjpeg
+$(call gb_LinkTarget_set_include,$(1),\
+       $$(INCLUDE) \
+       $(LIBJPEG_CFLAGS) \
+)
 $(call gb_LinkTarget_add_libs,$(1),$(LIBJPEG_LIBS))
 $(call gb_LinkTarget_set_ldflags,$(1),\
        $$(filter-out -L/usr/lib/jvm%,$$(T_LDFLAGS)) \
@@ -410,16 +414,15 @@ else
 
 define gb_LinkTarget__use_libjpeg
 $(call gb_LinkTarget_set_include,$(1),\
-       $(LIBJPEG_CFLAGS) \
+       -I$(call gb_UnpackedTarball_get_dir,libjpeg-turbo) \
        $$(INCLUDE) \
 )
-$(call gb_LinkTarget_add_libs,$(1),$(LIBJPEG_LIBS))
-$(call gb_LinkTarget_use_external_project,$(1),libjpeg-turbo,full)
+$(call gb_LinkTarget_use_static_libraries,$(1),libjpeg-turbo)
 
 endef
 
 define gb_ExternalProject__use_libjpeg
-$(call gb_ExternalProject_use_external_project,$(1),libjpeg-turbo)
+$(call gb_ExternalProject_use_static_libraries,$(1),libjpeg-turbo)
 
 endef
 
@@ -2799,7 +2802,7 @@ $(call gb_LinkTarget_set_include,$(1),\
 
 ifeq ($(COM),MSC)
 $(call gb_LinkTarget_add_libs,$(1),\
-       $(call 
gb_UnpackedTarball_get_dir,curl)/builds/libcurl-vc12-$(gb_MSBUILD_PLATFORM)-$(gb_MSBUILD_CONFIG)-dll-ipv6-sspi-schannel/lib/libcurl$(if
 $(MSVC_USE_DEBUG_RUNTIME),_debug).lib \
+       $(call 
gb_UnpackedTarball_get_dir,curl)/builds/libcurl-vc12-$(gb_MSBUILD_PLATFORM)-$(gb_MSBUILD_CONFIG)-dll-zlib-static-ipv6-sspi-schannel/lib/libcurl$(if
 $(MSVC_USE_DEBUG_RUNTIME),_debug).lib \
 )
 else
 $(call gb_LinkTarget_add_libs,$(1),\
diff --git a/bin/lo-all-static-libs b/bin/lo-all-static-libs
index 455861da5a73..fbe6d7010624 100755
--- a/bin/lo-all-static-libs
+++ b/bin/lo-all-static-libs
@@ -111,7 +111,6 @@ echo $INSTDIR/$LIBO_LIB_FOLDER/lib*.a \
      $WORKDIR/LinkTarget/StaticLibrary/lib*.a \
      $oslibs \
      $WORKDIR/UnpackedTarball/icu/source/lib/*.a \
-     $WORKDIR/UnpackedTarball/libjpeg-turbo/.libs/*.a \
      $WORKDIR/UnpackedTarball/liblangtag/liblangtag/.libs/*.a \
      $WORKDIR/UnpackedTarball/lcms2/src/.libs/*.a \
      $WORKDIR/UnpackedTarball/libabw/src/lib/.libs/*.a \
diff --git a/config_host.mk.in b/config_host.mk.in
index fe40aae50387..692436c2775a 100644
--- a/config_host.mk.in
+++ b/config_host.mk.in
@@ -444,6 +444,7 @@ export MWAW_LIBS=$(gb_SPACE)@MWAW_LIBS@
 export MYTHES_CFLAGS=$(gb_SPACE)@MYTHES_CFLAGS@
 export MYTHES_LIBS=$(gb_SPACE)@MYTHES_LIBS@
 export NASM=@NASM@
+export NAFLAGS=@NAFLAGS@
 export NEON_CFLAGS=$(gb_SPACE)@NEON_CFLAGS@
 export NEON_LIBS=$(gb_SPACE)@NEON_LIBS@
 export NEON_VERSION=@NEON_VERSION@
@@ -537,6 +538,7 @@ export SERF_CFLAGS=$(gb_SPACE)@SERF_CFLAGS@
 export SERF_LIBS=$(gb_SPACE)@SERF_LIBS@
 export SHA256SUM=@SHA256SUM@
 export SHOWINCLUDES_PREFIX=@SHOWINCLUDES_PREFIX@
+export SIZEOF_SIZE_T=@SIZEOF_SIZE_T@
 export SOLARINC=@SOLARINC@
 export SORT=@SORT@
 export SPLIT_APP_MODULES=@SPLIT_APP_MODULES@
diff --git a/configure.ac b/configure.ac
index d426163e0a7f..c52fc3a62804 100644
--- a/configure.ac
+++ b/configure.ac
@@ -6668,12 +6668,14 @@ if test "$_os" != "WINNT"; then
     AC_CHECK_SIZEOF(long long)
     AC_CHECK_SIZEOF(double)
     AC_CHECK_SIZEOF(void*)
+    AC_CHECK_SIZEOF(size_t)
 
     SAL_TYPES_SIZEOFSHORT=$ac_cv_sizeof_short
     SAL_TYPES_SIZEOFINT=$ac_cv_sizeof_int
     SAL_TYPES_SIZEOFLONG=$ac_cv_sizeof_long
     SAL_TYPES_SIZEOFLONGLONG=$ac_cv_sizeof_long_long
     SAL_TYPES_SIZEOFPOINTER=$ac_cv_sizeof_voidp
+    SIZEOF_SIZE_T=$ac_cv_sizeof_size_t
 
     dnl Allow build without AC_CHECK_ALIGNOF, grrr
     m4_pattern_allow([AC_CHECK_ALIGNOF])
@@ -6735,8 +6737,10 @@ else
     SAL_TYPES_SIZEOFLONGLONG=8
     if test $WIN_HOST_BITS -eq 32; then
         SAL_TYPES_SIZEOFPOINTER=4
+        SIZEOF_SIZE_T=4
     else
         SAL_TYPES_SIZEOFPOINTER=8
+        SIZEOF_SIZE_T=8
     fi
     SAL_TYPES_ALIGNMENT2=2
     SAL_TYPES_ALIGNMENT4=4
@@ -6744,6 +6748,7 @@ else
     LFS_CFLAGS=''
 fi
 AC_SUBST(LFS_CFLAGS)
+AC_SUBST(SIZEOF_SIZE_T)
 
 AC_DEFINE_UNQUOTED(SAL_TYPES_SIZEOFSHORT,$SAL_TYPES_SIZEOFSHORT)
 AC_DEFINE_UNQUOTED(SAL_TYPES_SIZEOFINT,$SAL_TYPES_SIZEOFINT)
@@ -8858,12 +8863,6 @@ else
     SYSTEM_LIBJPEG=
     AC_MSG_RESULT([internal, libjpeg-turbo])
     BUILD_TYPE="$BUILD_TYPE LIBJPEG_TURBO"
-    LIBJPEG_CFLAGS="-I${WORKDIR}/UnpackedTarball/libjpeg-turbo"
-    if test "$COM" = "MSC"; then
-        
LIBJPEG_LIBS="${WORKDIR}/UnpackedTarball/libjpeg-turbo/.libs/libjpeg.lib"
-    else
-        LIBJPEG_LIBS="-L${WORKDIR}/UnpackedTarball/libjpeg-turbo/.libs -ljpeg"
-    fi
 
     case "$host_cpu" in
     x86_64 | amd64 | i*86 | x86 | ia32)
@@ -8958,17 +8957,17 @@ else
 
             AC_MSG_CHECKING([for object file format specifier (NAFLAGS) ])
             case "$objfmt" in
-              MSOMF)      NAFLAGS='-fobj -DOBJ32';;
-              Win32-COFF) NAFLAGS='-fwin32 -DWIN32';;
-              Win64-COFF) NAFLAGS='-fwin64 -DWIN64 -D__x86_64__';;
-              COFF)       NAFLAGS='-fcoff -DCOFF';;
-              a.out)      NAFLAGS='-faout -DAOUT';;
-              BSD-a.out)  NAFLAGS='-faoutb -DAOUT';;
-              ELF)        NAFLAGS='-felf -DELF';;
-              ELF64)      NAFLAGS='-felf64 -DELF -D__x86_64__';;
-              RDF)        NAFLAGS='-frdf -DRDF';;
-              Mach-O)     NAFLAGS='-fmacho -DMACHO';;
-              Mach-O64)   NAFLAGS='-fmacho64 -DMACHO -D__x86_64__';;
+              MSOMF)      NAFLAGS='-fobj -DOBJ32 -DPIC';;
+              Win32-COFF) NAFLAGS='-fwin32 -DWIN32 -DPIC';;
+              Win64-COFF) NAFLAGS='-fwin64 -DWIN64 -D__x86_64__ -DPIC';;
+              COFF)       NAFLAGS='-fcoff -DCOFF -DPIC';;
+              a.out)      NAFLAGS='-faout -DAOUT -DPIC';;
+              BSD-a.out)  NAFLAGS='-faoutb -DAOUT -DPIC';;
+              ELF)        NAFLAGS='-felf -DELF -DPIC';;
+              ELF64)      NAFLAGS='-felf64 -DELF -D__x86_64__ -DPIC';;
+              RDF)        NAFLAGS='-frdf -DRDF -DPIC';;
+              Mach-O)     NAFLAGS='-fmacho -DMACHO -DPIC';;
+              Mach-O64)   NAFLAGS='-fmacho64 -DMACHO -D__x86_64__ -DPIC';;
             esac
             AC_MSG_RESULT([$NAFLAGS])
 
@@ -9034,6 +9033,7 @@ _EOS
 fi
 
 AC_SUBST(NASM)
+AC_SUBST(NAFLAGS)
 AC_SUBST(LIBJPEG_CFLAGS)
 AC_SUBST(LIBJPEG_LIBS)
 AC_SUBST(SYSTEM_LIBJPEG)
diff --git a/download.lst b/download.lst
index 12575e132190..504c5d862f2a 100644
--- a/download.lst
+++ b/download.lst
@@ -39,8 +39,8 @@ export CPPUNIT_SHA256SUM := 
89c5c6665337f56fd2db36bc3805a5619709d51fb136e5193707
 export CPPUNIT_TARBALL := cppunit-1.15.1.tar.gz
 export CT2N_SHA256SUM := 
71b238efd2734be9800af07566daea8d6685aeed28db5eb5fa0e6453f4d85de3
 export CT2N_TARBALL := 
1f467e5bb703f12cbbb09d5cf67ecf4a-converttexttonumber-1-5-0.oxt
-export CURL_SHA256SUM := 
be42766d5664a739c3974ee3dfbbcbe978a4ccb1fe628bb1d9b59ac79e445fb5
-export CURL_TARBALL := curl-7.78.0.tar.xz
+export CURL_SHA256SUM := 
1dae31b2a7c1fe269de99c0c31bb488346aab3459b5ffca909d6938249ae415f
+export CURL_TARBALL := curl-7.88.1.tar.xz
 export EBOOK_SHA256SUM := 
7e8d8ff34f27831aca3bc6f9cc532c2f90d2057c778963b884ff3d1e34dfe1f9
 export EBOOK_TARBALL := libe-book-0.1.3.tar.xz
 export EPOXY_SHA256SUM := 
002958c5528321edd53440235d3c44e71b5b1e09b9177e8daf677450b6c4433d
@@ -49,11 +49,11 @@ export EPM_SHA256SUM := 
b3fc4c5445de6c9a801504a3ea3efb2d4ea9d5a622c9427e716736e7
 export EPM_TARBALL := 3ade8cfe7e59ca8e65052644fed9fca4-epm-3.7.tar.gz
 export EPUBGEN_SHA256SUM := 
03e084b994cbeffc8c3dd13303b2cb805f44d8f2c3b79f7690d7e3fc7f6215ad
 export EPUBGEN_TARBALL := libepubgen-0.1.1.tar.xz
-export ETONYEK_SHA256SUM := 
e61677e8799ce6e55b25afc11aa5339113f6a49cff031f336e32fa58635b1a4a
-export ETONYEK_VERSION_MICRO := 9
+export ETONYEK_SHA256SUM := 
b430435a6e8487888b761dc848b7981626eb814884963ffe25eb26a139301e9a
+export ETONYEK_VERSION_MICRO := 10
 export ETONYEK_TARBALL := libetonyek-0.1.$(ETONYEK_VERSION_MICRO).tar.xz
-export EXPAT_SHA256SUM := 
f2af8fc7cdc63a87920da38cd6d12cb113c3c3a3f437495b1b6541e0cff32579
-export EXPAT_TARBALL := expat-2.4.5.tar.xz
+export EXPAT_SHA256SUM := 
ef2420f0232c087801abf705e89ae65f6257df6b7931d37846a193ef2e8cdcbe
+export EXPAT_TARBALL := expat-2.5.0.tar.xz
 export FIREBIRD_SHA256SUM := 
6994be3555e23226630c587444be19d309b25b0fcf1f87df3b4e3f88943e5860
 export FIREBIRD_TARBALL := Firebird-3.0.0.32483-0.tar.bz2
 export FONTCONFIG_SHA256SUM := 
19e5b1bc9d013a52063a44e1307629711f0bfef35b9aca16f9c793971e2eb1e5
@@ -140,8 +140,8 @@ export JFREEREPORT_LIBXML_SHA256SUM := 
7d2797fe9f79a77009721e3f14fa4a1dec17a6d70
 export JFREEREPORT_LIBXML_TARBALL := 
ace6ab49184e329db254e454a010f56d-libxml-1.1.7.zip
 export JFREEREPORT_SAC_SHA256SUM := 
085f2112c51fa8c1783fac12fbd452650596415121348393bb51f0f7e85a9045
 export JFREEREPORT_SAC_TARBALL := 
39bb3fcea1514f1369fcfc87542390fd-sacjava-1.3.zip
-export LIBJPEG_TURBO_SHA256SUM := 
b24890e2bb46e12e72a79f7e965f409f4e16466d00e1dd15d93d73ee6b592523
-export LIBJPEG_TURBO_TARBALL := libjpeg-turbo-1.5.3.tar.gz
+export LIBJPEG_TURBO_SHA256SUM := 
09b96cb8cbff9ea556a9c2d173485fd19488844d55276ed4f42240e1e2073ce5
+export LIBJPEG_TURBO_TARBALL := libjpeg-turbo-2.1.2.tar.gz
 export LANGTAGREG_SHA256SUM := 
ce80e8face06bf2ada363e0c159e3f990c4116fdae9232ca43e6369aa82bf16a
 export LANGTAGREG_TARBALL := language-subtag-registry-2021-03-05.tar.bz2
 export LANGUAGETOOL_SHA256SUM := 
48c87e41636783bba438b65fd895821e369ed139e1465fac654323ad93c5a82d
@@ -170,12 +170,12 @@ export LIBWEBP_SHA256SUM := 
808b98d2f5b84e9b27fdef6c5372dac769c3bda4502febbfa503
 export LIBWEBP_TARBALL := libwebp-1.2.1.tar.gz
 export XMLSEC_SHA256SUM := 
2d84360b03042178def1d9ff538acacaed2b3a27411db7b2874f1612ed71abc8
 export XMLSEC_TARBALL := xmlsec1-1.2.30.tar.gz
-export LIBXML_SHA256SUM := 
c8d6681e38c56f172892c85ddc0852e1fd4b53b4209e7f4ebf17f7e2eae71d92
-export LIBXML_VERSION_MICRO := 12
-export LIBXML_TARBALL := libxml2-2.9.$(LIBXML_VERSION_MICRO).tar.gz
-export LIBXSLT_SHA256SUM := 
98b1bd46d6792925ad2dfe9a87452ea2adebf69dcb9919ffd55bf926a7f93f7f
-export LIBXSLT_VERSION_MICRO := 34
-export LIBXSLT_TARBALL := libxslt-1.1.$(LIBXSLT_VERSION_MICRO).tar.gz
+export LIBXML_SHA256SUM := 
5d2cc3d78bec3dbe212a9d7fa629ada25a7da928af432c93060ff5c17ee28a9c
+export LIBXML_VERSION_MICRO := 3
+export LIBXML_TARBALL := libxml2-2.10.$(LIBXML_VERSION_MICRO).tar.xz
+export LIBXSLT_SHA256SUM := 
8247f33e9a872c6ac859aa45018bc4c4d00b97e2feac9eebc10c93ce1f34dd79
+export LIBXSLT_VERSION_MICRO := 35
+export LIBXSLT_TARBALL := libxslt-1.1.$(LIBXSLT_VERSION_MICRO).tar.xz
 export LPSOLVE_SHA256SUM := 
171816288f14215c69e730f7a4f1c325739873e21f946ff83884b350574e6695
 export LPSOLVE_TARBALL := 26b3e95ddf3d9c077c480ea45874b3b8-lp_solve_5.5.tar.gz
 export LXML_SHA256SUM := 
940caef1ec7c78e0c34b0f6b94fe42d0f2022915ffc78643d28538a5cfd0f40e
@@ -195,19 +195,19 @@ export MYTHES_SHA256SUM := 
1e81f395d8c851c3e4e75b568e20fa2fa549354e75ab397f9de4b
 export MYTHES_TARBALL := a8c2c5b8f09e7ede322d5c602ff6a4b6-mythes-1.2.4.tar.gz
 export NEON_SHA256SUM := 
cf1ee3ac27a215814a9c80803fcee4f0ede8466ebead40267a9bd115e16a8678
 export NEON_TARBALL := neon-0.31.2.tar.gz
-export NSS_SHA256SUM := 
07a9e5b70f121a62706140d4cacc3006d3efb869da40f3a2bf7a65d37847f4d9
-export NSS_TARBALL := nss-3.73-with-nspr-4.32.tar.gz
-export ODFGEN_SHA256SUM := 
2c7b21892f84a4c67546f84611eccdad6259875c971e98ddb027da66ea0ac9c2
-export ODFGEN_VERSION_MICRO := 6
-export ODFGEN_TARBALL := libodfgen-0.1.$(ODFGEN_VERSION_MICRO).tar.bz2
+export NSS_SHA256SUM := 
fcfa26d2738ec5b0cf72ab4be784eac832a75132cda2e295799c04d62a93607a
+export NSS_TARBALL := nss-3.88.1-with-nspr-4.35.tar.gz
+export ODFGEN_SHA256SUM := 
55200027fd46623b9bdddd38d275e7452d1b0ff8aeddcad6f9ae6dc25f610625
+export ODFGEN_VERSION_MICRO := 8
+export ODFGEN_TARBALL := libodfgen-0.1.$(ODFGEN_VERSION_MICRO).tar.xz
 export ODFVALIDATOR_SHA256SUM := 
d55495ab3a86544650587de2a72180ddf8bfc6376d14ddfa923992dbc86a06e0
 export ODFVALIDATOR_JAR := 
odfvalidator-0.9.0-RC2-SNAPSHOT-jar-with-dependencies-2726ab578664434a545f8379a01a9faffac0ae73.jar
 export OFFICEOTRON_SHA256SUM := 
f2443f27561af52324eee03a1892d9f569adc8db9e7bca55614898bc2a13a770
 export OFFICEOTRON_JAR := 
8249374c274932a21846fa7629c2aa9b-officeotron-0.7.4-master.jar
-export OPENLDAP_SHA256SUM := 
cdd6cffdebcd95161a73305ec13fc7a78e9707b46ca9f84fb897cd5626df3824
-export OPENLDAP_TARBALL := openldap-2.4.45.tgz
-export OPENSSL_SHA256SUM := 
0b7a3e5e59c34827fe0c3a74b7ec8baef302b98fa80088d7f9153aa16fa76bd1
-export OPENSSL_TARBALL := openssl-1.1.1l.tar.gz
+export OPENLDAP_SHA256SUM := 
99f37d6747d88206c470067eda624d5e48c1011e943ec0ab217bae8712e22f34
+export OPENLDAP_TARBALL := openldap-2.4.59.tgz
+export OPENSSL_SHA256SUM := 
8dee9b24bdb1dcbf0c3d1e9b02fb8f6bf22165e807f45adeb7c9677536859d3b
+export OPENSSL_TARBALL := openssl-1.1.1t.tar.gz
 export ORCUS_SHA256SUM := 
c700d1325f744104d9fca0d5a019434901e9d51a16eedfb05792f90a298587a4
 export ORCUS_TARBALL := liborcus-0.16.1.tar.bz2
 export OWNCLOUD_ANDROID_LIB_SHA256SUM := 
b18b3e3ef7fae6a79b62f2bb43cc47a5346b6330f6a383dc4be34439aca5e9fb
@@ -218,12 +218,12 @@ export PDFIUM_SHA256SUM := 
eca406d47ac7e2a84dcc86f93c08f96e591d409589e881477fa75
 export PDFIUM_TARBALL := pdfium-4306.tar.bz2
 export PIXMAN_SHA256SUM := 
21b6b249b51c6800dc9553b65106e1e37d0e25df942c90531d4c3997aa20a88e
 export PIXMAN_TARBALL := e80ebae4da01e77f68744319f01d52a3-pixman-0.34.0.tar.gz
-export LIBPNG_SHA256SUM := 
505e70834d35383537b6491e7ae8641f1a4bed1876dbfe361201fc80868d88ca
-export LIBPNG_TARBALL := libpng-1.6.37.tar.xz
+export LIBPNG_SHA256SUM := 
1f4696ce70b4ee5f85f1e1623dc1229b210029fa4b7aee573df3e2ba7b036937
+export LIBPNG_TARBALL := libpng-1.6.39.tar.xz
 export POPPLER_SHA256SUM := 
016dde34e5f868ea98a32ca99b643325a9682281500942b7113f4ec88d20e2f3
 export POPPLER_TARBALL := poppler-21.01.0.tar.xz
-export POSTGRESQL_SHA256SUM := 
12345c83b89aa29808568977f5200d6da00f88a035517f925293355432ffe61f
-export POSTGRESQL_TARBALL := postgresql-13.1.tar.bz2
+export POSTGRESQL_SHA256SUM := 
9b81067a55edbaabc418aacef457dd8477642827499560b00615a6ea6c13f6b3
+export POSTGRESQL_TARBALL := postgresql-13.5.tar.bz2
 export PYTHON_SHA256SUM := 
bd746ed1ad9ccfa9b2a8d13736a5c452025c3600913d000078e6ed1df3d767b6
 export PYTHON_TARBALL := Python-3.8.8rc1.tar.xz
 export QRCODEGEN_SHA256SUM := 
fcdf9fd69fde07ae4dca2351d84271a9de8093002f733b77c70f52f1630f6e4a
@@ -267,8 +267,8 @@ export WPS_VERSION_MICRO := 12
 export WPS_TARBALL := libwps-0.4.$(WPS_VERSION_MICRO).tar.xz
 export XSLTML_SHA256SUM := 
75823776fb51a9c526af904f1503a7afaaab900fba83eda64f8a41073724c870
 export XSLTML_TARBALL := a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip
-export ZLIB_SHA256SUM := 
7db46b8d7726232a621befaab4a1c870f00a90805511c0e0090441dac57def18
-export ZLIB_TARBALL := zlib-1.2.12.tar.xz
+export ZLIB_SHA256SUM := 
d14c38e313afc35a9a8760dadf26042f51ea0f5d154b0630a31da0540107fb98
+export ZLIB_TARBALL := zlib-1.2.13.tar.xz
 export ZMF_SHA256SUM := 
27051a30cb057fdb5d5de65a1f165c7153dc76e27fe62251cbb86639eb2caf22
 export ZMF_TARBALL := libzmf-0.0.2.tar.xz
 
diff --git a/external/curl/ExternalPackage_curl.mk 
b/external/curl/ExternalPackage_curl.mk
index 924fc53ebd62..0485dacb2d3b 100644
--- a/external/curl/ExternalPackage_curl.mk
+++ b/external/curl/ExternalPackage_curl.mk
@@ -14,7 +14,7 @@ $(eval $(call 
gb_ExternalPackage_use_external_project,curl,curl))
 ifneq ($(DISABLE_DYNLOADING),TRUE)
 
 ifeq ($(COM),MSC)
-$(eval $(call gb_ExternalPackage_add_file,curl,$(LIBO_LIB_FOLDER)/libcurl$(if 
$(MSVC_USE_DEBUG_RUNTIME),_debug).dll,builds/libcurl-vc12-$(gb_MSBUILD_PLATFORM)-$(gb_MSBUILD_CONFIG)-dll-ipv6-sspi-schannel/bin/libcurl$(if
 $(MSVC_USE_DEBUG_RUNTIME),_debug).dll))
+$(eval $(call gb_ExternalPackage_add_file,curl,$(LIBO_LIB_FOLDER)/libcurl$(if 
$(MSVC_USE_DEBUG_RUNTIME),_debug).dll,builds/libcurl-vc12-$(gb_MSBUILD_PLATFORM)-$(gb_MSBUILD_CONFIG)-dll-zlib-static-ipv6-sspi-schannel/bin/libcurl$(if
 $(MSVC_USE_DEBUG_RUNTIME),_debug).dll))
 else ifeq ($(OS),MACOSX)
 $(eval $(call 
gb_ExternalPackage_add_file,curl,$(LIBO_LIB_FOLDER)/libcurl.4.dylib,lib/.libs/libcurl.4.dylib))
 else ifeq ($(OS),AIX)
diff --git a/external/curl/ExternalProject_curl.mk 
b/external/curl/ExternalProject_curl.mk
index d2b2b855ca0a..0cd16eebe405 100644
--- a/external/curl/ExternalProject_curl.mk
+++ b/external/curl/ExternalProject_curl.mk
@@ -43,8 +43,8 @@ $(call gb_ExternalProject_get_state_target,curl,build):
                ./configure \
                        $(if $(filter iOS MACOSX,$(OS)),\
                                --with-secure-transport,\
-                               $(if $(ENABLE_NSS),--with-nss$(if 
$(SYSTEM_NSS),,="$(call 
gb_UnpackedTarball_get_dir,nss)/dist/out"),--without-nss)) \
-                       --without-ssl --without-gnutls --without-polarssl 
--without-cyassl --without-axtls --without-mbedtls \
+                               $(if $(ENABLE_NSS),--with-nss$(if 
$(SYSTEM_NSS),,="$(call gb_UnpackedTarball_get_dir,nss)/dist/out") 
--with-nss-deprecated,--without-nss)) \
+                       --without-openssl --without-gnutls --without-polarssl 
--without-cyassl --without-axtls --without-mbedtls \
                        --enable-ftp --enable-http --enable-ipv6 \
                        --without-libidn2 --without-libpsl --without-librtmp \
                        --without-libssh2 --without-metalink --without-nghttp2 \
@@ -88,6 +88,7 @@ $(call gb_ExternalProject_get_state_target,curl,build):
                        ENABLE_IPV6=yes \
                        ENABLE_SSPI=yes \
                        ENABLE_WINSSL=yes \
+                       WITH_ZLIB=static \
        ,winbuild)
        $(call gb_Trace_EndRange,curl,EXTERNAL)
 
diff --git a/external/curl/UnpackedTarball_curl.mk 
b/external/curl/UnpackedTarball_curl.mk
index 2cdfbfc08632..e78adabb8d07 100644
--- a/external/curl/UnpackedTarball_curl.mk
+++ b/external/curl/UnpackedTarball_curl.mk
@@ -21,9 +21,10 @@ $(eval $(call gb_UnpackedTarball_fix_end_of_line,curl,\
 
 $(eval $(call gb_UnpackedTarball_add_patches,curl,\
        external/curl/curl-msvc.patch.1 \
+       external/curl/curl-msvc-zlib.patch.1 \
        external/curl/curl-msvc-disable-protocols.patch.1 \
-       external/curl/curl-7.26.0_win-proxy.patch \
        external/curl/zlib.patch.0 \
+       external/curl/configurable-z-option.patch.0 \
 ))
 
 ifeq ($(SYSTEM_NSS),)
@@ -38,4 +39,10 @@ $(eval $(call gb_UnpackedTarball_add_patches,curl, \
 ))
 endif
 
+ifneq ($(filter -fsanitize=%,$(CC)),)
+$(eval $(call gb_UnpackedTarball_add_patches,curl, \
+    external/curl/asan-poison-nsspem.patch.0 \
+))
+endif
+
 # vim: set noet sw=4 ts=4:
diff --git a/external/curl/asan-poison-nsspem.patch.0 
b/external/curl/asan-poison-nsspem.patch.0
new file mode 100644
index 000000000000..b348d44ee573
--- /dev/null
+++ b/external/curl/asan-poison-nsspem.patch.0
@@ -0,0 +1,11 @@
+--- lib/vtls/nss.c
++++ lib/vtls/nss.c
+@@ -1926,7 +1926,7 @@
+ 
+   PK11_SetPasswordFunc(nss_get_password);
+ 
+-  result = nss_load_module(&pem_module, pem_library, "PEM");
++  result = CURLE_FAILED_INIT;
+   PR_Unlock(nss_initlock);
+   if(result == CURLE_FAILED_INIT)
+     infof(data, "WARNING: failed to load NSS PEM library %s. Using "
diff --git a/external/curl/clang-cl.patch.0 b/external/curl/clang-cl.patch.0
index 2fbb10c2a9aa..5dfb19d5ba59 100644
--- a/external/curl/clang-cl.patch.0
+++ b/external/curl/clang-cl.patch.0
@@ -1,6 +1,6 @@
 --- winbuild/MakefileBuild.vc
 +++ winbuild/MakefileBuild.vc
-@@ -60,7 +60,7 @@
+@@ -52,7 +52,7 @@
  !ELSE
  CC_NODEBUG  = $(CC) /O2 /DNDEBUG
  CC_DEBUG    = $(CC) /Od /D_DEBUG /RTC1 /Z7 /LDd
diff --git a/external/curl/configurable-z-option.patch.0 
b/external/curl/configurable-z-option.patch.0
new file mode 100644
index 000000000000..84516ad21917
--- /dev/null
+++ b/external/curl/configurable-z-option.patch.0
@@ -0,0 +1,20 @@
+--- winbuild/MakefileBuild.vc.sav      2021-11-13 11:43:40.756226600 +0000
++++ winbuild/MakefileBuild.vc  2021-11-13 11:52:08.921692300 +0000
+@@ -47,7 +47,7 @@
+ 
+ !IF "$(VC)"=="6"
+ CC_NODEBUG  = $(CC) /O2 /DNDEBUG
+-CC_DEBUG    = $(CC) /Od /Gm /Zi /D_DEBUG /GZ
++CC_DEBUG    = $(CC) /Od /Gm $(DEBUG_FLAGS_VALUE) /D_DEBUG /GZ
+ CFLAGS      = /I. /I../lib /I../include /nologo /W4 /GX /DWIN32 /YX /FD /c 
/DBUILDING_LIBCURL
+ !ELSE
+ CC_NODEBUG  = $(CC) /O2 /DNDEBUG
+@@ -64,7 +64,7 @@
+ # Instead of id: just create an archive, that contains all objects
+ LNKLIB     = lib.exe
+ 
+-CFLAGS_PDB = /Zi
++CFLAGS_PDB = $(DEBUG_FLAGS_VALUE)
+ LFLAGS_PDB = /incremental:no /opt:ref,icf /DEBUG
+ 
+ CFLAGS_LIBCURL_STATIC  = /DCURL_STATICLIB
diff --git a/external/curl/curl-7.26.0_win-proxy.patch 
b/external/curl/curl-7.26.0_win-proxy.patch
deleted file mode 100644
index 46cdcc739d80..000000000000
--- a/external/curl/curl-7.26.0_win-proxy.patch
+++ /dev/null
@@ -1,121 +0,0 @@
---- curl/winbuild/MakefileBuild.vc.orig        2017-10-23 17:15:22.969492548 
+0200
-+++ curl/winbuild/MakefileBuild.vc     2017-10-23 17:16:38.491490679 +0200
-@@ -72,7 +72,7 @@
- 
- CFLAGS_LIBCURL_STATIC  = /DCURL_STATICLIB
- 
--WIN_LIBS    = ws2_32.lib wldap32.lib advapi32.lib crypt32.lib
-+WIN_LIBS    = ws2_32.lib wldap32.lib advapi32.lib crypt32.lib winhttp.lib
- 
- BASE_NAME              = libcurl
- BASE_NAME_DEBUG        = $(BASE_NAME)_debug
---- curl-7.26.0/lib/url.c
-+++ misc/build/curl-7.26.0/lib/url.c
-@@ -78,6 +78,10 @@
- bool curl_win32_idn_to_ascii(const char *in, char **out);
- #endif  /* USE_LIBIDN2 */
- 
-+#ifdef _WIN32
-+#include <WinHttp.h>
-+#endif
-+
- #include "urldata.h"
- #include "netrc.h"
- 
-@@ -4586,6 +4590,21 @@
- }
- 
- #ifndef CURL_DISABLE_HTTP
-+#ifdef _WIN32
-+static char *wstrToCstr(LPWSTR wStr)
-+{
-+  int bufSize;
-+  char *out = NULL;
-+  if(wStr != NULL) {
-+    bufSize = WideCharToMultiByte(
-+      CP_ACP,  0, wStr, -1, NULL, 0, NULL, NULL);
-+    out = (char *)malloc(bufSize * sizeof(char));
-+    WideCharToMultiByte(CP_ACP, 0, wStr, -1, out, bufSize, NULL, NULL);
-+  }
-+  return out;
-+}
-+#endif
-+
- /****************************************************************
- * Detect what (if any) proxy to use. Remember that this selects a host
- * name and is not limited to HTTP proxies only.
-@@ -4613,6 +4633,66 @@
-    * For compatibility, the all-uppercase versions of these variables are
-    * checked if the lowercase versions don't exist.
-    */
-+#ifdef _WIN32
-+  char *no_proxy = NULL;
-+  WINHTTP_CURRENT_USER_IE_PROXY_CONFIG *ieProxyConfig;
-+  ieProxyConfig = (WINHTTP_CURRENT_USER_IE_PROXY_CONFIG *)
-+    malloc(sizeof(WINHTTP_CURRENT_USER_IE_PROXY_CONFIG));
-+  if(WinHttpGetIEProxyConfigForCurrentUser(ieProxyConfig)) {
-+    if(!ieProxyConfig->fAutoDetect) {
-+      char *ieProxy;
-+      char *ieNoProxy;
-+      char *pos;
-+
-+      ieProxy = wstrToCstr(ieProxyConfig->lpszProxy);
-+      ieNoProxy = wstrToCstr(ieProxyConfig->lpszProxyBypass);
-+
-+      /* Convert the ieNoProxy into a proper no_proxy value */
-+      if(NULL != ieNoProxy) {
-+        no_proxy = strdup(ieNoProxy);
-+        pos = strpbrk(no_proxy, "; ");
-+        while(NULL != pos) {
-+          no_proxy[pos-no_proxy] = ',';
-+          pos = strpbrk(no_proxy, "; ");
-+        }
-+      }
-+
-+      if(!check_noproxy(conn->host.name, no_proxy)) {
-+        /* Look for the http proxy setting */
-+        char *tok;
-+        char *saveptr;
-+
-+        if(NULL != ieProxy) {
-+          tok = strtok_s(ieProxy, ";", &saveptr);
-+          if(strchr(tok, '=') == NULL) {
-+            proxy = strdup(ieProxy);
-+          }
-+          else {
-+            do {
-+              if(strncmp(tok, "http=", 5) == 0) {
-+                /* We found HTTP proxy value, then use it */
-+                proxy = strdup(tok + 5);
-+              }
-+              tok = strtok_s(NULL, ";", &saveptr);
-+            }
-+            while(NULL != tok);
-+          }
-+        }
-+      }
-+
-+      free(ieProxy);
-+      free(ieNoProxy);
-+    }
-+    else {
-+      /* TODO Handle the Proxy config Auto Detection case */
-+    }
-+
-+    GlobalFree(ieProxyConfig->lpszAutoConfigUrl);
-+    GlobalFree(ieProxyConfig->lpszProxy);
-+    GlobalFree(ieProxyConfig->lpszProxyBypass);
-+  }
-+  free(no_proxy);
-+#else /* !_WIN32 */
-   char proxy_env[128];
-   const char *protop = conn->handler->scheme;
-   char *envp = proxy_env;
-@@ -4663,6 +4739,7 @@
-   }
-   if(proxy)
-     infof(data, "Uses proxy env variable %s == '%s'", envp, proxy);
-+#endif /* _WIN32 */
- 
-   return proxy;
- }
diff --git a/external/curl/curl-msvc-disable-protocols.patch.1 
b/external/curl/curl-msvc-disable-protocols.patch.1
index a6d06c69b004..71ff0c01a028 100644
--- a/external/curl/curl-msvc-disable-protocols.patch.1
+++ b/external/curl/curl-msvc-disable-protocols.patch.1
@@ -2,7 +2,7 @@ disable protocols nobody needs in MSVC build
 
 --- curl/lib/config-win32.h.orig       2017-08-09 16:43:29.464000000 +0200
 +++ curl/lib/config-win32.h    2017-08-09 16:47:38.549200000 +0200
-@@ -733,4 +733,20 @@
+@@ -654,4 +654,20 @@
  #  define ENABLE_IPV6 1
  #endif
  
@@ -25,7 +25,7 @@ disable protocols nobody needs in MSVC build
  #endif /* HEADER_CURL_CONFIG_WIN32_H */
 --- curl/winbuild/MakefileBuild.vc.orig        2017-10-23 23:41:21.393200000 
+0200
 +++ curl/winbuild/MakefileBuild.vc     2017-10-23 23:34:16.028000000 +0200
-@@ -431,7 +431,7 @@
+@@ -562,7 +562,7 @@
  
  EXE_OBJS = $(CURL_OBJS) $(CURL_DIROBJ)\curl.res
  
diff --git a/external/curl/curl-msvc-zlib.patch.1 
b/external/curl/curl-msvc-zlib.patch.1
new file mode 100644
index 000000000000..a9ee0013d50b
--- /dev/null
+++ b/external/curl/curl-msvc-zlib.patch.1
@@ -0,0 +1,16 @@
+find internal zlib in nmake buildsystem
+
+--- curl/winbuild/MakefileBuild.vc.orig2       2021-10-27 20:44:48.685237000 
+0200
++++ curl/winbuild/MakefileBuild.vc     2021-10-27 20:47:23.792407400 +0200
+@@ -244,8 +244,9 @@
+ ZLIB_LIB_DIR = $(ZLIB_PATH)\lib
+ ZLIB_LFLAGS  = $(ZLIB_LFLAGS) "/LIBPATH:$(ZLIB_LIB_DIR)"
+ !ELSE
+-ZLIB_INC_DIR = $(DEVEL_INCLUDE)
+-ZLIB_LIB_DIR = $(DEVEL_LIB)
++ZLIB_INC_DIR = $(WORKDIR)/UnpackedTarball/zlib
++ZLIB_LIB_DIR = $(WORKDIR)/LinkTarget/StaticLibrary
++ZLIB_LFLAGS  = $(ZLIB_LFLAGS) "/LIBPATH:$(ZLIB_LIB_DIR)"
+ !ENDIF
+ 
+ # Depending on how zlib is built the libraries have different names, we
diff --git a/external/curl/curl-msvc.patch.1 b/external/curl/curl-msvc.patch.1
index a5b79a8e9c49..54ad026ec8c7 100644
--- a/external/curl/curl-msvc.patch.1
+++ b/external/curl/curl-msvc.patch.1
@@ -2,7 +2,7 @@ MSVC: using SOLARINC
 
 --- curl/winbuild/MakefileBuild.vc.orig        2017-10-23 16:36:07.713550851 
+0200
 +++ curl/winbuild/MakefileBuild.vc     2017-10-23 16:38:19.301547594 +0200
-@@ -60,7 +60,7 @@
+@@ -52,7 +52,7 @@
  !ELSE
  CC_NODEBUG  = $(CC) /O2 /DNDEBUG
  CC_DEBUG    = $(CC) /Od /D_DEBUG /RTC1 /Z7 /LDd
@@ -11,7 +11,7 @@ MSVC: using SOLARINC
  !ENDIF
  
  LFLAGS     = /nologo /machine:$(MACHINE)
-@@ -300,11 +300,11 @@
+@@ -426,11 +426,11 @@
  # CURL_XX macros are for the curl.exe command
  
  !IF "$(DEBUG)"=="yes"
diff --git a/external/curl/curl-nss.patch.1 b/external/curl/curl-nss.patch.1
index 69fde5f7f236..2e8766b3d45f 100644
--- a/external/curl/curl-nss.patch.1
+++ b/external/curl/curl-nss.patch.1
@@ -1,12 +1,17 @@
 diff -ur curl.org/configure curl/configure
---- curl.org/configure 2016-03-13 15:14:07.177000076 +0100
-+++ curl/configure     2016-03-13 15:16:44.132000076 +0100
-@@ -24009,7 +24009,7 @@
-       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Using hard-wired 
libraries and compilation flags for NSS." >&5
- $as_echo "$as_me: WARNING: Using hard-wired libraries and compilation flags 
for NSS." >&2;}
+--- curl.orig/configure        2023-02-20 16:11:55.000000000 +0900
++++ curl/configure     2023-02-23 15:40:58.617432471 +0900
+@@ -28675,7 +28675,12 @@
+       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Using hard-wired 
libraries and compilation flags for NSS." >&5
+ printf "%s\n" "$as_me: WARNING: Using hard-wired libraries and compilation 
flags for NSS." >&2;}
        addld="-L$OPT_NSS/lib"
 -      addlib="-lssl3 -lsmime3 -lnss3 -lplds4 -lplc4 -lnspr4"
 +      addlib="-lssl3 -lsmime3 -lnss3 -lplds4 -lplc4 -lnspr4 -lnssutil3"
++      case $host_os in
++        *android*)
++          addlib="${addlib} -llog"
++          ;;
++      esac
        addcflags="-I$OPT_NSS/include"
        version="unknown"
        nssprefix=$OPT_NSS
diff --git a/external/curl/zlib.patch.0 b/external/curl/zlib.patch.0
index f4a0ad4b152f..b4442ba262d1 100644
--- a/external/curl/zlib.patch.0
+++ b/external/curl/zlib.patch.0
@@ -1,22 +1,22 @@
 --- configure
 +++ configure
-@@ -20709,7 +20709,6 @@
+@@ -23035,7 +23035,6 @@
  clean_CPPFLAGS=$CPPFLAGS
  clean_LDFLAGS=$LDFLAGS
  clean_LIBS=$LIBS
 -ZLIB_LIBS=""
  
  # Check whether --with-zlib was given.
- if test "${with_zlib+set}" = set; then :
-@@ -20718,6 +20719,7 @@
+ if test ${with_zlib+y}
+@@ -23045,6 +23044,7 @@
  
  
  if test "$OPT_ZLIB" = "no" ; then
 +    ZLIB_LIBS=""
-     { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: zlib disabled" >&5
- $as_echo "$as_me: WARNING: zlib disabled" >&2;}
+     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: zlib disabled" >&5
+ printf "%s\n" "$as_me: WARNING: zlib disabled" >&2;}
  else
-@@ -20725,6 +20725,21 @@
+@@ -23052,6 +23052,21 @@
      OPT_ZLIB=""
    fi
  
@@ -38,8 +38,8 @@
    if test -z "$OPT_ZLIB" ; then
  
      if test -n "$PKG_CONFIG"; then
-@@ -21005,6 +21020,7 @@
- $as_echo "$as_me: found both libz and libz.h header" >&6;}
+@@ -23344,6 +23359,7 @@
+ printf "%s\n" "$as_me: found both libz and libz.h header" >&6;}
      curl_zlib_msg="enabled"
    fi
 + fi
@@ -48,7 +48,7 @@
   if test x"$AMFIXLIB" = x1; then
 --- configure.ac
 +++ configure.ac
-@@ -880,19 +880,30 @@
+@@ -1243,19 +1243,30 @@
  clean_CPPFLAGS=$CPPFLAGS
  clean_LDFLAGS=$LDFLAGS
  clean_LIBS=$LIBS
@@ -80,7 +80,7 @@
    if test -z "$OPT_ZLIB" ; then
      CURL_CHECK_PKGCONFIG(zlib)
  
-@@ -975,6 +986,7 @@
+@@ -1336,6 +1347,7 @@
      AC_MSG_NOTICE([found both libz and libz.h header])
      curl_zlib_msg="enabled"
    fi
diff --git a/external/expat/expat-winapi.patch 
b/external/expat/expat-winapi.patch
index 7eae7d5d6139..fed65644a732 100644
--- a/external/expat/expat-winapi.patch
+++ b/external/expat/expat-winapi.patch
@@ -1,6 +1,6 @@
---- misc/expat-2.1.0/lib/expat_external.h      2009-11-16 08:53:17.375000000 
+0000
-+++ misc/build/expat-2.1.0/lib/expat_external.h        2009-11-16 
08:53:34.703125000 +0000
-@@ -81,10 +81,6 @@
+--- misc/expat-2.5.0/lib/expat_external.h      2022-10-25 01:32:54.000000000 
+0900
++++ misc/build/expat-2.5.0/lib/expat_external.h        2022-10-30 
23:09:47.339459134 +0900
+@@ -88,10 +88,6 @@
  #  ifndef XML_BUILDING_EXPAT
  /* using Expat from an application */
  
@@ -11,12 +11,13 @@
  #  endif
  #endif /* not defined XML_STATIC */
  
---- misc/expat-2.1.0/lib/xmlparse.c    2021-05-23 16:56:25.000000000 +0100
-+++ misc/build/expat-2.1.0/lib/xmlparse.c      2021-05-25 12:42:11.997173600 
+0100
-@@ -64,6 +64,8 @@
+--- misc/expat-2.5.0/lib/xmlparse.c    2022-10-26 00:09:08.000000000 +0900
++++ misc/build/expat-2.5.0/lib/xmlparse.c      2022-10-30 23:09:01.843006341 
+0900
+@@ -67,6 +67,9 @@
  #endif
  
  #ifdef _WIN32
++#  undef HAVE_ARC4RANDOM_BUF
 +#  undef HAVE_GETRANDOM
 +#  undef HAVE_SYSCALL_GETRANDOM
  /* force stdlib to define rand_s() */
diff --git a/external/libjpeg-turbo/ExternalProject_libjpeg-turbo.mk 
b/external/libjpeg-turbo/ExternalProject_libjpeg-turbo.mk
deleted file mode 100644
index a5cd4c57ddc7..000000000000
--- a/external/libjpeg-turbo/ExternalProject_libjpeg-turbo.mk
+++ /dev/null
@@ -1,43 +0,0 @@
-# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
-#
-# This file is part of the LibreOffice project.
-#
-# 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/.
-#
-
-$(eval $(call gb_ExternalProject_ExternalProject,libjpeg-turbo))
-
-$(eval $(call gb_ExternalProject_use_autoconf,libjpeg-turbo,configure))
-$(eval $(call gb_ExternalProject_use_autoconf,libjpeg-turbo,build))
-
-$(eval $(call gb_ExternalProject_register_targets,libjpeg-turbo,\
-       configure \
-       build \
-))
-
-$(call gb_ExternalProject_get_state_target,libjpeg-turbo,build) : $(call 
gb_ExternalProject_get_state_target,libjpeg-turbo,configure)
-       $(call gb_Trace_StartRange,libjpeg-turbo,EXTERNAL)
-       +$(call gb_ExternalProject_run,build,\
-               $(MAKE) \
-       )
-       $(call gb_Trace_EndRange,libjpeg-turbo,EXTERNAL)
-
-$(call gb_ExternalProject_get_state_target,libjpeg-turbo,configure) :
-       $(call gb_Trace_StartRange,libjpeg-turbo,EXTERNAL)
-       $(call gb_ExternalProject_run,configure,\
-               MAKE=$(MAKE) ./configure \
-                       --build=$(BUILD_PLATFORM) \
-                       --host=$(HOST_PLATFORM) \
-                       --with-pic \
-                       --enable-static \
-                       --disable-shared \
-                       --without-java \
-                       --without-turbojpeg \
-                       $(if $(NASM),,--without-simd) \
-                       CFLAGS='$(if $(debug),$(gb_DEBUGINFO_FLAGS)) $(if 
$(ENABLE_OPTIMIZED),$(gb_COMPILEROPTFLAGS),$(gb_COMPILERNOOPTFLAGS)) $(CFLAGS) 
$(gb_VISIBILITY_FLAGS)' \
-       )
-       $(call gb_Trace_EndRange,libjpeg-turbo,EXTERNAL)
-
-# vim: set noet sw=4 ts=4:
diff --git a/external/libjpeg-turbo/Module_libjpeg-turbo.mk 
b/external/libjpeg-turbo/Module_libjpeg-turbo.mk
index 137e7557bacf..29be90155880 100644
--- a/external/libjpeg-turbo/Module_libjpeg-turbo.mk
+++ b/external/libjpeg-turbo/Module_libjpeg-turbo.mk
@@ -10,8 +10,8 @@
 $(eval $(call gb_Module_Module,libjpeg-turbo))
 
 $(eval $(call gb_Module_add_targets,libjpeg-turbo,\
-       ExternalProject_libjpeg-turbo \
        UnpackedTarball_libjpeg-turbo \
+       StaticLibrary_libjpeg-turbo \
 ))
 
 # vim: set noet sw=4 ts=4:
diff --git a/external/libjpeg-turbo/StaticLibrary_libjpeg-turbo.mk 
b/external/libjpeg-turbo/StaticLibrary_libjpeg-turbo.mk
new file mode 100644
index 000000000000..0b6b3044d1b2
--- /dev/null
+++ b/external/libjpeg-turbo/StaticLibrary_libjpeg-turbo.mk
@@ -0,0 +1,214 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# This file is part of the LibreOffice project.
+#
+# 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://mozillarg/MPL/2.0/.
+#
+
+$(eval $(call gb_StaticLibrary_StaticLibrary,libjpeg-turbo))
+
+$(eval $(call gb_StaticLibrary_use_unpacked,libjpeg-turbo,libjpeg-turbo))
+
+$(eval $(call gb_StaticLibrary_set_warnings_disabled,libjpeg-turbo))
+
+$(eval $(call gb_StaticLibrary_set_include,libjpeg-turbo,\
+    -I$(call gb_UnpackedTarball_get_dir,libjpeg-turbo) \
+    $$(INCLUDE) \
+))
+
+ifeq ($(OS),WNT)
+$(eval $(call gb_StaticLibrary_add_cflags,libjpeg-turbo,\
+    -DHAVE_INTRIN_H=1 \
+))
+endif
+
+$(eval $(call gb_StaticLibrary_add_cflags,libjpeg-turbo,\
+    -DSIZEOF_SIZE_T=$(SIZEOF_SIZE_T) \
+))
+
+ifeq ($(COM),GCC)
+ifneq ($(ENABLE_OPTIMIZED),)
+$(eval $(call gb_StaticLibrary_add_cflags,libjpeg-turbo,\
+    -O3 \
+))
+endif
+endif
+
+$(eval $(call gb_StaticLibrary_add_generated_cobjects,libjpeg-turbo,\
+    UnpackedTarball/libjpeg-turbo/jcapimin \
+    UnpackedTarball/libjpeg-turbo/jcapistd \
+    UnpackedTarball/libjpeg-turbo/jccoefct \
+    UnpackedTarball/libjpeg-turbo/jccolor \
+    UnpackedTarball/libjpeg-turbo/jcdctmgr \
+    UnpackedTarball/libjpeg-turbo/jchuff \
+    UnpackedTarball/libjpeg-turbo/jcicc \
+    UnpackedTarball/libjpeg-turbo/jcinit \
+    UnpackedTarball/libjpeg-turbo/jcmainct \
+    UnpackedTarball/libjpeg-turbo/jcmarker \
+    UnpackedTarball/libjpeg-turbo/jcmaster \
+    UnpackedTarball/libjpeg-turbo/jcomapi \
+    UnpackedTarball/libjpeg-turbo/jcparam \
+    UnpackedTarball/libjpeg-turbo/jcphuff \
+    UnpackedTarball/libjpeg-turbo/jcprepct \
+    UnpackedTarball/libjpeg-turbo/jcsample \
+    UnpackedTarball/libjpeg-turbo/jctrans \
+    UnpackedTarball/libjpeg-turbo/jdapimin \
+    UnpackedTarball/libjpeg-turbo/jdapistd \
+    UnpackedTarball/libjpeg-turbo/jdatadst \
+    UnpackedTarball/libjpeg-turbo/jdatasrc \
+    UnpackedTarball/libjpeg-turbo/jdcoefct \
+    UnpackedTarball/libjpeg-turbo/jdcolor \
+    UnpackedTarball/libjpeg-turbo/jddctmgr \
+    UnpackedTarball/libjpeg-turbo/jdhuff \
+    UnpackedTarball/libjpeg-turbo/jdicc \
+    UnpackedTarball/libjpeg-turbo/jdinput \
+    UnpackedTarball/libjpeg-turbo/jdmainct \
+    UnpackedTarball/libjpeg-turbo/jdmarker \
+    UnpackedTarball/libjpeg-turbo/jdmaster \
+    UnpackedTarball/libjpeg-turbo/jdmerge \
+    UnpackedTarball/libjpeg-turbo/jdphuff \
+    UnpackedTarball/libjpeg-turbo/jdpostct \
+    UnpackedTarball/libjpeg-turbo/jdsample \
+    UnpackedTarball/libjpeg-turbo/jdtrans \
+    UnpackedTarball/libjpeg-turbo/jerror \
+    UnpackedTarball/libjpeg-turbo/jfdctflt \
+    UnpackedTarball/libjpeg-turbo/jfdctfst \
+    UnpackedTarball/libjpeg-turbo/jfdctint \
+    UnpackedTarball/libjpeg-turbo/jidctflt \
+    UnpackedTarball/libjpeg-turbo/jidctfst \
+    UnpackedTarball/libjpeg-turbo/jidctint \
+    UnpackedTarball/libjpeg-turbo/jidctred \
+    UnpackedTarball/libjpeg-turbo/jquant1 \
+    UnpackedTarball/libjpeg-turbo/jquant2 \
+    UnpackedTarball/libjpeg-turbo/jutils \
+    UnpackedTarball/libjpeg-turbo/jmemmgr \
+    UnpackedTarball/libjpeg-turbo/jmemnobs \
+    UnpackedTarball/libjpeg-turbo/jaricom \
+    UnpackedTarball/libjpeg-turbo/jcarith \
+    UnpackedTarball/libjpeg-turbo/jdarith \
+))
+
+ifneq ($(NASM),)
+
+$(eval $(call gb_StaticLibrary_add_nasmflags,libjpeg-turbo,\
+       -I$(call gb_UnpackedTarball_get_dir,libjpeg-turbo)/simd/nasm/ \
+       -I$(dir $(call gb_UnpackedTarball_get_dir,libjpeg-turbo)/$(1)) \
+))
+
+ifeq ($(CPUNAME),X86_64)
+
+$(eval $(call gb_StaticLibrary_add_cflags,libjpeg-turbo,\
+    -DWITH_SIMD \
+))
+
+$(eval $(call gb_StaticLibrary_add_generated_cobjects,libjpeg-turbo,\
+    UnpackedTarball/libjpeg-turbo/simd/x86_64/jsimd \
+))
+
+$(eval $(call gb_StaticLibrary_add_generated_nasmobjects,libjpeg-turbo,\
+    UnpackedTarball/libjpeg-turbo/simd/x86_64/jsimdcpu.asm \
+    UnpackedTarball/libjpeg-turbo/simd/x86_64/jfdctflt-sse.asm \
+    UnpackedTarball/libjpeg-turbo/simd/x86_64/jccolor-sse2.asm \
+    UnpackedTarball/libjpeg-turbo/simd/x86_64/jcgray-sse2.asm \
+    UnpackedTarball/libjpeg-turbo/simd/x86_64/jchuff-sse2.asm \
+    UnpackedTarball/libjpeg-turbo/simd/x86_64/jcphuff-sse2.asm \
+    UnpackedTarball/libjpeg-turbo/simd/x86_64/jcsample-sse2.asm \
+    UnpackedTarball/libjpeg-turbo/simd/x86_64/jdcolor-sse2.asm \
+    UnpackedTarball/libjpeg-turbo/simd/x86_64/jdmerge-sse2.asm \
+    UnpackedTarball/libjpeg-turbo/simd/x86_64/jdsample-sse2.asm \
+    UnpackedTarball/libjpeg-turbo/simd/x86_64/jfdctfst-sse2.asm \
+    UnpackedTarball/libjpeg-turbo/simd/x86_64/jfdctint-sse2.asm \
+    UnpackedTarball/libjpeg-turbo/simd/x86_64/jidctflt-sse2.asm \
+    UnpackedTarball/libjpeg-turbo/simd/x86_64/jidctfst-sse2.asm \
+    UnpackedTarball/libjpeg-turbo/simd/x86_64/jidctint-sse2.asm \
+    UnpackedTarball/libjpeg-turbo/simd/x86_64/jidctred-sse2.asm \
+    UnpackedTarball/libjpeg-turbo/simd/x86_64/jquantf-sse2.asm \
+    UnpackedTarball/libjpeg-turbo/simd/x86_64/jquanti-sse2.asm \
+    UnpackedTarball/libjpeg-turbo/simd/x86_64/jccolor-avx2.asm \
+    UnpackedTarball/libjpeg-turbo/simd/x86_64/jcgray-avx2.asm \
+    UnpackedTarball/libjpeg-turbo/simd/x86_64/jcsample-avx2.asm \
+    UnpackedTarball/libjpeg-turbo/simd/x86_64/jdcolor-avx2.asm \
+    UnpackedTarball/libjpeg-turbo/simd/x86_64/jdmerge-avx2.asm \
+    UnpackedTarball/libjpeg-turbo/simd/x86_64/jdsample-avx2.asm \
+    UnpackedTarball/libjpeg-turbo/simd/x86_64/jfdctint-avx2.asm \
+    UnpackedTarball/libjpeg-turbo/simd/x86_64/jidctint-avx2.asm \
+    UnpackedTarball/libjpeg-turbo/simd/x86_64/jquanti-avx2.asm \
+))
+
+else ifeq ($(CPUNAME),INTEL)
+
+$(eval $(call gb_StaticLibrary_add_cflags,libjpeg-turbo,\
+    -DWITH_SIMD \
+))
+
+$(eval $(call gb_StaticLibrary_add_generated_cobjects,libjpeg-turbo,\
+    UnpackedTarball/libjpeg-turbo/simd/i386/jsimd \
+))
+
+$(eval $(call gb_StaticLibrary_add_generated_nasmobjects,libjpeg-turbo,\
+    UnpackedTarball/libjpeg-turbo/simd/i386/jsimdcpu.asm \
+    UnpackedTarball/libjpeg-turbo/simd/i386/jfdctflt-3dn.asm \
+    UnpackedTarball/libjpeg-turbo/simd/i386/jidctflt-3dn.asm \
+    UnpackedTarball/libjpeg-turbo/simd/i386/jquant-3dn.asm \
+    UnpackedTarball/libjpeg-turbo/simd/i386/jccolor-mmx.asm \
+    UnpackedTarball/libjpeg-turbo/simd/i386/jcgray-mmx.asm \
+    UnpackedTarball/libjpeg-turbo/simd/i386/jcsample-mmx.asm \
+    UnpackedTarball/libjpeg-turbo/simd/i386/jdcolor-mmx.asm \
+    UnpackedTarball/libjpeg-turbo/simd/i386/jdmerge-mmx.asm \
+    UnpackedTarball/libjpeg-turbo/simd/i386/jdsample-mmx.asm \
+    UnpackedTarball/libjpeg-turbo/simd/i386/jfdctfst-mmx.asm \
+    UnpackedTarball/libjpeg-turbo/simd/i386/jfdctint-mmx.asm \
+    UnpackedTarball/libjpeg-turbo/simd/i386/jidctfst-mmx.asm \
+    UnpackedTarball/libjpeg-turbo/simd/i386/jidctint-mmx.asm \
+    UnpackedTarball/libjpeg-turbo/simd/i386/jidctred-mmx.asm \
+    UnpackedTarball/libjpeg-turbo/simd/i386/jquant-mmx.asm \
+    UnpackedTarball/libjpeg-turbo/simd/i386/jfdctflt-sse.asm \
+    UnpackedTarball/libjpeg-turbo/simd/i386/jidctflt-sse.asm \
+    UnpackedTarball/libjpeg-turbo/simd/i386/jquant-sse.asm \
+    UnpackedTarball/libjpeg-turbo/simd/i386/jccolor-sse2.asm \
+    UnpackedTarball/libjpeg-turbo/simd/i386/jcgray-sse2.asm \
+    UnpackedTarball/libjpeg-turbo/simd/i386/jchuff-sse2.asm \
+    UnpackedTarball/libjpeg-turbo/simd/i386/jcphuff-sse2.asm \
+    UnpackedTarball/libjpeg-turbo/simd/i386/jcsample-sse2.asm \
+    UnpackedTarball/libjpeg-turbo/simd/i386/jdcolor-sse2.asm \
+    UnpackedTarball/libjpeg-turbo/simd/i386/jdmerge-sse2.asm \
+    UnpackedTarball/libjpeg-turbo/simd/i386/jdsample-sse2.asm \
+    UnpackedTarball/libjpeg-turbo/simd/i386/jfdctfst-sse2.asm \
+    UnpackedTarball/libjpeg-turbo/simd/i386/jfdctint-sse2.asm \
+    UnpackedTarball/libjpeg-turbo/simd/i386/jidctflt-sse2.asm \
+    UnpackedTarball/libjpeg-turbo/simd/i386/jidctfst-sse2.asm \
+    UnpackedTarball/libjpeg-turbo/simd/i386/jidctint-sse2.asm \
+    UnpackedTarball/libjpeg-turbo/simd/i386/jidctred-sse2.asm \
+    UnpackedTarball/libjpeg-turbo/simd/i386/jquantf-sse2.asm \
+    UnpackedTarball/libjpeg-turbo/simd/i386/jquanti-sse2.asm \
+    UnpackedTarball/libjpeg-turbo/simd/i386/jccolor-avx2.asm \
+    UnpackedTarball/libjpeg-turbo/simd/i386/jcgray-avx2.asm \
+    UnpackedTarball/libjpeg-turbo/simd/i386/jcsample-avx2.asm \
+    UnpackedTarball/libjpeg-turbo/simd/i386/jdcolor-avx2.asm \
+    UnpackedTarball/libjpeg-turbo/simd/i386/jdmerge-avx2.asm \
+    UnpackedTarball/libjpeg-turbo/simd/i386/jdsample-avx2.asm \
+    UnpackedTarball/libjpeg-turbo/simd/i386/jfdctint-avx2.asm \
+    UnpackedTarball/libjpeg-turbo/simd/i386/jidctint-avx2.asm \
+    UnpackedTarball/libjpeg-turbo/simd/i386/jquanti-avx2.asm \
+))
+
+else
+
+$(eval $(call gb_StaticLibrary_add_generated_cobjects,libjpeg-turbo,\
+    UnpackedTarball/libjpeg-turbo/jsimd_none \
+))
+
+endif
+
+else
+
+$(eval $(call gb_StaticLibrary_add_generated_cobjects,libjpeg-turbo,\
+    UnpackedTarball/libjpeg-turbo/jsimd_none \
+))
+
+endif
+
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/libjpeg-turbo/UnpackedTarball_libjpeg-turbo.mk 
b/external/libjpeg-turbo/UnpackedTarball_libjpeg-turbo.mk
index a99df67bb011..22777b863e4c 100644
--- a/external/libjpeg-turbo/UnpackedTarball_libjpeg-turbo.mk
+++ b/external/libjpeg-turbo/UnpackedTarball_libjpeg-turbo.mk
@@ -11,14 +11,13 @@ $(eval $(call 
gb_UnpackedTarball_UnpackedTarball,libjpeg-turbo))
 
 $(eval $(call 
gb_UnpackedTarball_set_tarball,libjpeg-turbo,$(LIBJPEG_TURBO_TARBALL)))
 
-$(eval $(call gb_UnpackedTarball_update_autoconf_configs,libjpeg-turbo))
-
 $(eval $(call gb_UnpackedTarball_set_patchlevel,libjpeg-turbo,0))
 
-$(eval $(call gb_UnpackedTarball_add_patches,libjpeg-turbo,\
-       external/libjpeg-turbo/jpeg-turbo.build.patch.1 \
-       $(if $(filter 
WNT,$(OS)),external/libjpeg-turbo/jpeg-turbo.win_build.patch.1) \
-       external/libjpeg-turbo/ubsan.patch \
-))
+# jconfigint.h and jconfig.h generated via
+# cmake -DENABLE_STATIC:BOOL=ON -DENABLE_SHARED:BOOL=NO -DWITH_JAVA:BOOL=OFF 
-DWITH_TURBOJPEG:BOOL=OFF -DWITH_SIMD:BOOL=ON
+# and then tweaking
+
+$(eval $(call 
gb_UnpackedTarball_add_file,libjpeg-turbo,jconfigint.h,external/libjpeg-turbo/jconfigint.h))
+$(eval $(call 
gb_UnpackedTarball_add_file,libjpeg-turbo,jconfig.h,external/libjpeg-turbo/jconfig.h))
 
 # vim: set noet sw=4 ts=4:
diff --git a/external/libjpeg-turbo/jconfig.h b/external/libjpeg-turbo/jconfig.h
new file mode 100644
index 000000000000..7cff688125a9
--- /dev/null
+++ b/external/libjpeg-turbo/jconfig.h
@@ -0,0 +1,86 @@
+/* Version ID for the JPEG library.
+ * Might be useful for tests like "#if JPEG_LIB_VERSION >= 60".
+ */
+#define JPEG_LIB_VERSION 62
+
+/* libjpeg-turbo version */
+#define LIBJPEG_TURBO_VERSION 2.1.1
+
+/* libjpeg-turbo version in integer form */
+#define LIBJPEG_TURBO_VERSION_NUMBER 2001001
+
+/* Support arithmetic encoding */
+#define C_ARITH_CODING_SUPPORTED 1
+
+/* Support arithmetic decoding */
+#define D_ARITH_CODING_SUPPORTED 1
+
+/* Support in-memory source/destination managers */
+#define MEM_SRCDST_SUPPORTED 1
+
+/* Use accelerated SIMD routines. */
+/* #undef WITH_SIMD */
+
+/*
+ * Define BITS_IN_JSAMPLE as either
+ *   8   for 8-bit sample values (the usual setting)
+ *   12  for 12-bit sample values
+ * Only 8 and 12 are legal data precisions for lossy JPEG according to the
+ * JPEG standard, and the IJG code does not support anything else!
+ * We do not support run-time selection of data precision, sorry.
+ */
+
+#define BITS_IN_JSAMPLE 8 /* use 8 or 12 */
+
+/* Define to 1 if you have the <locale.h> header file. */
+/* undef HAVE_LOCALE_H */
+
+/* Define to 1 if you have the <stddef.h> header file. */
+#define HAVE_STDDEF_H 1
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define if you need to include <sys/types.h> to get size_t. */
+#define NEED_SYS_TYPES_H 1
+
+/* Define if you have BSD-like bzero and bcopy in <strings.h> rather than
+   memset/memcpy in <string.h>. */
+/* #undef NEED_BSD_STRINGS */
+
+/* Define to 1 if the system has the type `unsigned char'. */
+#define HAVE_UNSIGNED_CHAR 1
+
+/* Define to 1 if the system has the type `unsigned short'. */
+#define HAVE_UNSIGNED_SHORT 1
+
+/* Compiler does not support pointers to undefined structures. */
+/* #undef INCOMPLETE_TYPES_BROKEN */
+
+/* Define if your (broken) compiler shifts signed values as if they were
+   unsigned. */
+/* #undef RIGHT_SHIFT_IS_UNSIGNED */
+
+/* Define to empty if `const' does not conform to ANSI C. */
+/* #undef const */
+
+/* Define to `unsigned int' if <sys/types.h> does not define. */
+/* #undef size_t */
+
+/* Extra Libreoffice config for windows */
+#ifdef _MSC_VER
+
+/* Define "boolean" as unsigned char, not int, per Windows custom */
+#ifndef __RPCNDR_H__ /* don't conflict if rpcndr.h already read */
+typedef unsigned char boolean;
+#endif
+#define HAVE_BOOLEAN /* prevent jmorecfg.h from redefining it */
+
+/* Define "INT32" as int, not long, per Windows custom */
+#if !(defined(_BASETSD_H_) || defined(_BASETSD_H)) /* don't conflict if 
basetsd.h already read */
+typedef short INT16;
+typedef signed int INT32;
+#endif
+#define XMD_H /* prevent jmorecfg.h from redefining it */
+
+#endif /* _MSC_VER */
diff --git a/external/libjpeg-turbo/jconfigint.h 
b/external/libjpeg-turbo/jconfigint.h
new file mode 100644
index 000000000000..478a4d338b30
--- /dev/null
+++ b/external/libjpeg-turbo/jconfigint.h
@@ -0,0 +1,51 @@
+#include <sal/types.h>
+
+/* libjpeg-turbo build number */
+#define BUILD "20211020"
+
+/* Compiler's inline keyword */
+#undef inline
+
+/* How to obtain function inlining. */
+#if defined _MSC_VER
+#define INLINE __forceinline
+#elif defined __GNUC__
+#define INLINE __attribute__((always_inline)) inline
+#else
+#define INLINE inline
+#endif
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME "libjpeg-turbo"
+
+/* Version number of package */
+#define VERSION "2.1.1"
+
+/* The size of `size_t', as computed by sizeof. */
+/* #undef SIZEOF_SIZE_T */
+
+#if defined(__GNUC__) && SAL_TYPES_SIZEOFLONG == SIZEOF_SIZE_T
+/* Define if your compiler has __builtin_ctzl() and sizeof(unsigned long) == 
sizeof(size_t). */
+#define HAVE_BUILTIN_CTZL
+#endif
+
+/* Define to 1 if you have the <intrin.h> header file. */
+/* #undef HAVE_INTRIN_H */
+
+#if defined(_MSC_VER) && defined(HAVE_INTRIN_H)
+#if (SIZEOF_SIZE_T == 8)
+#define HAVE_BITSCANFORWARD64
+#elif (SIZEOF_SIZE_T == 4)
+#define HAVE_BITSCANFORWARD
+#endif
+#endif
+
+#if defined(__has_attribute)
+#if __has_attribute(fallthrough)
+#define FALLTHROUGH __attribute__((fallthrough));
+#else
+#define FALLTHROUGH
+#endif
+#else
+#define FALLTHROUGH
+#endif
diff --git a/external/libjpeg-turbo/jpeg-turbo.build.patch.1 
b/external/libjpeg-turbo/jpeg-turbo.build.patch.1
deleted file mode 100644
index 4d01ad4b9aed..000000000000
--- a/external/libjpeg-turbo/jpeg-turbo.build.patch.1
+++ /dev/null
@@ -1,58 +0,0 @@
-diff -ur jpeg.org/Makefile.am jpeg/Makefile.am
---- jpeg.org/Makefile.am       2014-11-14 12:05:43.349386578 +0100
-+++ jpeg/Makefile.am   2014-11-14 12:06:21.005387021 +0100
-@@ -174,8 +174,6 @@
-       rm -rf `find $(distdir) -name .svn`
- 
- 
--SUBDIRS += md5
--
- if WITH_12BIT
- 
- TESTORIG = testorig12.jpg
-diff -ru jpeg-turbo.orig/Makefile.in jpeg-turbo/Makefile.in
---- jpeg-turbo.orig/Makefile.in        2015-09-21 20:48:45.000000000 +0200
-+++ jpeg-turbo/Makefile.in     2015-11-22 16:17:10.326527000 +0100
-@@ -405,7 +405,7 @@
- ETAGS = etags
- CTAGS = ctags
- CSCOPE = cscope
--DIST_SUBDIRS = java simd md5
-+DIST_SUBDIRS = java simd
- am__DIST_COMMON = $(dist_man1_MANS) $(srcdir)/Makefile.in \
-       $(srcdir)/config.h.in $(srcdir)/jconfig.h.in \
-       $(srcdir)/jconfigint.h.in $(srcdir)/libjpeg.map.in \
-@@ -622,7 +622,7 @@
-       jidctflt.c jidctfst.c jidctint.c jidctred.c jquant1.c \
-       jquant2.c jutils.c jmemmgr.c jmemnobs.c $(am__append_4) \
-       $(am__append_5) $(am__append_6) $(am__append_11)
--SUBDIRS = java $(am__append_10) md5
-+SUBDIRS = java $(am__append_10)
- @WITH_TURBOJPEG_TRUE@libturbojpeg_la_SOURCES = $(libjpeg_la_SOURCES) \
- @WITH_TURBOJPEG_TRUE@ turbojpeg.c turbojpeg.h transupp.c \
- @WITH_TURBOJPEG_TRUE@ transupp.h jdatadst-tj.c jdatasrc-tj.c \
-diff -ru jpeg-turbo.orig/configure jpeg-turbo/configure
---- jpeg-turbo.orig/configure   2015-09-21 20:48:41.000000000 +0200
-+++ jpeg-turbo/configure        2015-11-22 15:23:25.387071000 +0100
-@@ -14630,9 +14630,7 @@
- $as_echo "yes" >&6; }
- else
-   rm -rf conftest*
--  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
--$as_echo "no" >&6; }
--  as_fn_error $? "configuration problem: maybe object file format mismatch." 
"$LINENO" 5
-+  $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
- fi
-
-
-@@ -14828,9 +14826,7 @@
- $as_echo "yes" >&6; }
- else
-   rm -rf conftest*
--  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
--$as_echo "no" >&6; }
--  as_fn_error $? "configuration problem: maybe object file format mismatch." 
"$LINENO" 5
-+  $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
- fi
-
-
diff --git a/external/libjpeg-turbo/jpeg-turbo.win_build.patch.1 
b/external/libjpeg-turbo/jpeg-turbo.win_build.patch.1
deleted file mode 100644
index 00b642703f3a..000000000000
--- a/external/libjpeg-turbo/jpeg-turbo.win_build.patch.1
+++ /dev/null
@@ -1,54 +0,0 @@
-Copy definitions of "boolean", "INT16", "INT32" from win/jconfig.h.in
-
-... into jconfig.h.in, which is the one we use via configure.
-
-diff -ru jpeg-turbo.orig/simd/Makefile.in jpeg-turbo/simd/Makefile.in
---- jpeg-turbo.orig/simd/Makefile.in   2015-09-21 20:48:45.000000000 +0200
-+++ jpeg-turbo/simd/Makefile.in        2015-11-22 10:52:46.975285184 +0100
-@@ -769,8 +769,8 @@
- .asm.lo:
-       $(AM_V_GEN) $(LIBTOOL) $(AM_V_lt) --mode=compile --tag NASM 
$(srcdir)/nasm_lt.sh $(AM_V_lt) $(NASM) $(NAFLAGS) -I$(srcdir) -I. $< -o $@
- 
--jsimdcfg.inc: $(srcdir)/jsimdcfg.inc.h ../jpeglib.h ../jconfig.h ../jmorecfg.h
--      $(AM_V_GEN) $(CPP) -I$(top_builddir) -I$(top_builddir)/simd 
$(srcdir)/jsimdcfg.inc.h | $(EGREP) "^[\;%]|^\ %" | sed 's%_cpp_protection_%%' 
| sed 's@% define@%define@g' > $@
-+jsimdcfg.inc: $(top_srcdir)/win/jsimdcfg.inc
-+      cp $< $@
- 
- # Tell versions [3.59,3.63) of GNU make to not export all variables.
- # Otherwise a system limit (for SysV at least) may be exceeded.
-diff -ru jpeg-turbo.orig/configure jpeg-turbo/configure
---- jpeg-turbo.orig/configure   2015-11-22 15:57:23.702656000 +0100
-+++ jpeg-turbo/configure        2015-11-22 15:59:37.084285000 +0100
-@@ -13931,7 +13931,7 @@
-
- else
-
--$as_echo "#define NEED_BSD_STRINGS 1" >>confdefs.h
-+$as_echo "#undef NEED_BSD_STRINGS" >>confdefs.h
-
- fi
- done
---- jpeg-turbo/jconfig.h.in.orig       2016-11-02 22:43:55.012600000 +0100
-+++ jpeg-turbo/jconfig.h.in    2016-11-02 22:45:01.905400000 +0100
-@@ -71,3 +71,21 @@
- 
- /* Define to `unsigned int' if <sys/types.h> does not define. */
- #undef size_t
-+
-+#ifdef _MSC_VER
-+
-+/* Define "boolean" as unsigned char, not int, per Windows custom */
-+#ifndef __RPCNDR_H__          /* don't conflict if rpcndr.h already read */
-+typedef unsigned char boolean;
-+#endif
-+#define HAVE_BOOLEAN          /* prevent jmorecfg.h from redefining it */
-+
-+/* Define "INT32" as int, not long, per Windows custom */
-+#if !(defined(_BASETSD_H_) || defined(_BASETSD_H))   /* don't conflict if 
basetsd.h already read */
-+typedef short INT16;
-+typedef signed int INT32;
-+#endif
-+#define XMD_H                   /* prevent jmorecfg.h from redefining it */
-+
-+#endif /* _MSC_VER */
-+
diff --git a/external/libjpeg-turbo/ubsan.patch 
b/external/libjpeg-turbo/ubsan.patch
deleted file mode 100644
index 33d3c15a8b3c..000000000000
--- a/external/libjpeg-turbo/ubsan.patch
+++ /dev/null
@@ -1,39 +0,0 @@
---- jcphuff.c
-+++ jcphuff.c
-@@ -14,6 +14,7 @@
-  * suspension.
-  */
- 
-+#include <stdint.h>
- #define JPEG_INTERNALS
- #include "jinclude.h"
- #include "jpeglib.h"
-@@ -255,7 +256,7 @@
-     if (c == 0xFF) {            /* need to stuff a zero byte? */
-       emit_byte(entropy, 0);
-     }
--    put_buffer <<= 8;
-+    put_buffer = (uint_least32_t) put_buffer << 8;
-     put_bits -= 8;
-   }
- 
---- jdarith.c
-+++ jdarith.c
-@@ -306,7 +306,7 @@
-       while (m >>= 1)
-         if (arith_decode(cinfo, st)) v |= m;
-       v += 1; if (sign) v = -v;
--      entropy->last_dc_val[ci] += v;
-+      entropy->last_dc_val[ci] = (entropy->last_dc_val[ci] + v) & 0xffff;
-     }
- 
-     /* Scale and output the DC coefficient (assumes jpeg_natural_order[0]=0) 
*/
-@@ -564,7 +564,7 @@
-       while (m >>= 1)
-         if (arith_decode(cinfo, st)) v |= m;
-       v += 1; if (sign) v = -v;
--      entropy->last_dc_val[ci] += v;
-+      entropy->last_dc_val[ci] = (entropy->last_dc_val[ci] + v) & 0xffff;
-     }
- 
-     if (block)
diff --git a/external/libxml2/ExternalPackage_libxml2.mk 
b/external/libxml2/ExternalPackage_libxml2.mk
index d38eb68df0cb..6338fb20b9df 100644
--- a/external/libxml2/ExternalPackage_libxml2.mk
+++ b/external/libxml2/ExternalPackage_libxml2.mk
@@ -21,7 +21,7 @@ else # COM=MSC
 $(eval $(call 
gb_ExternalPackage_add_file,libxml2,$(LIBO_URE_LIB_FOLDER)/libxml2.dll,win32/bin.msvc/libxml2.dll))
 endif
 else # OS!=WNT
-$(eval $(call 
gb_ExternalPackage_add_file,libxml2,$(LIBO_URE_LIB_FOLDER)/libxml2.so.2,.libs/libxml2.so.2.9.$(LIBXML_VERSION_MICRO)))
+$(eval $(call 
gb_ExternalPackage_add_file,libxml2,$(LIBO_URE_LIB_FOLDER)/libxml2.so.2,.libs/libxml2.so.2.10.$(LIBXML_VERSION_MICRO)))
 endif
 endif # DISABLE_DYNLOADING
 
diff --git a/external/libxml2/UnpackedTarball_libxml2.mk 
b/external/libxml2/UnpackedTarball_libxml2.mk
index 83df02849cb3..8c81c3d26e4c 100644
--- a/external/libxml2/UnpackedTarball_libxml2.mk
+++ b/external/libxml2/UnpackedTarball_libxml2.mk
@@ -14,7 +14,6 @@ $(eval $(call 
gb_UnpackedTarball_set_tarball,libxml2,$(LIBXML_TARBALL),,libxml2)
 $(eval $(call gb_UnpackedTarball_update_autoconf_configs,libxml2))
 
 $(eval $(call gb_UnpackedTarball_add_patches,libxml2,\
-       external/libxml2/libxml2-config.patch.1 \
        external/libxml2/libxml2-global-symbols.patch \
        external/libxml2/libxml2-vc10.patch \
        $(if $(filter ANDROID,$(OS)),external/libxml2/libxml2-android.patch) \
@@ -23,4 +22,6 @@ $(eval $(call gb_UnpackedTarball_add_patches,libxml2,\
                external/libxml2/libxml2-icu.patch.0) \
 ))
 
+$(eval $(call 
gb_UnpackedTarball_add_file,libxml2,xml2-config.in,external/libxml2/xml2-config.in))
+
 # vim: set noet sw=4 ts=4:
diff --git a/external/libxml2/libxml2-android.patch 
b/external/libxml2/libxml2-android.patch
index 42af83274026..acf9b17e02db 100644
--- a/external/libxml2/libxml2-android.patch
+++ b/external/libxml2/libxml2-android.patch
@@ -2,9 +2,9 @@
 +++ misc/build/libxml2-2.7.6/Makefile.in
 @@ -1635,7 +1635,7 @@
        $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
- check: $(BUILT_SOURCES)
-       $(MAKE) $(AM_MAKEFLAGS) check-recursive
--all-am: Makefile $(PROGRAMS) $(LTLIBRARIES) $(SCRIPTS) $(MANS) $(DATA) \
+       $(MAKE) $(AM_MAKEFLAGS) check-local
+ check: check-recursive
+-all-am: Makefile $(PROGRAMS) $(LTLIBRARIES) $(SCRIPTS) $(DATA) \
 +all-am: Makefile $(LTLIBRARIES) \
                config.h
  install-binPROGRAMS: install-libLTLIBRARIES
diff --git a/external/libxml2/libxml2-config.patch.1 
b/external/libxml2/libxml2-config.patch.1
deleted file mode 100644
index 5a2ef1485e92..000000000000
--- a/external/libxml2/libxml2-config.patch.1
+++ /dev/null
@@ -1,43 +0,0 @@
-Hack the xml2-config to return paths into WORKDIR.
-
---- a/xml2-config.in   2009-12-17 11:45:20.000000000 +0000
-+++ b/xml2-config.in   2009-12-17 11:45:36.000000000 +0000
-@@ -1,9 +1,14 @@
- #! /bin/sh
- 
--prefix=@prefix@
--exec_prefix=@exec_prefix@
--includedir=@includedir@
--libdir=@libdir@
-+#prefix=@prefix@
-+#exec_prefix=@exec_prefix@
-+#includedir=@includedir@
-+#libdir=@libdir@
-+
-+prefix=${WORKDIR}/UnpackedTarball/libxml2
-+exec_prefix=${WORKDIR}/UnpackedTarball/libxml2
-+includedir=${WORKDIR}/UnpackedTarball/libxml2/include
-+libdir=${WORKDIR}/UnpackedTarball/libxml2/.libs
- cflags=
- libs=
- 
-@@ -67,7 +72,8 @@
-       ;;
- 
-     --cflags)
--        cflags="@XML_INCLUDEDIR@ @XML_CFLAGS@"
-+        #cflags="@XML_INCLUDEDIR@ @XML_CFLAGS@"
-+        cflags="-I${includedir}"
-               ;;
- 
-     --libtool-libs)
-@@ -91,7 +96,8 @@
-             libs="@XML_LIBDIR@ $libs"
-         fi
- 
--        libs="$libs @WIN32_EXTRA_LIBADD@"
-+        #libs="$libs @WIN32_EXTRA_LIBADD@"
-+        libs="-L${libdir} -lxml2 -lm"
-         ;;
- 
-     *)
diff --git a/external/libxml2/xml2-config.in b/external/libxml2/xml2-config.in
new file mode 100644
index 000000000000..164508e47e67
--- /dev/null
+++ b/external/libxml2/xml2-config.in
@@ -0,0 +1,28 @@
+#! /bin/sh
+
+while test $# -gt 0; do
+    case "$1" in
+    -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
+    *) optarg= ;;
+    esac
+
+    case "$1" in
+    --version)
+       echo @VERSION@
+       exit 0
+        ;;
+    --cflags)
+        cflags="$LIBXML_CFLAGS"
+        ;;
+    --libs)
+        libs="$LIBXML_LIBS"
+        ;;
+    esac
+    shift
+done
+
+if test -n "$cflags$libs"; then
+    echo $cflags $libs
+fi
+
+exit 0
diff --git a/external/nss/UnpackedTarball_nss.mk 
b/external/nss/UnpackedTarball_nss.mk
index 4f8499e8a835..ab64f95de36a 100644
--- a/external/nss/UnpackedTarball_nss.mk
+++ b/external/nss/UnpackedTarball_nss.mk
@@ -16,7 +16,6 @@ $(eval $(call 
gb_UnpackedTarball_update_autoconf_configs,nss,nspr/build/autoconf
 $(eval $(call gb_UnpackedTarball_add_patches,nss,\
     external/nss/nss.patch \
     external/nss/nss.aix.patch \
-    external/nss/nss-3.13.5-zlib-werror.patch \
     external/nss/nss_macosx.patch \
     external/nss/nss-win32-make.patch.1 \
     external/nss/ubsan.patch.0 \
@@ -24,7 +23,7 @@ $(eval $(call gb_UnpackedTarball_add_patches,nss,\
     external/nss/nss.vs2015.patch \
     external/nss/nss.vs2015.pdb.patch \
     external/nss/nss.bzmozilla1238154.patch \
-       external/nss/nss-bz1646594.patch.1 \
+    external/nss/nss-bz1646594.patch.1 \
     external/nss/macos-dlopen.patch.0 \
     external/nss/nss-restore-manual-pre-dependencies.patch.1 \
     $(if $(filter iOS,$(OS)), \
diff --git a/external/nss/asan.patch.1 b/external/nss/asan.patch.1
index 7dfd6ed4e782..ccabd446ebac 100644
--- a/external/nss/asan.patch.1
+++ b/external/nss/asan.patch.1
@@ -1,12 +1,12 @@
 diff -ur nss.org/nss/coreconf/Linux.mk nss/nss/coreconf/Linux.mk
 --- nss.org/nss/coreconf/Linux.mk      2014-05-06 04:36:01.817838877 +0200
 +++ nss/nss/coreconf/Linux.mk  2014-05-06 04:37:25.387835456 +0200
-@@ -146,7 +146,7 @@
+@@ -157,7 +157,7 @@
  # we don't use -z defs there.
  # Also, -z defs conflicts with Address Sanitizer, which emits relocations
  # against the libsanitizer runtime built into the main executable.
 -ZDEFS_FLAG            = -Wl,-z,defs
 +ZDEFS_FLAG            =
- DSO_LDOPTS            += $(if $(findstring 2.11.90.0.8,$(shell ld 
-v)),,$(ZDEFS_FLAG)) $(if $(filter-out 
$(OS),ANDROID),-Wl$(COMMA)-z$(COMMA)origin '-Wl$(COMMA)-rpath$(COMMA)$$ORIGIN')
- LDFLAGS                       += $(ARCHFLAG) -z noexecstack
+ DSO_LDOPTS     += $(if $(findstring 2.11.90.0.8,$(shell $(LD) 
-v)),,$(ZDEFS_FLAG)) $(if $(filter-out 
$(OS),ANDROID),-Wl$(COMMA)-z$(COMMA)origin '-Wl$(COMMA)-rpath$(COMMA)$$ORIGIN')
+ LDFLAGS                  += $(ARCHFLAG) -z noexecstack
  
diff --git a/external/nss/clang-cl.patch.0 b/external/nss/clang-cl.patch.0
index 1d615c2397d8..e20aab3b9ff1 100644
--- a/external/nss/clang-cl.patch.0
+++ b/external/nss/clang-cl.patch.0
@@ -14,7 +14,7 @@
  #pragma intrinsic(_InterlockedExchange)
 --- nspr/pr/include/prbit.h
 +++ nspr/pr/include/prbit.h
-@@ -14,7 +14,7 @@
+@@ -15,7 +15,7 @@
  */
  #if defined(_WIN32) && (_MSC_VER >= 1300) && \
      (defined(_M_IX86) || defined(_M_X64) || defined(_M_ARM) || \
@@ -23,7 +23,7 @@
  # include <intrin.h>
  # pragma  intrinsic(_BitScanForward,_BitScanReverse)
  __forceinline static int __prBitScanForward32(unsigned int val)
-@@ -32,7 +32,7 @@
+@@ -33,7 +33,7 @@
  # define pr_bitscan_ctz32(val)  __prBitScanForward32(val)
  # define pr_bitscan_clz32(val)  __prBitScanReverse32(val)
  # define  PR_HAVE_BUILTIN_BITSCAN32
@@ -32,7 +32,7 @@
         (defined(__i386__) || defined(__x86_64__) || defined(__arm__) || \
          defined(__aarch64__))
  # define pr_bitscan_ctz32(val)  __builtin_ctz(val)
-@@ -136,7 +136,7 @@
+@@ -138,7 +138,7 @@
  */
  
  #if defined(_MSC_VER) && (defined(_M_IX86) || defined(_M_AMD64) || \
@@ -61,9 +61,20 @@
  #pragma deprecated(CERTDB_VALID_PEER)
  #endif
  #define CERTDB_VALID_PEER CERTDB_TERMINAL_RECORD
+--- nss/lib/freebl/blapit.h
++++ nss/lib/freebl/blapit.h
+@@ -53,7 +53,7 @@
+  * Mark the old defines as deprecated. This will warn code that expected
+  * DSA1 only that they need to change if the are to support DSA2.
+  */
+-#if defined(__GNUC__) && (__GNUC__ > 3)
++#if defined(__GNUC__) && (__GNUC__ > 3) || defined __clang__
+ /* make GCC warn when we use these #defines */
+ typedef int __BLAPI_DEPRECATED __attribute__((deprecated));
+ #define DSA_SUBPRIME_LEN ((__BLAPI_DEPRECATED)DSA1_SUBPRIME_LEN)
 --- nss/lib/util/pkcs11n.h
 +++ nss/lib/util/pkcs11n.h
-@@ -426,7 +426,7 @@
+@@ -563,7 +563,7 @@
  /* keep the old value for compatibility reasons*/
  #define CKT_NSS_MUST_VERIFY ((__CKT_NSS_MUST_VERIFY)(CKT_NSS + 4))
  #else
@@ -80,7 +91,7 @@
 # in the outer pkcs11t.h:
 --- nss/lib/util/pkcs11t.h
 +++ nss/lib/util/pkcs11t.h
-@@ -72,7 +72,14 @@
+@@ -78,7 +78,14 @@
  #define CK_INVALID_HANDLE 0
  
  /* pack */
@@ -95,7 +106,7 @@
  
  typedef struct CK_VERSION {
      CK_BYTE major; /* integer portion of version number */
-@@ -1795,6 +1802,13 @@
+@@ -2586,6 +2593,13 @@
  #include "pkcs11n.h"
  
  /* undo packing */
diff --git a/external/nss/macos-dlopen.patch.0 
b/external/nss/macos-dlopen.patch.0
index 1889b8df7cd3..e8abc8f59c69 100644
--- a/external/nss/macos-dlopen.patch.0
+++ b/external/nss/macos-dlopen.patch.0
@@ -1,6 +1,6 @@
 --- nspr/pr/src/linking/prlink.c
 +++ nspr/pr/src/linking/prlink.c
-@@ -799,7 +799,7 @@
+@@ -555,7 +555,7 @@
           * The reason is that DARWIN's dlopen ignores the provided path
           * and checks for the plain filename in DYLD_LIBRARY_PATH,
           * which could load an unexpected version of a library. */
diff --git a/external/nss/nss-3.13.5-zlib-werror.patch 
b/external/nss/nss-3.13.5-zlib-werror.patch
deleted file mode 100644
index 0cdbf7808f81..000000000000
--- a/external/nss/nss-3.13.5-zlib-werror.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- a/a/nss/lib/zlib/gzguts.h  2010-08-22 03:07:03.000000000 +0200
-+++ b/b/nss/lib/zlib/gzguts.h  2012-07-17 08:52:14.821552788 +0200
-@@ -26,6 +26,10 @@
- #  define write _write
- #  define close _close
- #endif
-+
-+#ifndef _WIN32
-+#include <unistd.h>
-+#endif
- 
- #ifdef NO_DEFLATE       /* for compatibility with old definition */
- #  define NO_GZCOMPRESS
diff --git a/external/nss/nss-android.patch.1 b/external/nss/nss-android.patch.1
index 05172eaad16a..707fcf99afe0 100644
--- a/external/nss/nss-android.patch.1
+++ b/external/nss/nss-android.patch.1
@@ -1,7 +1,7 @@
 diff -ur nss.org/nspr/build/autoconf/config.sub 
nss/nspr/build/autoconf/config.sub
 --- nss.org/nspr/build/autoconf/config.sub     2017-09-07 15:29:45.031246453 
+0200
 +++ nss/nspr/build/autoconf/config.sub 2017-09-07 15:32:13.087235423 +0200
-@@ -111,6 +111,11 @@
+@@ -110,6 +110,11 @@
      exit 1;;
  esac
  
@@ -16,7 +16,7 @@ diff -ur nss.org/nspr/build/autoconf/config.sub 
nss/nspr/build/autoconf/config.s
 diff -ur nss.org/nspr/configure nss/nspr/configure
 --- nss.org/nspr/configure     2017-09-07 15:29:45.018246359 +0200
 +++ nss/nspr/configure 2017-09-07 15:31:47.604075663 +0200
-@@ -2737,18 +2739,15 @@
+@@ -2728,18 +2728,15 @@
      esac
  
          AS="$android_toolchain"/bin/"$android_tool_prefix"-as
@@ -41,7 +41,7 @@ diff -ur nss.org/nspr/configure nss/nspr/configure
 diff -ur nss.org/nss/Makefile nss/nss/Makefile
 --- nss.org/nss/Makefile       2017-09-07 15:29:44.933245745 +0200
 +++ nss/nss/Makefile   2017-09-07 15:32:04.347181076 +0200
-@@ -62,7 +62,7 @@
+@@ -65,7 +65,7 @@
  
  ifeq ($(OS_TARGET),Android)
  NSPR_CONFIGURE_OPTS += --with-android-ndk=$(ANDROID_NDK) \
@@ -74,7 +74,7 @@ diff -ur nss.org/nss/Makefile nss/nss/Makefile
 diff -ur nss/nss/coreconf/arch.mk nss/nss/coreconf/arch.mk
 --- nss/nss/coreconf/arch.mk   2019-11-01 10:29:44.933245745 +0100
 +++ nss/nss/coreconf/arch.mk   2019-11-01 10:32:04.347181076 +0100
-@@ -234,7 +234,15 @@
+@@ -213,7 +213,15 @@
  #
  # this should be  configurable from the user
  #
diff --git a/external/nss/nss-bz1646594.patch.1 
b/external/nss/nss-bz1646594.patch.1
index e6c75922a7dc..cffb9f5fe61d 100644
--- a/external/nss/nss-bz1646594.patch.1
+++ b/external/nss/nss-bz1646594.patch.1
@@ -2,7 +2,7 @@ regression from 
https://bugzilla.mozilla.org/show_bug.cgi?id=1646594
 
 --- nss/nss/coreconf/arch.mk.orig2     2020-08-18 14:33:21.295252404 +0200
 +++ nss/nss/coreconf/arch.mk   2020-08-18 14:33:46.360320806 +0200
-@@ -116,8 +116,10 @@
+@@ -94,8 +94,10 @@
        OS_RELEASE := $(word 1,$(OS_RELEASE)).$(word 2,$(OS_RELEASE))
      endif
      KERNEL = Linux
diff --git a/external/nss/nss-ios.patch b/external/nss/nss-ios.patch
index 4263ecbe5f3d..58239f718978 100644
--- a/external/nss/nss-ios.patch
+++ b/external/nss/nss-ios.patch
@@ -1,6 +1,6 @@
 --- a/a/nss/Makefile
 +++ a/a/nss/Makefile
-@@ -96,13 +96,11 @@
+@@ -91,13 +91,11 @@
  ifdef NS_USE_GCC
  NSPR_CONFIGURE_ENV = CC=gcc CXX=g++
  endif
@@ -16,7 +16,7 @@
  endif
  
  #
-@@ -140,7 +140,6 @@
+@@ -140,7 +138,6 @@
  
  build_nspr: $(NSPR_CONFIG_STATUS)
        $(MAKE) -C $(CORE_DEPTH)/../nspr/$(OBJDIR_NAME)
@@ -37,7 +37,7 @@
  
 --- a/a/nss/lib/nss/nssinit.c
 +++ a/a/nss/lib/nss/nssinit.c
-@@ -278,6 +278,7 @@
+@@ -275,6 +275,7 @@
                            const char *secmodprefix,
                            char **retoldpath, char **retnewpath)
  {
@@ -45,7 +45,7 @@
      char *path, *oldpath = NULL, *lastsep;
      int len, path_len, secmod_len, dll_len;
  
-@@ -309,6 +309,10 @@
+@@ -309,6 +310,10 @@
      }
      *retoldpath = oldpath;
      *retnewpath = path;
@@ -58,7 +58,7 @@
  
 --- a/a/nss/lib/pk11wrap/pk11load.c
 +++ a/a/nss/lib/pk11wrap/pk11load.c
-@@ -389,6 +389,8 @@
+@@ -390,6 +390,8 @@
  /*
   * load a new module into our address space and initialize it.
   */
@@ -67,15 +67,15 @@
  SECStatus
  secmod_LoadPKCS11Module(SECMODModule *mod, SECMODModule **oldModule)
  {
-@@ -465,6 +465,7 @@
-         /* load the library. If this succeeds, then we have to remember to
+@@ -468,6 +470,7 @@
+ /* load the library. If this succeeds, then we have to remember to
           * unload the library if anything goes wrong from here on out...
           */
 +#ifndef NSS_STATIC_PKCS11 // With NSS_STATIC_PKCS11, the only module wodule 
we load here is nssckbi
-         library = PR_LoadLibrary(mod->dllName);
-         mod->library = (void *)library;
- 
-@@ -487,6 +487,11 @@
+ #if defined(_WIN32)
+         if (nssUTF8_Length(mod->dllName, NULL)) {
+             wchar_t *dllNameWide = _NSSUTIL_UTF8ToWide(mod->dllName);
+@@ -507,6 +510,11 @@
              mod->moduleDBFunc = (void *)
                  PR_FindSymbol(library, "NSS_ReturnModuleSpecData");
          }
@@ -87,7 +87,7 @@
          if (mod->moduleDBFunc == NULL)
              mod->isModuleDB = PR_FALSE;
          if ((ientry == NULL) && (fentry == NULL)) {
-@@ -624,10 +624,12 @@
+@@ -643,10 +651,12 @@
      }
  fail:
      mod->functionList = NULL;
@@ -124,7 +124,7 @@
      PRLibrary *handle;
      const char *name = getLibName();
  
-@@ -47,32 +47,42 @@
+@@ -47,32 +48,42 @@
      if (handle) {
          PRFuncPtr address = PR_FindFunctionSymbol(handle, "FREEBL_GetVector");
          if (address) {
@@ -168,7 +168,7 @@
  }
  
  static const PRCallOnceType pristineCallOnce;
-@@ -837,6 +837,7 @@
+@@ -860,6 +871,7 @@
  void
  BL_Unload(void)
  {
@@ -176,7 +176,7 @@
      /* This function is not thread-safe, but doesn't need to be, because it is
       * only called from functions that are also defined as not thread-safe,
       * namely C_Finalize in softoken, and the SSL bypass shutdown callback 
called
-@@ -852,6 +852,7 @@
+@@ -872,6 +884,7 @@
          PR_UnloadLibrary(blLib);
  #endif
      }
@@ -186,7 +186,7 @@
  }
 --- a/a/nspr/build/autoconf/config.sub 2017-09-07 15:29:45.031246453 +0200
 +++ a/a/nspr/build/autoconf/config.sub 2017-09-07 15:32:13.087235423 +0200
-@@ -111,6 +111,9 @@
+@@ -110,6 +110,9 @@
      exit 1;;
  esac
  
@@ -198,7 +198,7 @@
  IFS="-" read field1 field2 field3 field4 <<EOF
 --- a/a/nspr/config/autoconf.mk.in
 +++ a/a/nspr/config/autoconf.mk.in
-@@ -67,7 +67,7 @@
+@@ -69,7 +69,7 @@
  MSC_VER               = @MSC_VER@
  AR            = @AR@
  AR_FLAGS      = @AR_FLAGS@
@@ -209,7 +209,7 @@
  RC            = @RC@
 --- a/a/nspr/configure
 +++ a/a/nspr/configure
-@@ -755,7 +755,7 @@
+@@ -2507,7 +2507,7 @@
  OBJDIR='$(OBJDIR_NAME)'
  OBJDIR_NAME=.
  OBJDIR_SUFFIX=OBJ
@@ -218,7 +218,7 @@
  NOSUCHFILE=/no-such-file
  LIBNSPR='-L$(dist_libdir) -lnspr$(MOD_MAJOR_VERSION)'
  LIBPLC='-L$(dist_libdir) -lplc$(MOD_MAJOR_VERSION)'
-@@ -3060,7 +3060,7 @@
+@@ -5571,7 +5571,7 @@
  LIB_SUFFIX=a
  DLL_SUFFIX=so
  ASM_SUFFIX=s
@@ -227,7 +227,7 @@
  PR_MD_ASFILES=
  PR_MD_CSRCS=
  PR_MD_ARCH_DIR=unix
-@@ -3904,7 +3904,7 @@
+@@ -6485,7 +6485,7 @@
      DSO_CFLAGS=-fPIC
      DSO_LDOPTS='-dynamiclib -compatibility_version 1 -current_version 1 
-all_load -install_name 
@__________________________________________________OOO/$@ 
-headerpad_max_install_names'
      _OPTIMIZE_FLAGS=-O2
@@ -238,7 +238,7 @@
      USE_PTHREADS=1
 --- a/a/nss/coreconf/ruleset.mk
 +++ a/a/nss/coreconf/ruleset.mk
-@@ -68,7 +68,7 @@
+@@ -45,7 +45,7 @@
  endif
  
  ifeq ($(MKPROG),)
@@ -249,7 +249,7 @@
  #
 --- a/a/nss/coreconf/Darwin.mk
 +++ a/a/nss/coreconf/Darwin.mk
-@@ -124,7 +124,7 @@
+@@ -116,7 +116,7 @@
     DSO_LDOPTS += --coverage
  endif
  
diff --git a/external/nss/nss-restore-manual-pre-dependencies.patch.1 
b/external/nss/nss-restore-manual-pre-dependencies.patch.1
index 06691b1ec957..ea034f0dc80f 100644
--- a/external/nss/nss-restore-manual-pre-dependencies.patch.1
+++ b/external/nss/nss-restore-manual-pre-dependencies.patch.1
@@ -68,7 +68,7 @@ summary:     Bug 1637083 Replace pre-dependency with shell 
hack r=rrelyea
        ck.h              \
 --- b/nss/manifest.mn  Wed May 13 19:00:40 2020 +0000
 +++ a/nss/manifest.mn  Tue May 12 21:33:43 2020 +0000
-@@ -23,6 +23,12 @@
+@@ -24,6 +24,12 @@
        # no real way to encode these in any sensible way
        $(MAKE) -C coreconf/nsinstall program
        $(MAKE) export
diff --git a/external/nss/nss-win32-make.patch.1 
b/external/nss/nss-win32-make.patch.1
index 7ba3df451ee6..6a3201a082a1 100644
--- a/external/nss/nss-win32-make.patch.1
+++ b/external/nss/nss-win32-make.patch.1
@@ -1,6 +1,6 @@
 --- nss/nss/coreconf/rules.mk.orig2    2014-06-03 15:30:01.667200000 +0200
 +++ nss/nss/coreconf/rules.mk  2014-06-03 15:30:14.537200000 +0200
-@@ -259,7 +259,7 @@
+@@ -174,7 +174,7 @@
  $(LIBRARY): $(OBJS) | $$(@D)/d
        rm -f $@
  ifeq (,$(filter-out _WIN%,$(NS_USE_GCC)_$(OS_TARGET)))
@@ -9,7 +9,7 @@
  else
        $(AR) cr $@ $(OBJS)
  endif
-@@ -297,7 +297,7 @@
+@@ -214,7 +214,7 @@
  ifdef NS_USE_GCC
        $(LINK_DLL) $(OBJS) $(SUB_SHLOBJS) $(EXTRA_LIBS) $(EXTRA_SHARED_LIBS) 
$(OS_LIBS) $(LD_LIBS) $(RES)
  else
diff --git a/external/nss/nss.aix.patch b/external/nss/nss.aix.patch
index 4b0c6bfb3261..10572f94717a 100644
--- a/external/nss/nss.aix.patch
+++ b/external/nss/nss.aix.patch
@@ -1,7 +1,7 @@
 diff -ru a/nspr/configure b/nspr/configure
 --- a/a/nspr/configure 2014-09-29 16:47:42.984012225 +0100
 +++ b/b/nspr/configure 2014-09-29 16:50:33.907375937 +0100
-@@ -6369,7 +6369,6 @@
+@@ -6325,7 +6325,6 @@
          AIX_LINK_OPTS='-brtl -bnso -berok'
          ;;
      esac
@@ -12,7 +12,7 @@ diff -ru a/nspr/configure b/nspr/configure
 diff -ru a/nspr/configure.in b/nspr/configure.in
 --- a/a/nspr/configure.in      2014-09-29 16:46:35.257394860 +0100
 +++ b/b/nspr/configure.in      2014-09-29 16:50:33.908375942 +0100
-@@ -1229,7 +1229,8 @@
+@@ -1180,7 +1180,8 @@
      AC_DEFINE(XP_UNIX)
      AC_DEFINE(AIX)
      AC_DEFINE(SYSV)
@@ -22,7 +22,7 @@ diff -ru a/nspr/configure.in b/nspr/configure.in
      AC_CHECK_HEADER(sys/atomic_op.h, AC_DEFINE(AIX_HAVE_ATOMIC_OP_H))
      case "${target_os}" in
      aix3.2*)
-@@ -1269,10 +1270,9 @@
+@@ -1220,10 +1221,9 @@
          AC_DEFINE(HAVE_SOCKLEN_T)
          AC_DEFINE(HAVE_FCNTL_FILE_LOCKING)
          USE_IPV6=1
@@ -48,7 +48,7 @@ diff -ru a/nspr/pr/src/Makefile.in b/nspr/pr/src/Makefile.in
 diff -ru a/nss/cmd/platlibs.mk b/nss/cmd/platlibs.mk
 --- a/a/nss/cmd/platlibs.mk    2014-09-29 16:47:42.987012253 +0100
 +++ b/b/nss/cmd/platlibs.mk    2014-09-29 16:50:33.910375955 +0100
-@@ -134,7 +134,7 @@
+@@ -171,7 +171,7 @@
        $(NULL)
  
  ifeq ($(OS_ARCH), AIX) 
@@ -57,7 +57,7 @@ diff -ru a/nss/cmd/platlibs.mk b/nss/cmd/platlibs.mk
  endif
  
  # $(PROGRAM) has NO explicit dependencies on $(EXTRA_SHARED_LIBS)
-@@ -180,7 +180,7 @@
+@@ -217,7 +217,7 @@
        $(NULL)
  
  ifeq ($(OS_ARCH), AIX) 
diff --git a/external/nss/nss.bzmozilla1238154.patch 
b/external/nss/nss.bzmozilla1238154.patch
index 468ff810b9ca..425f38257892 100644
--- a/external/nss/nss.bzmozilla1238154.patch
+++ b/external/nss/nss.bzmozilla1238154.patch
@@ -1,7 +1,7 @@
 diff -ru a/nspr/configure b/nspr/configure
 --- a/a/nspr/configure 2019-01-26 12:23:06.589389910 +0100
 +++ b/b/nspr/configure 2019-01-26 12:26:56.566222293 +0100
-@@ -7127,7 +7127,7 @@
+@@ -6883,7 +6883,7 @@
  
          # Determine compiler version
  
diff --git a/external/nss/nss.cygwin64.in32bit.patch 
b/external/nss/nss.cygwin64.in32bit.patch
index b00761a0e85b..bce0f1d09403 100644
--- a/external/nss/nss.cygwin64.in32bit.patch
+++ b/external/nss/nss.cygwin64.in32bit.patch
@@ -3,7 +3,7 @@ on Cygwin 64bit and in 32bit mode
 diff -ru nss.orig/nss/Makefile nss/nss/Makefile
 --- a/nss.orig/nss/Makefile       2016-02-26 01:00:52.146713100 +0100
 +++ b/nss/nss/Makefile    2016-02-26 01:02:05.303560100 +0100
-@@ -59,6 +59,8 @@
+@@ -63,6 +63,8 @@
  # Translate coreconf build options to NSPR configure options.
  #
 
diff --git a/external/nss/nss.nowerror.patch b/external/nss/nss.nowerror.patch
index ff81a9b33539..bdf7a33a874c 100644
--- a/external/nss/nss.nowerror.patch
+++ b/external/nss/nss.nowerror.patch
@@ -1,7 +1,7 @@
 diff -ur nss.org/nss/coreconf/WIN32.mk nss/nss/coreconf/WIN32.mk
 --- a/nss.org/nss/coreconf/WIN32.mk    2016-04-13 11:33:09.322294523 +0200
 +++ b/nss/nss/coreconf/WIN32.mk        2016-04-13 11:33:27.744323969 +0200
-@@ -127,7 +127,7 @@
+@@ -121,7 +121,7 @@
                        -D_CRT_NONSTDC_NO_WARNINGS
      OS_DLLFLAGS += -nologo -DLL -SUBSYSTEM:WINDOWS
      ifndef NSS_ENABLE_WERROR
diff --git a/external/nss/nss.patch b/external/nss/nss.patch
index d9aaee5199bb..cc9eeed1b009 100644
--- a/external/nss/nss.patch
+++ b/external/nss/nss.patch
@@ -1,6 +1,6 @@
 --- a/a/nspr/configure 2017-08-29 23:44:13.686045013 +0530
 +++ b/b/nspr/configure 2017-08-29 23:46:53.774768655 +0530
-@@ -7034,7 +7034,7 @@
+@@ -6794,7 +6794,7 @@
      PR_MD_CSRCS=linux.c
      MKSHLIB='$(CC) $(DSO_LDOPTS) -o $@'
      DSO_CFLAGS=-fPIC
@@ -11,7 +11,7 @@
                                     # combo is not yet good at debugging 
inlined
 --- a/nss.orig/nspr/pr/src/misc/prnetdb.c      2017-08-29 23:44:13.690045031 
+0530
 +++ b/nss/nspr/pr/src/misc/prnetdb.c   2017-08-29 23:47:03.810814019 +0530
-@@ -438,7 +438,7 @@
+@@ -441,7 +441,7 @@
      char *buf = *bufp;
      PRIntn buflen = *buflenp;
  
@@ -51,7 +51,7 @@
  
 --- a/nss.org/nss/coreconf/arch.mk     2017-08-29 23:44:13.646044832 +0530
 +++ b/nss/nss/coreconf/arch.mk 2017-08-29 23:45:51.494487134 +0530
-@@ -305,11 +305,17 @@
+@@ -284,11 +284,17 @@
      OBJDIR_NAME_COMPILER = $(COMPILER_TAG)
  endif
  OBJDIR_NAME_BASE = 
$(OS_TARGET)$(OS_RELEASE)$(CPU_TAG)$(OBJDIR_NAME_COMPILER)$(LIBC_TAG)$(IMPL_STRATEGY)$(OBJDIR_TAG)
@@ -83,16 +83,16 @@
  # The default implementation strategy for FreeBSD is pthreads.
 --- a/nss.org/nss/coreconf/Linux.mk    2017-08-29 23:44:13.642044814 +0530
 +++ b/nss/nss/coreconf/Linux.mk        2017-08-29 23:47:26.318915759 +0530
-@@ -147,7 +147,7 @@
+@@ -158,7 +158,7 @@
  # Also, -z defs conflicts with Address Sanitizer, which emits relocations
  # against the libsanitizer runtime built into the main executable.
  ZDEFS_FLAG            = -Wl,-z,defs
--DSO_LDOPTS            += $(if $(findstring 2.11.90.0.8,$(shell ld 
-v)),,$(ZDEFS_FLAG))
-+DSO_LDOPTS            += $(if $(findstring 2.11.90.0.8,$(shell ld 
-v)),,$(ZDEFS_FLAG)) $(if $(filter-out 
$(OS),ANDROID),-Wl$(COMMA)-z$(COMMA)origin '-Wl$(COMMA)-rpath$(COMMA)$$ORIGIN')
- LDFLAGS                       += $(ARCHFLAG) -z noexecstack
+-DSO_LDOPTS     += $(if $(findstring 2.11.90.0.8,$(shell $(LD) 
-v)),,$(ZDEFS_FLAG))
++DSO_LDOPTS     += $(if $(findstring 2.11.90.0.8,$(shell $(LD) 
-v)),,$(ZDEFS_FLAG)) $(if $(filter-out 
$(OS),ANDROID),-Wl$(COMMA)-z$(COMMA)origin '-Wl$(COMMA)-rpath$(COMMA)$$ORIGIN')
+ LDFLAGS                  += $(ARCHFLAG) -z noexecstack
  
  # On Maemo, we need to use the -rpath-link flag for even the standard system
-@@ -177,8 +177,13 @@
+@@ -188,8 +188,13 @@
  endif
  endif
  
@@ -108,7 +108,7 @@
  # dependencies in the same directory where it resides.
 --- a/nss.org/nss/coreconf/rules.mk    2017-08-29 23:44:13.646044832 +0530
 +++ b/nss/nss/coreconf/rules.mk        2017-08-29 23:47:37.442966042 +0530
-@@ -261,7 +261,7 @@
+@@ -176,7 +176,7 @@
  ifeq (,$(filter-out _WIN%,$(NS_USE_GCC)_$(OS_TARGET)))
        $(AR) $(subst /,\\,$(OBJS))
  else
@@ -119,7 +119,7 @@
  
 --- a/nss.org/nss/coreconf/SunOS5.mk   2017-08-29 23:44:13.646044832 +0530
 +++ b/nss/nss/coreconf/SunOS5.mk       2017-08-29 23:45:00.902258445 +0530
-@@ -48,8 +48,11 @@
+@@ -46,8 +46,11 @@
            # OPTIMIZER += -mno-omit-leaf-frame-pointer -fno-omit-frame-pointer
        endif
  else
@@ -135,7 +135,7 @@
        ifndef BUILD_OPT
 --- a/nss.org/nss/coreconf/Werror.mk   2017-08-29 23:44:13.646044832 +0530
 +++ b/nss/nss/coreconf/Werror.mk       2017-08-29 23:44:23.994091608 +0530
-@@ -94,7 +94,8 @@
+@@ -96,7 +96,8 @@
      endif #ndef NSS_ENABLE_WERROR
  
      ifeq ($(NSS_ENABLE_WERROR),1)
diff --git a/external/nss/nss.utf8bom.patch.1 b/external/nss/nss.utf8bom.patch.1
index e8c56abefcde..f474adf6f932 100644
--- a/external/nss/nss.utf8bom.patch.1
+++ b/external/nss/nss.utf8bom.patch.1
@@ -1,7 +1,7 @@
 diff -ur nss.org/nss/lib/ckfw/builtins/certdata.perl 
nss/nss/lib/ckfw/builtins/certdata.perl
 --- nss.org/nss/lib/ckfw/builtins/certdata.perl        2016-03-31 
18:26:07.890190900 +0800
 +++ nss/nss/lib/ckfw/builtins/certdata.perl    2016-03-31 19:16:16.727269600 
+0800
-@@ -110,6 +110,9 @@
+@@ -122,6 +122,9 @@
  sub doprint {
  my $i;
  
@@ -11,7 +11,7 @@ diff -ur nss.org/nss/lib/ckfw/builtins/certdata.perl 
nss/nss/lib/ckfw/builtins/c
  print <<EOD
  /* THIS IS A GENERATED FILE */
  /* This Source Code Form is subject to the terms of the Mozilla Public
-@@ -119,6 +122,7 @@
+@@ -131,6 +134,7 @@
  #ifndef BUILTINS_H
  #include "builtins.h"
  #endif /* BUILTINS_H */
diff --git a/external/nss/nss.vs2015.patch b/external/nss/nss.vs2015.patch
index de4f8762fd5b..73cff7c833fb 100644
--- a/external/nss/nss.vs2015.patch
+++ b/external/nss/nss.vs2015.patch
@@ -1,7 +1,7 @@
 diff -ru nss.org/nss/coreconf/WIN32.mk nss/nss/coreconf/WIN32.mk
 --- a/nss.org/nss/coreconf/WIN32.mk    2016-02-12 15:36:18.000000000 +0100
 +++ b/nss/nss/coreconf/WIN32.mk        2016-02-26 00:42:43.170809600 +0100
-@@ -199,7 +199,7 @@
+@@ -192,7 +192,7 @@
      # Disable C4244: conversion from 'type1' to 'type2', possible loss of data
      # Disable C4018: 'expression' : signed/unsigned mismatch
      # Disable C4312: 'type cast': conversion from 'type1' to 'type2' of 
greater size
diff --git a/external/nss/nss.vs2015.pdb.patch 
b/external/nss/nss.vs2015.pdb.patch
index c66940132cdd..3b498f976ac6 100644
--- a/external/nss/nss.vs2015.pdb.patch
+++ b/external/nss/nss.vs2015.pdb.patch
@@ -1,7 +1,7 @@
 diff -ru nss.orig/nss/coreconf/WIN32.mk nss/nss/coreconf/WIN32.mk
 --- a/nss.orig/nss/coreconf/WIN32.mk   2016-03-04 08:30:16.306639400 +0100
 +++ b/nss/nss/coreconf/WIN32.mk        2016-03-04 08:31:17.987233200 +0100
-@@ -169,15 +169,15 @@
+@@ -163,15 +163,15 @@
        DLLFLAGS   += -OUT:$@
        ifdef MOZ_DEBUG_SYMBOLS
                ifdef MOZ_DEBUG_FLAGS
diff --git a/external/nss/nss.windows.patch b/external/nss/nss.windows.patch
index 901846e7bc1f..27a44045802e 100644
--- a/external/nss/nss.windows.patch
+++ b/external/nss/nss.windows.patch
@@ -1,6 +1,6 @@
 --- a/a/nspr/config/rules.mk   2008-12-03 00:24:39.000000000 +0100
 +++ b/b/nspr/config/rules.mk   2009-11-27 13:36:22.662753328 +0100
-@@ -415,7 +415,7 @@
+@@ -423,7 +423,7 @@
  
  ifdef NEED_ABSOLUTE_PATH
  # The quotes allow absolute paths to contain spaces.
@@ -11,7 +11,7 @@
  $(OBJDIR)/%.$(OBJ_SUFFIX): %.cpp
 --- a/a/nss/coreconf/rules.mk  2008-12-03 00:24:39.000000000 +0100
 +++ b/b/nss/coreconf/rules.mk  2009-11-27 13:36:22.662753328 +0100
-@@ -386,7 +386,7 @@
+@@ -280,7 +280,7 @@
  endif
  
  # The quotes allow absolute paths to contain spaces.
@@ -22,7 +22,7 @@
  ifdef USE_NT_C_SYNTAX
 --- a/a/nspr/pr/include/md/_win95.h
 +++ b/b/nspr/pr/include/md/_win95.h
-@@ -312,7 +312,7 @@
+@@ -317,7 +317,7 @@
  #define _MD_ATOMIC_ADD(ptr,val)    (InterlockedExchangeAdd((PLONG)ptr, 
(LONG)val) + val)
  #define _MD_ATOMIC_DECREMENT(x)       InterlockedDecrement((PLONG)x)
  #endif /* x86 */
diff --git a/external/nss/nss_macosx.patch b/external/nss/nss_macosx.patch
index 1e7599be6133..456bd62d509b 100644
--- a/external/nss/nss_macosx.patch
+++ b/external/nss/nss_macosx.patch
@@ -1,7 +1,7 @@
 diff -ru a/nspr/configure b/nspr/configure
 --- a/a/nspr/configure 2014-09-29 16:50:33.907375937 +0100
 +++ b/b/nspr/configure 2014-09-29 16:51:59.213931947 +0100
-@@ -6453,6 +6453,9 @@
+@@ -6448,6 +6448,9 @@
      AS='$(CC) -x assembler-with-cpp'
      CFLAGS="$CFLAGS -Wall -fno-common"
      case "${target_cpu}" in
@@ -11,7 +11,7 @@ diff -ru a/nspr/configure b/nspr/configure
          arm*)
              CPU_ARCH=arm
              ;;
-@@ -6578,7 +6579,7 @@
+@@ -6483,7 +6486,7 @@
  
  
      DSO_CFLAGS=-fPIC
@@ -23,7 +23,7 @@ diff -ru a/nspr/configure b/nspr/configure
 diff -ru a/nss/coreconf/Darwin.mk b/nss/coreconf/Darwin.mk
 --- a/a/nss/coreconf/Darwin.mk 2014-09-29 16:50:22.992304799 +0100
 +++ b/b/nss/coreconf/Darwin.mk 2014-09-29 16:51:59.214931953 +0100
-@@ -20,13 +24,17 @@
+@@ -20,13 +20,17 @@
  
  ifeq (,$(filter-out i%86,$(CPU_ARCH)))
  ifdef USE_64
@@ -41,7 +41,7 @@ diff -ru a/nss/coreconf/Darwin.mk b/nss/coreconf/Darwin.mk
  override CPU_ARCH     = x86
  endif
  else
-@@ -40,19 +48,20 @@
+@@ -33,19 +37,20 @@
  ifeq (arm,$(CPU_ARCH))
  # Nothing set for arm currently.
  else
@@ -66,7 +66,7 @@ diff -ru a/nss/coreconf/Darwin.mk b/nss/coreconf/Darwin.mk
          # GCC <= 3
          DARWIN_SDK_FRAMEWORKS = -F$(MACOS_SDK_DIR)/System/Library/Frameworks
          ifneq (,$(shell find $(MACOS_SDK_DIR)/Library/Frameworks -maxdepth 0))
-@@ -108,7 +120,7 @@
+@@ -108,7 +113,7 @@
  # May override this with different compatibility and current version numbers.
  DARWIN_DYLIB_VERSIONS = -compatibility_version 1 -current_version 1
  # May override this with -bundle to create a loadable module.
@@ -78,7 +78,7 @@ diff -ru a/nss/coreconf/Darwin.mk b/nss/coreconf/Darwin.mk
 diff -ru a/nss/Makefile b/nss/Makefile
 --- a/a/nss/Makefile   2014-09-29 16:50:22.990304789 +0100
 +++ b/b/nss/Makefile   2014-09-29 16:51:59.207931908 +0100
-@@ -72,6 +72,9 @@
+@@ -82,6 +82,9 @@
  ifeq ($(OS_TARGET),WIN95)
  NSPR_CONFIGURE_OPTS += --enable-win32-target=WIN95
  endif
diff --git a/external/nss/ubsan.patch.0 b/external/nss/ubsan.patch.0
index 059a9f3b2c0a..5f97d3e9d24e 100644
--- a/external/nss/ubsan.patch.0
+++ b/external/nss/ubsan.patch.0
@@ -1,3 +1,12 @@
+--- nss/lib/base/item.c
++++ nss/lib/base/item.c
+@@ -182,5 +182,5 @@
+         return PR_FALSE;
+     }
+ 
+-    return nsslibc_memequal(one->data, two->data, one->size, statusOpt);
++    return one->size == 0 || nsslibc_memequal(one->data, two->data, 
one->size, statusOpt);
+ }
 --- nss/lib/softoken/legacydb/pk11db.c
 +++ nss/lib/softoken/legacydb/pk11db.c
 @@ -65,7 +65,7 @@
@@ -18,7 +27,7 @@
                count * sizeof(lgdbSlotData);
  
      data->data = (unsigned char *)PORT_ZAlloc(dataLen);
-@@ -327,7 +327,7 @@
+@@ -329,7 +329,7 @@
      }
      if ((encoded->major == LGDB_DB_EXT1_VERSION_MAJOR) &&
          (encoded->minor >= LGDB_DB_EXT1_VERSION_MINOR)) {
diff --git a/external/openssl/UnpackedTarball_openssl.mk 
b/external/openssl/UnpackedTarball_openssl.mk
index 6f00cf7f7e44..82b4f593bd61 100644
--- a/external/openssl/UnpackedTarball_openssl.mk
+++ b/external/openssl/UnpackedTarball_openssl.mk
@@ -13,6 +13,8 @@ $(eval $(call 
gb_UnpackedTarball_set_tarball,openssl,$(OPENSSL_TARBALL),,openssl
 
 $(eval $(call gb_UnpackedTarball_add_patches,openssl,\
        external/openssl/openssl-no-multilib.patch.0 \
+       external/openssl/configurable-z-option.patch.0 \
+       external/openssl/openssl-no-_umul128-on-aarch64.patch.1 \
 ))
 
 # vim: set noet sw=4 ts=4:
diff --git a/external/openssl/configurable-z-option.patch.0 
b/external/openssl/configurable-z-option.patch.0
new file mode 100644
index 000000000000..99d46f75410d
--- /dev/null
+++ b/external/openssl/configurable-z-option.patch.0
@@ -0,0 +1,34 @@
+--- Configurations/10-main.conf.sav    2021-08-24 13:38:47.000000000 +0000
++++ Configurations/10-main.conf        2021-11-02 22:20:44.377653700 +0000
+@@ -13,7 +13,7 @@
+         } elsif ($disabled{asm}) {
+             # assembler is still used to compile uplink shim
+             $vc_win64a_info = { AS        => "ml64",
+-                                ASFLAGS   => "/nologo /Zi",
++                                ASFLAGS   => "/nologo $$(DEBUG_FLAGS_VALUE)",
+                                 asflags   => "/c /Cp /Cx",
+                                 asoutflag => "/Fo" };
+         } else {
+@@ -41,7 +41,7 @@
+         } elsif ($disabled{asm}) {
+             # not actually used, uplink shim is inlined into C code
+             $vc_win32_info = { AS        => "ml",
+-                               ASFLAGS   => "/nologo /Zi",
++                               ASFLAGS   => "/nologo $$(DEBUG_FLAGS_VALUE)",
+                                asflags   => "/Cp /coff /c /Cx",
+                                asoutflag => "/Fo",
+                                perlasm_scheme => "win32" };
+@@ -1252,10 +1252,10 @@
+                                 "UNICODE", "_UNICODE",

... etc. - the rest is truncated

Reply via email to