download.lst                                                                   
    |    8 
 external/lcms2/0001-Added-an-extra-check-to-MLU-bounds.patch.1                 
    |   25 
 external/lcms2/0017-Upgrade-Visual-studio-2017-15.8.patch.1                    
    |  172 +
 external/lcms2/ExternalPackage_lcms2.mk                                        
    |    2 
 external/lcms2/ExternalProject_lcms2.mk                                        
    |    8 
 external/lcms2/UnpackedTarball_lcms2.mk                                        
    |   10 
 external/lcms2/c++17.patch.0                                                   
    |   22 
 external/lcms2/lcms2-2.4-windows.patch                                         
    |   32 
 external/lcms2/lcms2-config-guess.patch.0                                      
    | 1566 ----------
 external/lcms2/lcms2-vc2013-project.patch                                      
    |  490 ---
 external/lcms2/lcms2.patch                                                     
    |   20 
 external/lcms2/ubsan.patch.0                                                   
    |   22 
 
external/libxml2/0001-Fix-buffer-size-checks-in-xmlSnprintfElementContent.patch.1
  |  116 
 external/libxml2/0001-Fix-handling-of-parameter-entity-references.patch.1      
    |  287 -
 external/libxml2/0001-Fix-type-confusion-in-xmlValidateOneNamespace.patch.1    
    |   43 
 
external/libxml2/0001-Increase-buffer-space-for-port-in-HTTP-redirect-supp.patch.1
 |   31 
 external/libxml2/0001-Prevent-unwanted-external-entity-reference.patch.1       
    |   35 
 external/libxml2/ExternalPackage_xml2.mk                                       
    |    2 
 external/libxml2/ExternalProject_xml2.mk                                       
    |   23 
 external/libxml2/UnpackedTarball_xml2.mk                                       
    |    8 
 external/libxml2/libxml2-android.patch                                         
    |   14 
 external/libxml2/libxml2-global-symbols.patch                                  
    |    4 
 external/libxml2/libxml2-icu.patch.0                                           
    |   15 
 external/libxml2/libxml2-vc10.patch                                            
    |    2 
 external/libxml2/ubsan.patch.0                                                 
    |   84 
 25 files changed, 235 insertions(+), 2806 deletions(-)

New commits:
commit e7e66bb1644432894106dd0996f79482fa28165d
Author:     Michael Stahl <michael.st...@cib.de>
AuthorDate: Mon Jan 14 15:44:35 2019 +0100
Commit:     Mike Kaganski <mike.kagan...@collabora.com>
CommitDate: Tue Jan 22 16:30:05 2019 +0100

    libxml2: upgrade to release 2.9.9
    
    * fixes CVE-2018-14404
    * drop one hunk from libxml2-android.patch that was added in commit
      6a17d2f2ba7acfec277314b97b50e41532d6b44d; presumably nan() exists now
      given that other code is calling it.
    
    Reviewed-on: https://gerrit.libreoffice.org/66308
    Tested-by: Jenkins
    Reviewed-by: Michael Stahl <michael.st...@cib.de>
    (cherry picked from commit beea5852720b22043aefcd1e6b7243c202b40601)
    Reviewed-on: https://gerrit.libreoffice.org/66367
    Reviewed-by: Caolán McNamara <caol...@redhat.com>
    Tested-by: Caolán McNamara <caol...@redhat.com>
    (cherry picked from commit 69b5995ed815bea4d21080f64a4232f44131696f)
    (cherry picked from commit 5e9116596198f460db14d7d50bfd2f38a99fff59)
    
    Change-Id: I696cc4e1da55536ea1c89a6e0446ce5bc8398ba4
    Reviewed-on: https://gerrit.libreoffice.org/66721
    Tested-by: Mike Kaganski <mike.kagan...@collabora.com>
    Reviewed-by: Mike Kaganski <mike.kagan...@collabora.com>

diff --git a/download.lst b/download.lst
index c8d73637d03b..c32fcfb2b964 100644
--- a/download.lst
+++ b/download.lst
@@ -99,7 +99,9 @@ export LIBLANGTAG_TARBALL := liblangtag-0.6.2.tar.bz2
 export LIBTOMMATH_MD5SUM := da283d2e3e72137d0c600ac36b991c9d
 export LIBTOMMATH_TARBALL := ltm-1.0.zip
 export LIBXMLSEC_TARBALL := 
86b1daaa438f5a7bea9a52d7b9799ac0-xmlsec1-1.2.23.tar.gz
-export LIBXML_TARBALL := ae249165c173b1ff386ee8ad676815f5-libxml2-2.9.4.tar.gz
+export LIBXML_MD5SUM := c04a5a0a042eaa157e8e8c9eabe76bd6
+export LIBXML_VERSION_MICRO := 9
+export LIBXML_TARBALL := libxml2-2.9.$(LIBXML_VERSION_MICRO).tar.gz
 export LIBXSLT_TARBALL := 
a129d3c44c022de3b9dcf6d6f288d72e-libxslt-1.1.29.tar.gz
 export LPSOLVE_TARBALL := 26b3e95ddf3d9c077c480ea45874b3b8-lp_solve_5.5.tar.gz
 export MARIADB_TARBALL := 
a233181e03d3c307668b4c722d881661-mariadb_client-2.0.0-src.tar.gz
diff --git 
a/external/libxml2/0001-Fix-buffer-size-checks-in-xmlSnprintfElementContent.patch.1
 
b/external/libxml2/0001-Fix-buffer-size-checks-in-xmlSnprintfElementContent.patch.1
deleted file mode 100644
index 047c88d943a7..000000000000
--- 
a/external/libxml2/0001-Fix-buffer-size-checks-in-xmlSnprintfElementContent.patch.1
+++ /dev/null
@@ -1,116 +0,0 @@
-From 932cc9896ab41475d4aa429c27d9afd175959d74 Mon Sep 17 00:00:00 2001
-From: Nick Wellnhofer <wellnho...@aevum.de>
-Date: Sat, 3 Jun 2017 02:01:29 +0200
-Subject: [PATCH] Fix buffer size checks in xmlSnprintfElementContent
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-xmlSnprintfElementContent failed to correctly check the available
-buffer space in two locations.
-
-Fixes bug 781333 (CVE-2017-9047) and bug 781701 (CVE-2017-9048).
-
-Thanks to Marcel Böhme and Thuan Pham for the report.
----
- result/valid/781333.xml         |  5 +++++
- result/valid/781333.xml.err     |  3 +++
- result/valid/781333.xml.err.rdr |  6 ++++++
- test/valid/781333.xml           |  4 ++++
- valid.c                         | 20 +++++++++++---------
- 5 files changed, 29 insertions(+), 9 deletions(-)
- create mode 100644 result/valid/781333.xml
- create mode 100644 result/valid/781333.xml.err
- create mode 100644 result/valid/781333.xml.err.rdr
- create mode 100644 test/valid/781333.xml
-
-diff --git a/result/valid/781333.xml b/result/valid/781333.xml
-new file mode 100644
-index 00000000..45dc451d
---- /dev/null
-+++ b/result/valid/781333.xml
-@@ -0,0 +1,5 @@
-+<?xml version="1.0"?>
-+<!DOCTYPE a [
-+<!ELEMENT a 
(ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp
 
ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp
 
ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp
 
ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp
 
pppppppppppppppppppppppppp:llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
 
lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
 lllllllllllllllllllllllllllllllll)>
-+]>
-+<a/>
-diff --git a/result/valid/781333.xml.err b/result/valid/781333.xml.err
-new file mode 100644
-index 00000000..b401b49a
---- /dev/null
-+++ b/result/valid/781333.xml.err
-@@ -0,0 +1,3 @@
-+./test/valid/781333.xml:4: element a: validity error : Element a content does 
not follow the DTD, expecting ( ..., got 
-+<a/>
-+    ^
-diff --git a/result/valid/781333.xml.err.rdr b/result/valid/781333.xml.err.rdr
-new file mode 100644
-index 00000000..5ff56992
---- /dev/null
-+++ b/result/valid/781333.xml.err.rdr
-@@ -0,0 +1,6 @@
-+./test/valid/781333.xml:4: element a: validity error : Element a content does 
not follow the DTD, expecting ( ..., got 
-+<a/>
-+    ^
-+./test/valid/781333.xml:5: element a: validity error : Element a content does 
not follow the DTD, Expecting more child
-+
-+^
-diff --git a/test/valid/781333.xml b/test/valid/781333.xml
-new file mode 100644
-index 00000000..b29e5a68
---- /dev/null
-+++ b/test/valid/781333.xml
-@@ -0,0 +1,4 @@
-+<!DOCTYPE a [
-+    <!ELEMENT a 
(ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp
 
ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp
 
ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp
 
ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp
 
pppppppppppppppppppppppppppppp:llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
 
lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
 lllllllllllllllllllllllllllllllllllll)>
-+]>
-+<a/>
-diff --git a/valid.c b/valid.c
-index 19f84b82..9b2df56a 100644
---- a/valid.c
-+++ b/valid.c
-@@ -1262,22 +1262,23 @@ xmlSnprintfElementContent(char *buf, int size, 
xmlElementContentPtr content, int
-         case XML_ELEMENT_CONTENT_PCDATA:
-             strcat(buf, "#PCDATA");
-           break;
--      case XML_ELEMENT_CONTENT_ELEMENT:
-+      case XML_ELEMENT_CONTENT_ELEMENT: {
-+            int qnameLen = xmlStrlen(content->name);
-+
-+          if (content->prefix != NULL)
-+                qnameLen += xmlStrlen(content->prefix) + 1;
-+          if (size - len < qnameLen + 10) {
-+              strcat(buf, " ...");
-+              return;
-+          }
-           if (content->prefix != NULL) {
--              if (size - len < xmlStrlen(content->prefix) + 10) {
--                  strcat(buf, " ...");
--                  return;
--              }
-               strcat(buf, (char *) content->prefix);
-               strcat(buf, ":");
-           }
--          if (size - len < xmlStrlen(content->name) + 10) {
--              strcat(buf, " ...");
--              return;
--          }
-           if (content->name != NULL)
-               strcat(buf, (char *) content->name);
-           break;
-+        }
-       case XML_ELEMENT_CONTENT_SEQ:
-           if ((content->c1->type == XML_ELEMENT_CONTENT_OR) ||
-               (content->c1->type == XML_ELEMENT_CONTENT_SEQ))
-@@ -1319,6 +1320,7 @@ xmlSnprintfElementContent(char *buf, int size, 
xmlElementContentPtr content, int
-               xmlSnprintfElementContent(buf, size, content->c2, 0);
-           break;
-     }
-+    if (size - strlen(buf) <= 2) return;
-     if (englob)
-         strcat(buf, ")");
-     switch (content->ocur) {
--- 
-2.13.5
-
diff --git 
a/external/libxml2/0001-Fix-handling-of-parameter-entity-references.patch.1 
b/external/libxml2/0001-Fix-handling-of-parameter-entity-references.patch.1
deleted file mode 100644
index 8f005cf32181..000000000000
--- a/external/libxml2/0001-Fix-handling-of-parameter-entity-references.patch.1
+++ /dev/null
@@ -1,287 +0,0 @@
-From e26630548e7d138d2c560844c43820b6767251e3 Mon Sep 17 00:00:00 2001
-From: Nick Wellnhofer <wellnho...@aevum.de>
-Date: Mon, 5 Jun 2017 15:37:17 +0200
-Subject: [PATCH] Fix handling of parameter-entity references
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-There were two bugs where parameter-entity references could lead to an
-unexpected change of the input buffer in xmlParseNameComplex and
-xmlDictLookup being called with an invalid pointer.
-
-Percent sign in DTD Names
-=========================
-
-The NEXTL macro used to call xmlParserHandlePEReference. When parsing
-"complex" names inside the DTD, this could result in entity expansion
-which created a new input buffer. The fix is to simply remove the call
-to xmlParserHandlePEReference from the NEXTL macro. This is safe because
-no users of the macro require expansion of parameter entities.
-
-- xmlParseNameComplex
-- xmlParseNCNameComplex
-- xmlParseNmtoken
-
-The percent sign is not allowed in names, which are grammatical tokens.
-
-- xmlParseEntityValue
-
-Parameter-entity references in entity values are expanded but this
-happens in a separate step in this function.
-
-- xmlParseSystemLiteral
-
-Parameter-entity references are ignored in the system literal.
-
-- xmlParseAttValueComplex
-- xmlParseCharDataComplex
-- xmlParseCommentComplex
-- xmlParsePI
-- xmlParseCDSect
-
-Parameter-entity references are ignored outside the DTD.
-
-- xmlLoadEntityContent
-
-This function is only called from xmlStringLenDecodeEntities and
-entities are replaced in a separate step immediately after the function
-call.
-
-This bug could also be triggered with an internal subset and double
-entity expansion.
-
-This fixes bug 766956 initially reported by Wei Lei and independently by
-Chromium's ClusterFuzz, Hanno Böck, and Marco Grassi. Thanks to everyone
-involved.
-
-xmlParseNameComplex with XML_PARSE_OLD10
-========================================
-
-When parsing Names inside an expanded parameter entity with the
-XML_PARSE_OLD10 option, xmlParseNameComplex would call xmlGROW via the
-GROW macro if the input buffer was exhausted. At the end of the
-parameter entity's replacement text, this function would then call
-xmlPopInput which invalidated the input buffer.
-
-There should be no need to invoke GROW in this situation because the
-buffer is grown periodically every XML_PARSER_CHUNK_SIZE characters and,
-at least for UTF-8, in xmlCurrentChar. This also matches the code path
-executed when XML_PARSE_OLD10 is not set.
-
-This fixes bugs 781205 (CVE-2017-9049) and 781361 (CVE-2017-9050).
-Thanks to Marcel Böhme and Thuan Pham for the report.
-
-Additional hardening
-====================
-
-A separate check was added in xmlParseNameComplex to validate the
-buffer size.
----
- Makefile.am                     | 18 ++++++++++++++++++
- parser.c                        | 18 ++++++++++--------
- result/errors10/781205.xml      |  0
- result/errors10/781205.xml.err  | 21 +++++++++++++++++++++
- result/errors10/781361.xml      |  0
- result/errors10/781361.xml.err  | 13 +++++++++++++
- result/valid/766956.xml         |  0
- result/valid/766956.xml.err     |  9 +++++++++
- result/valid/766956.xml.err.rdr | 10 ++++++++++
- runtest.c                       |  3 +++
- test/errors10/781205.xml        |  3 +++
- test/errors10/781361.xml        |  3 +++
- test/valid/766956.xml           |  2 ++
- test/valid/dtds/766956.dtd      |  2 ++
- 14 files changed, 94 insertions(+), 8 deletions(-)
- create mode 100644 result/errors10/781205.xml
- create mode 100644 result/errors10/781205.xml.err
- create mode 100644 result/errors10/781361.xml
- create mode 100644 result/errors10/781361.xml.err
- create mode 100644 result/valid/766956.xml
- create mode 100644 result/valid/766956.xml.err
- create mode 100644 result/valid/766956.xml.err.rdr
- create mode 100644 test/errors10/781205.xml
- create mode 100644 test/errors10/781361.xml
- create mode 100644 test/valid/766956.xml
- create mode 100644 test/valid/dtds/766956.dtd
-
-diff --git a/parser.c b/parser.c
-index df2efa55..a175ac4e 100644
---- a/parser.c
-+++ b/parser.c
-@@ -2121,7 +2121,6 @@ static void xmlGROW (xmlParserCtxtPtr ctxt) {
-       ctxt->input->line++; ctxt->input->col = 1;                      \
-     } else ctxt->input->col++;                                                
\
-     ctxt->input->cur += l;                            \
--    if (*ctxt->input->cur == '%') xmlParserHandlePEReference(ctxt);   \
-   } while (0)
- 
- #define CUR_CHAR(l) xmlCurrentChar(ctxt, &l)
-@@ -3412,13 +3411,6 @@ xmlParseNameComplex(xmlParserCtxtPtr ctxt) {
-           len += l;
-           NEXTL(l);
-           c = CUR_CHAR(l);
--          if (c == 0) {
--              count = 0;
--              GROW;
--                if (ctxt->instate == XML_PARSER_EOF)
--                    return(NULL);
--              c = CUR_CHAR(l);
--          }
-       }
-     }
-     if ((len > XML_MAX_NAME_LENGTH) &&
-@@ -3426,6 +3418,16 @@ xmlParseNameComplex(xmlParserCtxtPtr ctxt) {
-         xmlFatalErr(ctxt, XML_ERR_NAME_TOO_LONG, "Name");
-         return(NULL);
-     }
-+    if (ctxt->input->cur - ctxt->input->base < len) {
-+        /*
-+         * There were a couple of bugs where PERefs lead to to a change
-+         * of the buffer. Check the buffer size to avoid passing an invalid
-+         * pointer to xmlDictLookup.
-+         */
-+        xmlFatalErr(ctxt, XML_ERR_INTERNAL_ERROR,
-+                    "unexpected change of input buffer");
-+        return (NULL);
-+    }
-     if ((*ctxt->input->cur == '\n') && (ctxt->input->cur[-1] == '\r'))
-         return(xmlDictLookup(ctxt->dict, ctxt->input->cur - (len + 1), len));
-     return(xmlDictLookup(ctxt->dict, ctxt->input->cur - len, len));
-diff --git a/result/errors10/781205.xml b/result/errors10/781205.xml
-new file mode 100644
-index 00000000..e69de29b
-diff --git a/result/errors10/781205.xml.err b/result/errors10/781205.xml.err
-new file mode 100644
-index 00000000..da15c3f7
---- /dev/null
-+++ b/result/errors10/781205.xml.err
-@@ -0,0 +1,21 @@
-+Entity: line 1: parser error : internal error: xmlParseInternalSubset: error 
detected in Markup declaration
-+
-+ %a; 
-+    ^
-+Entity: line 1: 
-+<:0000
-+^
-+Entity: line 1: parser error : DOCTYPE improperly terminated
-+ %a; 
-+    ^
-+Entity: line 1: 
-+<:0000
-+^
-+namespace error : Failed to parse QName ':0000'
-+ %a; 
-+    ^
-+<:0000
-+      ^
-+./test/errors10/781205.xml:4: parser error : Couldn't find end of Start Tag 
:0000 line 1
-+
-+^
-diff --git a/result/errors10/781361.xml b/result/errors10/781361.xml
-new file mode 100644
-index 00000000..e69de29b
-diff --git a/result/errors10/781361.xml.err b/result/errors10/781361.xml.err
-new file mode 100644
-index 00000000..655f41a2
---- /dev/null
-+++ b/result/errors10/781361.xml.err
-@@ -0,0 +1,13 @@
-+./test/errors10/781361.xml:4: parser error : xmlParseElementDecl: 'EMPTY', 
'ANY' or '(' expected
-+
-+^
-+./test/errors10/781361.xml:4: parser error : internal error: 
xmlParseInternalSubset: error detected in Markup declaration
-+
-+
-+^
-+./test/errors10/781361.xml:4: parser error : DOCTYPE improperly terminated
-+
-+^
-+./test/errors10/781361.xml:4: parser error : Start tag expected, '<' not found
-+
-+^
-diff --git a/result/valid/766956.xml b/result/valid/766956.xml
-new file mode 100644
-index 00000000..e69de29b
-diff --git a/result/valid/766956.xml.err b/result/valid/766956.xml.err
-new file mode 100644
-index 00000000..34b1dae6
---- /dev/null
-+++ b/result/valid/766956.xml.err
-@@ -0,0 +1,9 @@
-+test/valid/dtds/766956.dtd:2: parser error : PEReference: expecting ';'
-+%ä%ent;
-+   ^
-+Entity: line 1: parser error : Content error in the external subset
-+ %ent; 
-+      ^
-+Entity: line 1: 
-+value
-+^
-diff --git a/result/valid/766956.xml.err.rdr b/result/valid/766956.xml.err.rdr
-new file mode 100644
-index 00000000..77603462
---- /dev/null
-+++ b/result/valid/766956.xml.err.rdr
-@@ -0,0 +1,10 @@
-+test/valid/dtds/766956.dtd:2: parser error : PEReference: expecting ';'
-+%ä%ent;
-+   ^
-+Entity: line 1: parser error : Content error in the external subset
-+ %ent; 
-+      ^
-+Entity: line 1: 
-+value
-+^
-+./test/valid/766956.xml : failed to parse
-diff --git a/runtest.c b/runtest.c
-index b2ce693b..378b38e3 100644
---- a/runtest.c
-+++ b/runtest.c
-@@ -4214,6 +4214,9 @@ testDesc testDescriptions[] = {
-     { "Error cases regression tests",
-       errParseTest, "./test/errors/*.xml", "result/errors/", "", ".err",
-       0 },
-+    { "Error cases regression tests (old 1.0)",
-+      errParseTest, "./test/errors10/*.xml", "result/errors10/", "", ".err",
-+      XML_PARSE_OLD10 },
- #ifdef LIBXML_READER_ENABLED
-     { "Error cases stream regression tests",
-       streamParseTest, "./test/errors/*.xml", "result/errors/", NULL, ".str",
-diff --git a/test/errors10/781205.xml b/test/errors10/781205.xml
-new file mode 100644
-index 00000000..d9e9e839
---- /dev/null
-+++ b/test/errors10/781205.xml
-@@ -0,0 +1,3 @@
-+<!DOCTYPE D [
-+  <!ENTITY % a "<:0000">
-+  %a;
-diff --git a/test/errors10/781361.xml b/test/errors10/781361.xml
-new file mode 100644
-index 00000000..67476bcb
---- /dev/null
-+++ b/test/errors10/781361.xml
-@@ -0,0 +1,3 @@
-+<!DOCTYPE doc [
-+  <!ENTITY % elem "<!ELEMENT e0000000000">
-+  %elem;
-diff --git a/test/valid/766956.xml b/test/valid/766956.xml
-new file mode 100644
-index 00000000..19a95a0e
---- /dev/null
-+++ b/test/valid/766956.xml
-@@ -0,0 +1,2 @@
-+<!DOCTYPE test SYSTEM "dtds/766956.dtd">
-+<test/>
-diff --git a/test/valid/dtds/766956.dtd b/test/valid/dtds/766956.dtd
-new file mode 100644
-index 00000000..dddde68b
---- /dev/null
-+++ b/test/valid/dtds/766956.dtd
-@@ -0,0 +1,2 @@
-+<!ENTITY % ent "value">
-+%ä%ent;
--- 
-2.13.5
-
diff --git 
a/external/libxml2/0001-Fix-type-confusion-in-xmlValidateOneNamespace.patch.1 
b/external/libxml2/0001-Fix-type-confusion-in-xmlValidateOneNamespace.patch.1
deleted file mode 100644
index f0c4e6d5dba5..000000000000
--- 
a/external/libxml2/0001-Fix-type-confusion-in-xmlValidateOneNamespace.patch.1
+++ /dev/null
@@ -1,43 +0,0 @@
-From 92b9e8c8b3787068565a1820ba575d042f9eec66 Mon Sep 17 00:00:00 2001
-From: Nick Wellnhofer <wellnho...@aevum.de>
-Date: Tue, 6 Jun 2017 12:56:28 +0200
-Subject: [PATCH] Fix type confusion in xmlValidateOneNamespace
-
-Comment out code that casts xmlNsPtr to xmlAttrPtr. ID types on
-namespace declarations make no practical sense anyway.
-
-Fixes bug 780228.
-
-Found with libFuzzer and ASan.
----
- valid.c | 7 +++++++
- 1 file changed, 7 insertions(+)
-
-diff --git a/valid.c b/valid.c
-index 8075d3a0..c51ea290 100644
---- a/valid.c
-+++ b/valid.c
-@@ -4627,6 +4627,12 @@ xmlNodePtr elem, const xmlChar *prefix, xmlNsPtr ns, 
const xmlChar *value) {
-       }
-     }
- 
-+    /*
-+     * Casting ns to xmlAttrPtr is wrong. We'd need separate functions
-+     * xmlAddID and xmlAddRef for namespace declarations, but it makes
-+     * no practical sense to use ID types anyway.
-+     */
-+#if 0
-     /* Validity Constraint: ID uniqueness */
-     if (attrDecl->atype == XML_ATTRIBUTE_ID) {
-         if (xmlAddID(ctxt, doc, value, (xmlAttrPtr) ns) == NULL)
-@@ -4638,6 +4644,7 @@ xmlNodePtr elem, const xmlChar *prefix, xmlNsPtr ns, 
const xmlChar *value) {
-         if (xmlAddRef(ctxt, doc, value, (xmlAttrPtr) ns) == NULL)
-           ret = 0;
-     }
-+#endif
- 
-     /* Validity Constraint: Notation Attributes */
-     if (attrDecl->atype == XML_ATTRIBUTE_NOTATION) {
--- 
-2.13.5
-
diff --git 
a/external/libxml2/0001-Increase-buffer-space-for-port-in-HTTP-redirect-supp.patch.1
 
b/external/libxml2/0001-Increase-buffer-space-for-port-in-HTTP-redirect-supp.patch.1
deleted file mode 100644
index fa90247f5e23..000000000000
--- 
a/external/libxml2/0001-Increase-buffer-space-for-port-in-HTTP-redirect-supp.patch.1
+++ /dev/null
@@ -1,31 +0,0 @@
-From 5dca9eea1bd4263bfa4d037ab2443de1cd730f7e Mon Sep 17 00:00:00 2001
-From: Daniel Veillard <veill...@redhat.com>
-Date: Fri, 7 Apr 2017 17:13:28 +0200
-Subject: [PATCH] Increase buffer space for port in HTTP redirect support
-
-For https://bugzilla.gnome.org/show_bug.cgi?id=780690
-
-nanohttp.c: the code wrongly assumed a short int port value.
----
- nanohttp.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/nanohttp.c b/nanohttp.c
-index e109ad75..373425de 100644
---- a/nanohttp.c
-+++ b/nanohttp.c
-@@ -1423,9 +1423,9 @@ retry:
-     if (ctxt->port != 80) {
-       /* reserve space for ':xxxxx', incl. potential proxy */
-       if (proxy)
--          blen += 12;
-+          blen += 17;
-       else
--          blen += 6;
-+          blen += 11;
-     }
-     bp = (char*)xmlMallocAtomic(blen);
-     if ( bp == NULL ) {
--- 
-2.13.5
-
diff --git 
a/external/libxml2/0001-Prevent-unwanted-external-entity-reference.patch.1 
b/external/libxml2/0001-Prevent-unwanted-external-entity-reference.patch.1
deleted file mode 100644
index 7a935a6ada60..000000000000
--- a/external/libxml2/0001-Prevent-unwanted-external-entity-reference.patch.1
+++ /dev/null
@@ -1,35 +0,0 @@
-From 90ccb58242866b0ba3edbef8fe44214a101c2b3e Mon Sep 17 00:00:00 2001
-From: Neel Mehta <nme...@google.com>
-Date: Fri, 7 Apr 2017 17:43:02 +0200
-Subject: [PATCH] Prevent unwanted external entity reference
-
-For https://bugzilla.gnome.org/show_bug.cgi?id=780691
-
-* parser.c: add a specific check to avoid PE reference
----
- parser.c | 9 +++++++++
- 1 file changed, 9 insertions(+)
-
-diff --git a/parser.c b/parser.c
-index 609a2703..c2c812de 100644
---- a/parser.c
-+++ b/parser.c
-@@ -8123,6 +8123,15 @@ xmlParsePEReference(xmlParserCtxtPtr ctxt)
-           if (xmlPushInput(ctxt, input) < 0)
-               return;
-       } else {
-+          if ((entity->etype == XML_EXTERNAL_PARAMETER_ENTITY) &&
-+              ((ctxt->options & XML_PARSE_NOENT) == 0) &&
-+              ((ctxt->options & XML_PARSE_DTDVALID) == 0) &&
-+              ((ctxt->options & XML_PARSE_DTDLOAD) == 0) &&
-+              ((ctxt->options & XML_PARSE_DTDATTR) == 0) &&
-+              (ctxt->replaceEntities == 0) &&
-+              (ctxt->validate == 0))
-+              return;
-+
-           /*
-            * TODO !!!
-            * handle the extra spaces added before and after
--- 
-2.13.5
-
diff --git a/external/libxml2/ExternalPackage_xml2.mk 
b/external/libxml2/ExternalPackage_xml2.mk
index 3878b3ef1d50..5830f36a776f 100644
--- a/external/libxml2/ExternalPackage_xml2.mk
+++ b/external/libxml2/ExternalPackage_xml2.mk
@@ -21,7 +21,7 @@ else # COM=MSC
 $(eval $(call 
gb_ExternalPackage_add_file,xml2,$(LIBO_URE_LIB_FOLDER)/libxml2.dll,win32/bin.msvc/libxml2.dll))
 endif
 else # OS!=WNT
-$(eval $(call 
gb_ExternalPackage_add_file,xml2,$(LIBO_URE_LIB_FOLDER)/libxml2.so.2,.libs/libxml2.so.2.9.4))
+$(eval $(call 
gb_ExternalPackage_add_file,xml2,$(LIBO_URE_LIB_FOLDER)/libxml2.so.2,.libs/libxml2.so.2.9.$(LIBXML_VERSION_MICRO)))
 endif
 endif # DISABLE_DYNLOADING
 
diff --git a/external/libxml2/ExternalProject_xml2.mk 
b/external/libxml2/ExternalProject_xml2.mk
index dc3ab2f8b2e4..c3bed1500a2f 100644
--- a/external/libxml2/ExternalProject_xml2.mk
+++ b/external/libxml2/ExternalProject_xml2.mk
@@ -14,30 +14,21 @@ $(eval $(call gb_ExternalProject_register_targets,xml2,\
 ))
 
 ifeq ($(OS),WNT)
-ifeq ($(COM),GCC)
-$(call gb_ExternalProject_get_state_target,xml2,build):
-       $(call gb_ExternalProject_run,build,\
-               ./configure --disable-ipv6 --without-python --without-zlib \
-                       --without-lzma \
-                       --disable-static --without-debug 
lt_cv_cc_dll_switch="-shared" \
-                       $(if $(CROSS_COMPILING),--build=$(BUILD_PLATFORM) 
--host=$(HOST_PLATFORM)) \
-                       CC="$(CC) -mthreads $(if 
$(MINGW_SHARED_GCCLIB),-shared-libgcc)" \
-                       LIBS="-lws2_32 $(if 
$(MINGW_SHARED_GXXLIB),$(MINGW_SHARED_LIBSTDCPP))" \
-                       LDFLAGS="-Wl$(COMMA)--no-undefined 
-Wl$(COMMA)--enable-runtime-pseudo-reloc-v2" \
-                       OBJDUMP=objdump \
-               && $(MAKE) \
-       )
-else # COM=MSC
 $(call gb_ExternalProject_use_external_project,xml2,icu)
 
+$(eval $(call gb_ExternalProject_use_nmake,xml2,build))
+
 $(call gb_ExternalProject_get_state_target,xml2,build):
        $(call gb_ExternalProject_run,build,\
                cscript /e:javascript configure.js \
                        iconv=no icu=yes sax1=yes $(if 
$(MSVC_USE_DEBUG_RUNTIME),run_debug=yes cruntime=/MDd) \
+                       $(if $(filter TRUE,$(ENABLE_DBGUTIL)),debug=yes) \
                && unset MAKEFLAGS \
-               && LIB="$(ILIB)" nmake \
+               && unset MAKE \
+               && INCLUDE="$(subst -I,,$(subst 
$(WHITESPACE),;,$(SOLARINC)));$(subst -I,,$(subst 
$(WHITESPACE),;,$(ICU_CFLAGS)))" \
+                  LIB="$(ILIB)$(subst -L,;,$(subst 
$(WHITESPACE),,$(ICU_LIBS)))" \
+                  nmake \
        ,win32)
-endif
 else # OS!=WNT
 $(call gb_ExternalProject_get_state_target,xml2,build):
        $(call gb_ExternalProject_run,build,\
diff --git a/external/libxml2/UnpackedTarball_xml2.mk 
b/external/libxml2/UnpackedTarball_xml2.mk
index 3f06a40764a3..001df1e8cb11 100644
--- a/external/libxml2/UnpackedTarball_xml2.mk
+++ b/external/libxml2/UnpackedTarball_xml2.mk
@@ -11,18 +11,14 @@ $(eval $(call gb_UnpackedTarball_UnpackedTarball,xml2))
 
 $(eval $(call gb_UnpackedTarball_set_tarball,xml2,$(LIBXML_TARBALL),,libxml2))
 
+$(eval $(call gb_UnpackedTarball_update_autoconf_configs,xml2))
+
 $(eval $(call gb_UnpackedTarball_add_patches,xml2,\
        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) \
        external/libxml2/libxml2-icu.patch.0 \
-       external/libxml2/ubsan.patch.0 \
-       
external/libxml2/0001-Fix-type-confusion-in-xmlValidateOneNamespace.patch.1 \
-       
external/libxml2/0001-Prevent-unwanted-external-entity-reference.patch.1 \
-       
external/libxml2/0001-Increase-buffer-space-for-port-in-HTTP-redirect-supp.patch.1
 \
-       
external/libxml2/0001-Fix-buffer-size-checks-in-xmlSnprintfElementContent.patch.1
 \
-       
external/libxml2/0001-Fix-handling-of-parameter-entity-references.patch.1 \
 ))
 
 # vim: set noet sw=4 ts=4:
diff --git a/external/libxml2/libxml2-android.patch 
b/external/libxml2/libxml2-android.patch
index f9057f6fb8ba..714de61068fb 100644
--- a/external/libxml2/libxml2-android.patch
+++ b/external/libxml2/libxml2-android.patch
@@ -1,19 +1,7 @@
---- misc/libxml2-2.7.6/trionan.c
-+++ misc/build/libxml2-2.7.6/trionan.c
-@@ -327,7 +327,7 @@
- 
-   if (result == 0.0) {
- 
--#if defined(TRIO_COMPILER_SUPPORTS_C99)
-+#if defined(TRIO_COMPILER_SUPPORTS_C99) && !(defined(__ANDROID__) && 
defined(__clang__))
-     result = nan("");
- 
- #elif defined(NAN) && defined(__STDC_IEC_559__)
-
 --- misc/libxml2-2.7.6/Makefile.in
 +++ misc/build/libxml2-2.7.6/Makefile.in
 @@ -1635,7 +1635,7 @@
- check-am: all-am
+       $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
  check: $(BUILT_SOURCES)
        $(MAKE) $(AM_MAKEFLAGS) check-recursive
 -all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(SCRIPTS) $(MANS) $(DATA) \
diff --git a/external/libxml2/libxml2-global-symbols.patch 
b/external/libxml2/libxml2-global-symbols.patch
index ba34ac9cc0c6..49ee73731562 100644
--- a/external/libxml2/libxml2-global-symbols.patch
+++ b/external/libxml2/libxml2-global-symbols.patch
@@ -14,8 +14,8 @@
  
  LIBXML2_2.6.32 {
 @@ -2231,3 +2231,43 @@
-   xmlXPathSetContextNode;
- } LIBXML2_2.9.0;
+   xmlHashDefaultDeallocator;
+ } LIBXML2_2.9.1;
  
 +# HACK: export global variable accessor functions (globals.h)
 +LIBXML2_GLOBAL_VARIABLES {
diff --git a/external/libxml2/libxml2-icu.patch.0 
b/external/libxml2/libxml2-icu.patch.0
index da05e401c0a9..b390b03d8787 100644
--- a/external/libxml2/libxml2-icu.patch.0
+++ b/external/libxml2/libxml2-icu.patch.0
@@ -1,9 +1,11 @@
+Find bundled ICU in workdir and use debug .libs when needed
+
 diff -up win32/Makefile.msvc.dt win32/Makefile.msvc
 --- win32/Makefile.msvc.dt     2014-07-18 19:00:23.372103963 +0200
 +++ win32/Makefile.msvc        2014-07-18 19:01:39.347982929 +0200
 @@ -45,6 +45,7 @@ CPPFLAGS = $(CPPFLAGS) /D "_REENTRANT"
  CC = cl.exe
- CFLAGS = /nologo /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "NOLIBTOOL" /W1 
$(CRUNTIME)
+ CFLAGS = /nologo /D "_WINDOWS" /D "_MBCS" /D "NOLIBTOOL" /W3 /wd4244 /wd4267 
$(CRUNTIME)
  CFLAGS = $(CFLAGS) /I$(XML_SRCDIR) /I$(XML_SRCDIR)\include /I$(INCPREFIX)
 +CFLAGS = $(CFLAGS) /I$(WORKDIR)/UnpackedTarball/icu/source/i18n 
/I$(WORKDIR)/UnpackedTarball/icu/source/common
  !if "$(WITH_THREADS)" != "no"
@@ -18,15 +20,14 @@ diff -up win32/Makefile.msvc.dt win32/Makefile.msvc
  LIBS =
  !if "$(WITH_FTP)" == "1" || "$(WITH_HTTP)" == "1"
 @@ -78,7 +78,11 @@ LIBS = $(LIBS) wsock32.lib ws2_32.lib
- LIBS = $(LIBS) iconv.lib
- !endif 
- !if "$(WITH_ICU)" == "1"
--LIBS = $(LIBS) icu.lib
+ !if "$(STATIC)" == "1"
+ LIBS = $(LIBS) advapi32.lib sicuuc.lib sicuin.lib sicudt.lib
+ !else
 +!if "$(WITH_RUN_DEBUG)" == "1"
 +LIBS = $(LIBS) icuind.lib icuucd.lib icudtd.lib
 +!else
-+LIBS = $(LIBS) icuin.lib icuuc.lib icudt.lib
+ LIBS = $(LIBS) icuuc.lib icuin.lib icudt.lib
 +!endif
  !endif
+ !endif
  !if "$(WITH_ZLIB)" == "1"
- # could be named differently zdll or zlib
diff --git a/external/libxml2/libxml2-vc10.patch 
b/external/libxml2/libxml2-vc10.patch
index f3f2b511f3f2..3892b518d35d 100644
--- a/external/libxml2/libxml2-vc10.patch
+++ b/external/libxml2/libxml2-vc10.patch
@@ -3,7 +3,7 @@ Add SOLARINC, and disable SSE2 default for MSVC2012
 --- build/libxml2-2.7.6/win32/Makefile.msvc.old        2010-09-20 
20:22:41.500000000 +0200
 +++ build/libxml2-2.7.6/win32/Makefile.msvc    2010-09-20 20:23:00.250000000 
+0200
 @@ -59,6 +59,7 @@
- CFLAGS = $(CFLAGS) /D "HAVE_LZMA_H"
+ CFLAGS = $(CFLAGS) /D "HAVE_PTHREAD_H"
  !endif
  CFLAGS = $(CFLAGS) /D_CRT_SECURE_NO_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE
 +CFLAGS = $(CFLAGS) -arch:SSE $(SOLARINC)
diff --git a/external/libxml2/ubsan.patch.0 b/external/libxml2/ubsan.patch.0
deleted file mode 100644
index cebacc470cc4..000000000000
--- a/external/libxml2/ubsan.patch.0
+++ /dev/null
@@ -1,84 +0,0 @@
---- parser.c
-+++ parser.c
-@@ -1052,7 +1052,7 @@
- struct _xmlDefAttrs {
-     int nbAttrs;      /* number of defaulted attributes on that element */
-     int maxAttrs;       /* the size of the array */
--    const xmlChar *values[5]; /* array of localname/prefix/values/external */
-+    const xmlChar *values[1][5]; /* array of localname/prefix/values/external 
*/
- };
- 
- /**
-@@ -1244,17 +1244,17 @@
-       prefix = xmlDictLookup(ctxt->dict, fullattr, len);
-     }
- 
--    defaults->values[5 * defaults->nbAttrs] = name;
--    defaults->values[5 * defaults->nbAttrs + 1] = prefix;
-+    defaults->values[defaults->nbAttrs][0] = name;
-+    defaults->values[defaults->nbAttrs][1] = prefix;
-     /* intern the string and precompute the end */
-     len = xmlStrlen(value);
-     value = xmlDictLookup(ctxt->dict, value, len);
--    defaults->values[5 * defaults->nbAttrs + 2] = value;
--    defaults->values[5 * defaults->nbAttrs + 3] = value + len;
-+    defaults->values[defaults->nbAttrs][2] = value;
-+    defaults->values[defaults->nbAttrs][3] = value + len;
-     if (ctxt->external)
--        defaults->values[5 * defaults->nbAttrs + 4] = BAD_CAST "external";
-+        defaults->values[defaults->nbAttrs][4] = BAD_CAST "external";
-     else
--        defaults->values[5 * defaults->nbAttrs + 4] = NULL;
-+        defaults->values[defaults->nbAttrs][4] = NULL;
-     defaults->nbAttrs++;
- 
-     return;
-@@ -9474,8 +9474,8 @@
-       defaults = xmlHashLookup2(ctxt->attsDefault, localname, prefix);
-       if (defaults != NULL) {
-           for (i = 0;i < defaults->nbAttrs;i++) {
--              attname = defaults->values[5 * i];
--              aprefix = defaults->values[5 * i + 1];
-+              attname = defaults->values[i][0];
-+              aprefix = defaults->values[i][1];
- 
-                 /*
-                * special work for namespaces defaulted defs
-@@ -9490,9 +9490,9 @@
-                   if (j <= nbNs) continue;
- 
-                   nsname = xmlGetNamespace(ctxt, NULL);
--                  if (nsname != defaults->values[5 * i + 2]) {
-+                  if (nsname != defaults->values[i][2]) {
-                       if (nsPush(ctxt, NULL,
--                                 defaults->values[5 * i + 2]) > 0)
-+                                 defaults->values[i][2]) > 0)
-                           nbNs++;
-                   }
-               } else if (aprefix == ctxt->str_xmlns) {
-@@ -9505,9 +9505,9 @@
-                   if (j <= nbNs) continue;
- 
-                   nsname = xmlGetNamespace(ctxt, attname);
--                  if (nsname != defaults->values[2]) {
-+                  if (nsname != defaults->values[0][2]) {
-                       if (nsPush(ctxt, attname,
--                                 defaults->values[5 * i + 2]) > 0)
-+                                 defaults->values[i][2]) > 0)
-                           nbNs++;
-                   }
-               } else {
-@@ -9533,10 +9533,10 @@
-                       atts[nbatts++] = NULL;
-                   else
-                       atts[nbatts++] = xmlGetNamespace(ctxt, aprefix);
--                  atts[nbatts++] = defaults->values[5 * i + 2];
--                  atts[nbatts++] = defaults->values[5 * i + 3];
-+                  atts[nbatts++] = defaults->values[i][2];
-+                  atts[nbatts++] = defaults->values[i][3];
-                   if ((ctxt->standalone == 1) &&
--                      (defaults->values[5 * i + 4] != NULL)) {
-+                      (defaults->values[i][4] != NULL)) {
-                       xmlValidityError(ctxt, XML_DTD_STANDALONE_DEFAULTED,
-         "standalone: attribute %s on %s defaulted from external subset\n",
-                                        attname, localname);
commit 86a266cbd4d657bf96d52f7c56b4e367e8fe6cfc
Author:     Michael Stahl <michael.st...@cib.de>
AuthorDate: Tue Jan 15 17:05:00 2019 +0100
Commit:     Mike Kaganski <mike.kagan...@collabora.com>
CommitDate: Tue Jan 22 16:29:55 2019 +0100

    lcms2: upgrade to release 2.9
    
    ... at least, that's the plan - this is harder than it appears, as the
    upstream maintainer appears to have released version 2.9 at least 3
    times:
    
    - Fedora has a file evidently downloaded before Nov. 17 with SHA512 of 
e30ad5a9a1ab9e7aaace9431434caa19a5ff6143db46644aba971a5ee37a265b26bf738e886d766405a7eb45a9d620d67c7ab3684ace86a107cf5a76642c04a5
    - Gentoo has a file evidently downloaded before Nov. 19 with SHA256 of 
d4ad6f8718f7f9dc8b2a3276c9f237aa3f5eccdcf98b86dedc4262d8a1e7f009
    - Debian has a file evidently downloaded before Dec. 17 with SHA256 of 
48c6fdf98396fa245ed86e622028caf49b96fa22f3e5734f853f806fbc8e7d20
    
    The lcms2-2.9.tar.gz available from sourceforge currently matches the
    one Debian has, so let's use it.
    
    * 0017-Upgrade-Visual-studio-2017-15.8.patch added (fixing CVE-2018-16435)
    * 0001-Added-an-extra-check-to-MLU-bounds.patch.1 removed (fixed upstream)
    
    Reviewed-on: https://gerrit.libreoffice.org/66400
    Tested-by: Jenkins
    Reviewed-by: Michael Stahl <michael.st...@cib.de>
    (cherry picked from commit 99b20e589e64fbcf374d84ae68911ef2a96e537c)
    Reviewed-on: https://gerrit.libreoffice.org/66428
    Reviewed-by: Caolán McNamara <caol...@redhat.com>
    Tested-by: Caolán McNamara <caol...@redhat.com>
    (cherry picked from commit 5d6a91c4df0ea51bb32794ff6068fa19bda44307)
    
    (cherry picked from commit 1822bb92ca3e48f2397e80cf06327944557d13cb)
    
    Change-Id: Iab8dada8f6d77d5b2da8560993380b3332bc02f6
    Reviewed-on: https://gerrit.libreoffice.org/66699
    Tested-by: Mike Kaganski <mike.kagan...@collabora.com>
    Reviewed-by: Mike Kaganski <mike.kagan...@collabora.com>

diff --git a/download.lst b/download.lst
index fa3873313ed8..c8d73637d03b 100644
--- a/download.lst
+++ b/download.lst
@@ -85,8 +85,8 @@ export JPEG_TURBO_TARBALL := libjpeg-turbo-1.4.2.tar.gz
 export LANGTAGREG_MD5SUM := 59a3595c1052c5b51f996f44fe9994b9
 export LANGTAGREG_TARBALL := language-subtag-registry-2017-04-19.tar.bz2
 export LANGUAGETOOL_TARBALL := 
b63e6340a02ff1cacfeadb2c42286161-JLanguageTool-1.7.0.tar.bz2
-export LCMS2_MD5SUM := f4c08d38ceade4a664ebff7228910a33
-export LCMS2_TARBALL := lcms2-2.6.tar.gz
+export LCMS2_MD5SUM := 8de1b7724f578d2995c8fdfa35c3ad0e
+export LCMS2_TARBALL := lcms2-2.9.tar.gz
 export LIBATOMIC_OPS_MD5SUM := c0b86562d5aa40761a87134f83e6adcf
 export LIBATOMIC_OPS_TARBALL := libatomic_ops-7_2d.zip
 export LIBEOT_MD5SUM := aa24f5dd2a2992f4a116aa72af817548
diff --git a/external/lcms2/0001-Added-an-extra-check-to-MLU-bounds.patch.1 
b/external/lcms2/0001-Added-an-extra-check-to-MLU-bounds.patch.1
deleted file mode 100644
index 913f82887cb2..000000000000
--- a/external/lcms2/0001-Added-an-extra-check-to-MLU-bounds.patch.1
+++ /dev/null
@@ -1,25 +0,0 @@
-From 5ca71a7bc18b6897ab21d815d15e218e204581e2 Mon Sep 17 00:00:00 2001
-From: Marti <marti.ma...@tktbrainpower.com>
-Date: Mon, 15 Aug 2016 23:31:39 +0200
-Subject: [PATCH] Added an extra check to MLU bounds
-
-Thanks to Ibrahim el-sayed for spotting the bug
----
- src/cmstypes.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/cmstypes.c b/src/cmstypes.c
-index cb61860..c7328b9 100644
---- a/src/cmstypes.c
-+++ b/src/cmstypes.c
-@@ -1460,6 +1460,7 @@ void *Type_MLU_Read(struct _cms_typehandler_struct* 
self, cmsIOHANDLER* io, cmsU
- 
-         // Check for overflow
-         if (Offset < (SizeOfHeader + 8)) goto Error;
-+        if ((Offset + Len) > SizeOfTag + 8) goto Error;
- 
-         // True begin of the string
-         BeginOfThisString = Offset - SizeOfHeader - 8;
--- 
-2.7.4
-
diff --git a/external/lcms2/0017-Upgrade-Visual-studio-2017-15.8.patch.1 
b/external/lcms2/0017-Upgrade-Visual-studio-2017-15.8.patch.1
new file mode 100644
index 000000000000..f616e6d38239
--- /dev/null
+++ b/external/lcms2/0017-Upgrade-Visual-studio-2017-15.8.patch.1
@@ -0,0 +1,172 @@
+From 768f70ca405cd3159d990e962d54456773bb8cf8 Mon Sep 17 00:00:00 2001
+From: Marti Maria <i...@littlecms.com>
+Date: Wed, 15 Aug 2018 20:07:56 +0200
+Subject: [PATCH 17/18] Upgrade Visual studio 2017 15.8
+
+- Upgrade to 15.8
+- Add check on CGATS memory allocation (thanks to Quang Nguyen for
+pointing out this)
+---
+ Projects/VC2017/jpegicc/jpegicc.vcxproj           |  1 +
+ Projects/VC2017/lcms2_DLL/lcms2_DLL.vcxproj       |  2 +-
+ Projects/VC2017/lcms2_static/lcms2_static.vcxproj |  2 +-
+ Projects/VC2017/linkicc/linkicc.vcxproj           |  2 +-
+ Projects/VC2017/psicc/psicc.vcxproj               |  2 +-
+ Projects/VC2017/testbed/testbed.vcxproj           |  2 +-
+ Projects/VC2017/tiffdiff/tiffdiff.vcxproj         |  2 +-
+ Projects/VC2017/tifficc/tifficc.vcxproj           |  2 +-
+ Projects/VC2017/transicc/transicc.vcxproj         |  1 +
+ src/cmscgats.c                                    | 14 ++++++++++----
+ 10 files changed, 19 insertions(+), 11 deletions(-)
+
+diff --git a/Projects/VC2017/jpegicc/jpegicc.vcxproj 
b/Projects/VC2017/jpegicc/jpegicc.vcxproj
+index ab26a53..39cfd00 100644
+--- a/Projects/VC2017/jpegicc/jpegicc.vcxproj
++++ b/Projects/VC2017/jpegicc/jpegicc.vcxproj
+@@ -22,6 +22,7 @@
+     <ProjectGuid>{62812507-F926-4968-96A9-17678460AD90}</ProjectGuid>
+     <RootNamespace>jpegicc</RootNamespace>
+     <Keyword>Win32Proj</Keyword>
++    <WindowsTargetPlatformVersion>10.0.17134.0</WindowsTargetPlatformVersion>
+   </PropertyGroup>
+   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" 
Label="Configuration">
+diff --git a/Projects/VC2017/lcms2_DLL/lcms2_DLL.vcxproj 
b/Projects/VC2017/lcms2_DLL/lcms2_DLL.vcxproj
+index 4c8aa3f..d1bf3eb 100644
+--- a/Projects/VC2017/lcms2_DLL/lcms2_DLL.vcxproj
++++ b/Projects/VC2017/lcms2_DLL/lcms2_DLL.vcxproj
+@@ -22,7 +22,7 @@
+     <ProjectGuid>{8C51BE48-ADB8-4089-A9EC-F6BF993A0548}</ProjectGuid>
+     <RootNamespace>lcms2_DLL</RootNamespace>
+     <Keyword>Win32Proj</Keyword>
+-    <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
++    <WindowsTargetPlatformVersion>10.0.17134.0</WindowsTargetPlatformVersion>
+   </PropertyGroup>
+   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" 
Label="Configuration">
+diff --git a/Projects/VC2017/lcms2_static/lcms2_static.vcxproj 
b/Projects/VC2017/lcms2_static/lcms2_static.vcxproj
+index 2a9988a..9fc05ce 100644
+--- a/Projects/VC2017/lcms2_static/lcms2_static.vcxproj
++++ b/Projects/VC2017/lcms2_static/lcms2_static.vcxproj
+@@ -22,7 +22,7 @@
+     <ProjectGuid>{71DEDE59-3F1E-486B-A899-4283000F76B5}</ProjectGuid>
+     <RootNamespace>lcms2_static</RootNamespace>
+     <Keyword>Win32Proj</Keyword>
+-    <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
++    <WindowsTargetPlatformVersion>10.0.17134.0</WindowsTargetPlatformVersion>
+   </PropertyGroup>
+   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" 
Label="Configuration">
+diff --git a/Projects/VC2017/linkicc/linkicc.vcxproj 
b/Projects/VC2017/linkicc/linkicc.vcxproj
+index 30c2b4e..51586dd 100644
+--- a/Projects/VC2017/linkicc/linkicc.vcxproj
++++ b/Projects/VC2017/linkicc/linkicc.vcxproj
+@@ -22,7 +22,7 @@
+     <ProjectGuid>{FBFBE1DC-DB84-4BA1-9552-B4780F457849}</ProjectGuid>
+     <RootNamespace>linkicc</RootNamespace>
+     <Keyword>Win32Proj</Keyword>
+-    <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
++    <WindowsTargetPlatformVersion>10.0.17134.0</WindowsTargetPlatformVersion>
+   </PropertyGroup>
+   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" 
Label="Configuration">
+diff --git a/Projects/VC2017/psicc/psicc.vcxproj 
b/Projects/VC2017/psicc/psicc.vcxproj
+index 9dcf89a..8f26e12 100644
+--- a/Projects/VC2017/psicc/psicc.vcxproj
++++ b/Projects/VC2017/psicc/psicc.vcxproj
+@@ -22,7 +22,7 @@
+     <ProjectGuid>{EF6A8851-65FE-46F5-B9EF-14F0B671F693}</ProjectGuid>
+     <RootNamespace>psicc</RootNamespace>
+     <Keyword>Win32Proj</Keyword>
+-    <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
++    <WindowsTargetPlatformVersion>10.0.17134.0</WindowsTargetPlatformVersion>
+   </PropertyGroup>
+   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" 
Label="Configuration">
+diff --git a/Projects/VC2017/testbed/testbed.vcxproj 
b/Projects/VC2017/testbed/testbed.vcxproj
+index 0af3762..3f6aea3 100644
+--- a/Projects/VC2017/testbed/testbed.vcxproj
++++ b/Projects/VC2017/testbed/testbed.vcxproj
+@@ -22,7 +22,7 @@
+     <ProjectGuid>{928A3A2B-46EF-4279-959C-513B3652FF0E}</ProjectGuid>
+     <RootNamespace>testbed</RootNamespace>
+     <Keyword>Win32Proj</Keyword>
+-    <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
++    <WindowsTargetPlatformVersion>10.0.17134.0</WindowsTargetPlatformVersion>
+   </PropertyGroup>
+   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" 
Label="Configuration">
+diff --git a/Projects/VC2017/tiffdiff/tiffdiff.vcxproj 
b/Projects/VC2017/tiffdiff/tiffdiff.vcxproj
+index 7edfe28..3a6d837 100644
+--- a/Projects/VC2017/tiffdiff/tiffdiff.vcxproj
++++ b/Projects/VC2017/tiffdiff/tiffdiff.vcxproj
+@@ -22,7 +22,7 @@
+     <ProjectGuid>{75B91835-CCD7-48BE-A606-A9C997D5DBEE}</ProjectGuid>
+     <RootNamespace>tiffdiff</RootNamespace>
+     <Keyword>Win32Proj</Keyword>
+-    <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
++    <WindowsTargetPlatformVersion>10.0.17134.0</WindowsTargetPlatformVersion>
+   </PropertyGroup>
+   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" 
Label="Configuration">
+diff --git a/Projects/VC2017/tifficc/tifficc.vcxproj 
b/Projects/VC2017/tifficc/tifficc.vcxproj
+index cd9f04c..5ef954f 100644
+--- a/Projects/VC2017/tifficc/tifficc.vcxproj
++++ b/Projects/VC2017/tifficc/tifficc.vcxproj
+@@ -22,7 +22,7 @@
+     <ProjectGuid>{2256DE16-ED92-4A6F-9C54-F65BB61E64A2}</ProjectGuid>
+     <RootNamespace>tifficc</RootNamespace>
+     <Keyword>Win32Proj</Keyword>
+-    <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
++    <WindowsTargetPlatformVersion>10.0.17134.0</WindowsTargetPlatformVersion>
+   </PropertyGroup>
+   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" 
Label="Configuration">
+diff --git a/Projects/VC2017/transicc/transicc.vcxproj 
b/Projects/VC2017/transicc/transicc.vcxproj
+index d9b77c6..b3173d8 100644
+--- a/Projects/VC2017/transicc/transicc.vcxproj
++++ b/Projects/VC2017/transicc/transicc.vcxproj
+@@ -22,6 +22,7 @@
+     <ProjectGuid>{9EE22D66-C849-474C-9ED5-C3E141DAB160}</ProjectGuid>
+     <RootNamespace>transicc</RootNamespace>
+     <Keyword>Win32Proj</Keyword>
++    <WindowsTargetPlatformVersion>10.0.17134.0</WindowsTargetPlatformVersion>
+   </PropertyGroup>
+   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" 
Label="Configuration">
+diff --git a/src/cmscgats.c b/src/cmscgats.c
+index 1a87613..8c3e96d 100644
+--- a/src/cmscgats.c
++++ b/src/cmscgats.c
+@@ -1,7 +1,7 @@
+ 
//---------------------------------------------------------------------------------
+ //
+ //  Little Color Management System
+-//  Copyright (c) 1998-2017 Marti Maria Saguer
++//  Copyright (c) 1998-2018 Marti Maria Saguer
+ //
+ // Permission is hereby granted, free of charge, to any person obtaining
+ // a copy of this software and associated documentation files (the 
"Software"),
+@@ -1506,10 +1506,16 @@ void AllocateDataSet(cmsIT8* it8)
+     t-> nSamples   = atoi(cmsIT8GetProperty(it8, "NUMBER_OF_FIELDS"));
+     t-> nPatches   = atoi(cmsIT8GetProperty(it8, "NUMBER_OF_SETS"));
+ 
+-    t-> Data = (char**)AllocChunk (it8, ((cmsUInt32Number) t->nSamples + 1) * 
((cmsUInt32Number) t->nPatches + 1) *sizeof (char*));
+-    if (t->Data == NULL) {
++    if (t -> nSamples < 0 || t->nSamples > 0x7ffe || t->nPatches < 0 || 
t->nPatches > 0x7ffe)
++    {
++        SynError(it8, "AllocateDataSet: too much data");
++    }
++    else {
++        t->Data = (char**)AllocChunk(it8, ((cmsUInt32Number)t->nSamples + 1) 
* ((cmsUInt32Number)t->nPatches + 1) * sizeof(char*));
++        if (t->Data == NULL) {
+ 
+-        SynError(it8, "AllocateDataSet: Unable to allocate data array");
++            SynError(it8, "AllocateDataSet: Unable to allocate data array");
++        }
+     }
+ 
+ }
+-- 
+2.17.1
+
diff --git a/external/lcms2/ExternalPackage_lcms2.mk 
b/external/lcms2/ExternalPackage_lcms2.mk
index 07f6ddbad4d2..4efd696c40be 100644
--- a/external/lcms2/ExternalPackage_lcms2.mk
+++ b/external/lcms2/ExternalPackage_lcms2.mk
@@ -21,7 +21,7 @@ else ifeq ($(COM),MSC)
 $(eval $(call 
gb_ExternalPackage_add_file,lcms2,$(LIBO_LIB_FOLDER)/lcms2.dll,bin/lcms2.dll))
 endif # $(COM)
 else  # $(OS) != WNT/MACOSX
-$(eval $(call 
gb_ExternalPackage_add_file,lcms2,$(LIBO_LIB_FOLDER)/liblcms2.so.2,src/.libs/liblcms2.so.2.0.6))
+$(eval $(call 
gb_ExternalPackage_add_file,lcms2,$(LIBO_LIB_FOLDER)/liblcms2.so.2,src/.libs/liblcms2.so.2.0.8))
 endif # $(OS)
 endif # $(DISABLE_DYNLOADING)
 
diff --git a/external/lcms2/ExternalProject_lcms2.mk 
b/external/lcms2/ExternalProject_lcms2.mk
index 86791ddfbf17..51eb81acfc68 100644
--- a/external/lcms2/ExternalProject_lcms2.mk
+++ b/external/lcms2/ExternalProject_lcms2.mk
@@ -17,9 +17,10 @@ ifeq ($(COM),MSC)
 
 $(call gb_ExternalProject_get_state_target,lcms2,build):
        $(call gb_ExternalProject_run,build,\
-               $(if $(filter 140,$(VCVER)),$(DEVENV) /Upgrade 
lcms2_DLL.vcxproj,echo up-to-date) && \
                MSBuild.exe lcms2_DLL.vcxproj \
-                       $(if $(filter 
140,$(VCVER)),/p:PlatformToolset=v140,/p:PlatformToolset=v120) \
+                       $(if $(filter 140,$(VCVER)),/p:PlatformToolset=v140 
/p:VisualStudioVersion=14.0 /ToolsVersion:14.0) \
+                       $(if $(filter 150,$(VCVER)),/p:PlatformToolset=v141 
/p:VisualStudioVersion=15.0 /ToolsVersion:15.0) \
+                       $(if $(filter 
150-10,$(VCVER)-$(WINDOWS_SDK_VERSION)),/p:WindowsTargetPlatformVersion=$(UCRTVERSION))
 \
                        /p:Configuration=$(if 
$(MSVC_USE_DEBUG_RUNTIME),Debug,Release) \
                        /p:Platform=$(if $(filter INTEL,$(CPUNAME)),Win32,x64) 
/p:TargetName=lcms2 \
        ,Projects/VC2013/lcms2_DLL)
@@ -30,8 +31,7 @@ $(call gb_ExternalProject_get_state_target,lcms2,build):
                        $(if $(CROSS_COMPILING),--build=$(BUILD_PLATFORM) 
--host=$(HOST_PLATFORM) \
                        $(if $(filter INTEL 
ARM,$(CPUNAME)),ac_cv_c_bigendian=no)) \
                        CPPFLAGS=" $(SOLARINC)" \
-                       CFLAGS='$(CFLAGS) $(if $(debug),$(gb_DEBUGINFO_FLAGS) 
$(gb_DEBUG_CFLAGS),$(gb_COMPILEROPTFLAGS))' \
-                       $(if $(filter-out WNTGCC,$(OS)$(COM)),,CPPFLAGS=" 
-DCMS_DLL_BUILD") \
+                       CFLAGS='$(CFLAGS) $(if $(debug),$(gb_DEBUGINFO_FLAGS) 
$(gb_DEBUG_CFLAGS)) $(if 
$(ENABLE_OPTIMIZED),$(gb_COMPILEROPTFLAGS),$(gb_COMPILERNOOPTFLAGS))' \
                        $(if $(DISABLE_DYNLOADING), \
                                --enable-static --disable-shared \
                        , \
diff --git a/external/lcms2/UnpackedTarball_lcms2.mk 
b/external/lcms2/UnpackedTarball_lcms2.mk
index db229340ea12..c5e1839cfccc 100644
--- a/external/lcms2/UnpackedTarball_lcms2.mk
+++ b/external/lcms2/UnpackedTarball_lcms2.mk
@@ -10,16 +10,16 @@
 $(eval $(call gb_UnpackedTarball_UnpackedTarball,lcms2))
 
 $(eval $(call gb_UnpackedTarball_set_tarball,lcms2,$(LCMS2_TARBALL)))
+
+$(eval $(call gb_UnpackedTarball_update_autoconf_configs,lcms2))
+
 $(eval $(call gb_UnpackedTarball_set_patchlevel,lcms2,3))
 
 $(eval $(call gb_UnpackedTarball_add_patches,lcms2,\
-       external/lcms2/lcms2.patch \
+       external/lcms2/0017-Upgrade-Visual-studio-2017-15.8.patch.1 \
        external/lcms2/lcms2-2.4-windows.patch \
        external/lcms2/lcms2-msvc-disable-sse2.patch.1 \
-       external/lcms2/lcms2-vc2013-project.patch \
-       external/lcms2/lcms2-config-guess.patch.0 \
-       external/lcms2/ubsan.patch.0 \
-       external/lcms2/0001-Added-an-extra-check-to-MLU-bounds.patch.1 \
+       external/lcms2/c++17.patch.0 \
 ))
 
 # vim: set noet sw=4 ts=4:
diff --git a/external/lcms2/c++17.patch.0 b/external/lcms2/c++17.patch.0
new file mode 100644
index 000000000000..9a9de3f04c83
--- /dev/null
+++ b/external/lcms2/c++17.patch.0
@@ -0,0 +1,22 @@
+--- include/lcms2.h
++++ include/lcms2.h
+@@ -1248,13 +1248,13 @@
+ CMSAPI void*             CMSEXPORT cmsStageData(const cmsStage* mpe);
+ 
+ // Sampling
+-typedef cmsInt32Number (* cmsSAMPLER16)   (register const cmsUInt16Number 
In[],
+-                                            register cmsUInt16Number Out[],
+-                                            register void * Cargo);
++typedef cmsInt32Number (* cmsSAMPLER16)   (const cmsUInt16Number In[],
++                                            cmsUInt16Number Out[],
++                                            void * Cargo);
+ 
+-typedef cmsInt32Number (* cmsSAMPLERFLOAT)(register const cmsFloat32Number 
In[],
+-                                            register cmsFloat32Number Out[],
+-                                            register void * Cargo);
++typedef cmsInt32Number (* cmsSAMPLERFLOAT)(const cmsFloat32Number In[],
++                                            cmsFloat32Number Out[],
++                                            void * Cargo);
+ 
+ // Use this flag to prevent changes being written to destination
+ #define SAMPLER_INSPECT     0x01000000
diff --git a/external/lcms2/lcms2-2.4-windows.patch 
b/external/lcms2/lcms2-2.4-windows.patch
index f1c681aee7f2..749a81200b11 100644
--- a/external/lcms2/lcms2-2.4-windows.patch
+++ b/external/lcms2/lcms2-2.4-windows.patch
@@ -1,34 +1,10 @@
---- misc/lcms2-2.4/Projects/VC2010/lcms2_DLL/lcms2_DLL.vcproj  2012-09-10 
18:01:51.000000000 +0200
-+++ misc/build/lcms2-2.4/Projects/VC2010/lcms2_DLL/lcms2_DLL.vcproj    
2012-10-05 22:35:01.607191700 +0200
-@@ -205,6 +205,10 @@
-                               >
-                       </File>
-                       <File
-+                              RelativePath="..\..\..\src\cmshalf.c"
-+                              >
-+                      </File>
-+                      <File
-                               RelativePath="..\..\..\src\cmsintrp.c"
-                               >
-                       </File>
---- misc/lcms2-2.4/Projects/VC2010/lcms2_static/lcms2_static.vcproj    
2012-09-10 18:01:51.000000000 +0200
-+++ misc/build/lcms2-2.4/Projects/VC2010/lcms2_static/lcms2_static.vcproj      
2012-10-05 22:35:28.168963200 +0200
-@@ -175,6 +175,10 @@
-                               >
-                       </File>
-                       <File
-+                              RelativePath="..\..\..\src\cmshalf.c"
-+                              >
-+                      </File>
-+                      <File
-                               RelativePath="..\..\..\src\cmsintrp.c"
-                               >
-                       </File>
+TODO: Is this still needed?
+
 --- misc/lcms2-2.4/include/lcms2.h     2011-12-15 16:45:47.000000000 +0100
 +++ misc/build/lcms2-2.4/include/lcms2.h       2012-03-17 22:53:28.731585981 
+0100
 @@ -192,6 +192,15 @@ typedef int                  cmsBool;
- # endif
- #endif
+ #endif  // CMS_USE_BIG_ENDIAN
+ 
  
 +// LibreOffice always builds this as DLL and with the stdcall calling
 +// convention, so make this usable from outside without having to
diff --git a/external/lcms2/lcms2-config-guess.patch.0 
b/external/lcms2/lcms2-config-guess.patch.0
deleted file mode 100644
index 546fc481ecc1..000000000000
--- a/external/lcms2/lcms2-config-guess.patch.0
+++ /dev/null
@@ -1,1566 +0,0 @@
---- config.guess
-+++ config.guess
-@@ -1,14 +1,12 @@
- #! /bin/sh
- # Attempt to guess a canonical system name.
--#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
--#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
--#   Free Software Foundation, Inc.
-+#   Copyright 1992-2014 Free Software Foundation, Inc.
- 
--timestamp='2009-11-20'
-+timestamp='2014-03-23'
- 
- # This file is free software; you can redistribute it and/or modify it
- # under the terms of the GNU General Public License as published by
--# the Free Software Foundation; either version 2 of the License, or
-+# the Free Software Foundation; either version 3 of the License, or
- # (at your option) any later version.
- #
- # This program is distributed in the hope that it will be useful, but
-@@ -17,26 +15,22 @@
- # General Public License for more details.
- #
- # You should have received a copy of the GNU General Public License
--# along with this program; if not, write to the Free Software
--# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
--# 02110-1301, USA.
-+# along with this program; if not, see <http://www.gnu.org/licenses/>.
- #
- # As a special exception to the GNU General Public License, if you
- # distribute this file as part of a program that contains a
- # configuration script generated by Autoconf, you may include it under
--# the same distribution terms that you use for the rest of that program.
--
--
--# Originally written by Per Bothner.  Please send patches (context
--# diff format) to <config-patc...@gnu.org> and include a ChangeLog
--# entry.
-+# the same distribution terms that you use for the rest of that
-+# program.  This Exception is an additional permission under section 7
-+# of the GNU General Public License, version 3 ("GPLv3").
- #
--# This script attempts to guess a canonical system name similar to
--# config.sub.  If it succeeds, it prints the system name on stdout, and
--# exits with 0.  Otherwise, it exits with 1.
-+# Originally written by Per Bothner.
- #
- # You can get the latest version of this script from:
- # 
http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
-+#
-+# Please send patches with a ChangeLog entry to config-patc...@gnu.org.
-+
- 
- me=`echo "$0" | sed -e 's,.*/,,'`
- 
-@@ -56,8 +50,7 @@
- GNU config.guess ($timestamp)
- 
- Originally written by Per Bothner.
--Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
--2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
-+Copyright 1992-2014 Free Software Foundation, Inc.
- 
- This is free software; see the source for copying conditions.  There is NO
- warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
-@@ -139,12 +132,33 @@
- UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
- UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
- 
-+case "${UNAME_SYSTEM}" in
-+Linux|GNU|GNU/*)
-+      # If the system lacks a compiler, then just pick glibc.
-+      # We could probably try harder.
-+      LIBC=gnu
-+
-+      eval $set_cc_for_build
-+      cat <<-EOF > $dummy.c
-+      #include <features.h>
-+      #if defined(__UCLIBC__)
-+      LIBC=uclibc
-+      #elif defined(__dietlibc__)
-+      LIBC=dietlibc
-+      #else
-+      LIBC=gnu
-+      #endif
-+      EOF
-+      eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, 
,,g'`
-+      ;;
-+esac
-+
- # Note: order is significant - the case branches are not exclusive.
- 
- case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
-     *:NetBSD:*:*)
-       # NetBSD (nbsd) targets should (where applicable) match one or
--      # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
-+      # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
-       # *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently
-       # switched to ELF, *-*-netbsd* would select the old
-       # object file format.  This provides both forward
-@@ -180,7 +194,7 @@
-               fi
-               ;;
-           *)
--              os=netbsd
-+              os=netbsd
-               ;;
-       esac
-       # The OS release
-@@ -201,6 +215,10 @@
-       # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
-       echo "${machine}-${os}${release}"
-       exit ;;
-+    *:Bitrig:*:*)
-+      UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
-+      echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE}
-+      exit ;;
-     *:OpenBSD:*:*)
-       UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
-       echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
-@@ -223,7 +241,7 @@
-               UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
-               ;;
-       *5.*)
--              UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
-+              UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
-               ;;
-       esac
-       # According to Compaq, /usr/sbin/psrinfo has been available on
-@@ -269,7 +287,10 @@
-       # A Xn.n version is an unreleased experimental baselevel.
-       # 1.2 uses "1.2" for uname -r.
-       echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 
's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
--      exit ;;
-+      # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
-+      exitcode=$?
-+      trap '' 0
-+      exit $exitcode ;;
-     Alpha\ *:Windows_NT*:*)
-       # How do we know it's Interix rather than the generic POSIX subsystem?
-       # Should we change UNAME_MACHINE based on the output of uname instead
-@@ -295,12 +316,12 @@
-       echo s390-ibm-zvmoe
-       exit ;;
-     *:OS400:*:*)
--        echo powerpc-ibm-os400
-+      echo powerpc-ibm-os400
-       exit ;;
-     arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
-       echo arm-acorn-riscix${UNAME_RELEASE}
-       exit ;;
--    arm:riscos:*:*|arm:RISCOS:*:*)
-+    arm*:riscos:*:*|arm*:RISCOS:*:*)
-       echo arm-unknown-riscos
-       exit ;;
-     SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
-@@ -394,23 +415,23 @@
-     # MiNT.  But MiNT is downward compatible to TOS, so this should
-     # be no problem.
-     atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
--        echo m68k-atari-mint${UNAME_RELEASE}
-+      echo m68k-atari-mint${UNAME_RELEASE}
-       exit ;;
-     atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
-       echo m68k-atari-mint${UNAME_RELEASE}
--        exit ;;
-+      exit ;;
-     *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
--        echo m68k-atari-mint${UNAME_RELEASE}
-+      echo m68k-atari-mint${UNAME_RELEASE}
-       exit ;;
-     milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
--        echo m68k-milan-mint${UNAME_RELEASE}
--        exit ;;
-+      echo m68k-milan-mint${UNAME_RELEASE}
-+      exit ;;
-     hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
--        echo m68k-hades-mint${UNAME_RELEASE}
--        exit ;;
-+      echo m68k-hades-mint${UNAME_RELEASE}
-+      exit ;;
-     *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
--        echo m68k-unknown-mint${UNAME_RELEASE}
--        exit ;;
-+      echo m68k-unknown-mint${UNAME_RELEASE}
-+      exit ;;
-     m68k:machten:*:*)
-       echo m68k-apple-machten${UNAME_RELEASE}
-       exit ;;
-@@ -480,8 +501,8 @@
-       echo m88k-motorola-sysv3
-       exit ;;
-     AViiON:dgux:*:*)
--        # DG/UX returns AViiON for all architectures
--        UNAME_PROCESSOR=`/usr/bin/uname -p`
-+      # DG/UX returns AViiON for all architectures
-+      UNAME_PROCESSOR=`/usr/bin/uname -p`
-       if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
-       then
-           if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
-@@ -494,7 +515,7 @@
-       else
-           echo i586-dg-dgux${UNAME_RELEASE}
-       fi
--      exit ;;
-+      exit ;;
-     M88*:DolphinOS:*:*)       # DolphinOS (SVR3)
-       echo m88k-dolphin-sysv3
-       exit ;;
-@@ -551,7 +572,7 @@
-               echo rs6000-ibm-aix3.2
-       fi
-       exit ;;
--    *:AIX:*:[456])
-+    *:AIX:*:[4567])
-       IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk 
'{ print $1 }'`
-       if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; 
then
-               IBM_ARCH=rs6000
-@@ -594,52 +615,52 @@
-           9000/[678][0-9][0-9])
-               if [ -x /usr/bin/getconf ]; then
-                   sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
--                    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 
2>/dev/null`
--                    case "${sc_cpu_version}" in
--                      523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
--                      528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
--                      532)                      # CPU_PA_RISC2_0
--                        case "${sc_kernel_bits}" in
--                          32) HP_ARCH="hppa2.0n" ;;
--                          64) HP_ARCH="hppa2.0w" ;;
-+                  sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
-+                  case "${sc_cpu_version}" in
-+                    523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
-+                    528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
-+                    532)                      # CPU_PA_RISC2_0
-+                      case "${sc_kernel_bits}" in
-+                        32) HP_ARCH="hppa2.0n" ;;
-+                        64) HP_ARCH="hppa2.0w" ;;
-                         '') HP_ARCH="hppa2.0" ;;   # HP-UX 10.20
--                        esac ;;
--                    esac
-+                      esac ;;
-+                  esac
-               fi
-               if [ "${HP_ARCH}" = "" ]; then
-                   eval $set_cc_for_build
--                  sed 's/^              //' << EOF >$dummy.c
-+                  sed 's/^            //' << EOF >$dummy.c
-+
-+              #define _HPUX_SOURCE
-+              #include <stdlib.h>
-+              #include <unistd.h>
-+
-+              int main ()
-+              {
-+              #if defined(_SC_KERNEL_BITS)
-+                  long bits = sysconf(_SC_KERNEL_BITS);
-+              #endif
-+                  long cpu  = sysconf (_SC_CPU_VERSION);
- 
--              #define _HPUX_SOURCE
--              #include <stdlib.h>
--              #include <unistd.h>
--
--              int main ()
--              {
--              #if defined(_SC_KERNEL_BITS)
--                  long bits = sysconf(_SC_KERNEL_BITS);
--              #endif
--                  long cpu  = sysconf (_SC_CPU_VERSION);
--
--                  switch (cpu)
--                      {
--                      case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
--                      case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
--                      case CPU_PA_RISC2_0:
--              #if defined(_SC_KERNEL_BITS)
--                          switch (bits)
--                              {
--                              case 64: puts ("hppa2.0w"); break;
--                              case 32: puts ("hppa2.0n"); break;
--                              default: puts ("hppa2.0"); break;
--                              } break;
--              #else  /* !defined(_SC_KERNEL_BITS) */
--                          puts ("hppa2.0"); break;
--              #endif
--                      default: puts ("hppa1.0"); break;
--                      }
--                  exit (0);
--              }
-+                  switch (cpu)
-+                      {
-+                      case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
-+                      case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
-+                      case CPU_PA_RISC2_0:
-+              #if defined(_SC_KERNEL_BITS)
-+                          switch (bits)
-+                              {
-+                              case 64: puts ("hppa2.0w"); break;
-+                              case 32: puts ("hppa2.0n"); break;
-+                              default: puts ("hppa2.0"); break;
-+                              } break;
-+              #else  /* !defined(_SC_KERNEL_BITS) */
-+                          puts ("hppa2.0"); break;
-+              #endif
-+                      default: puts ("hppa1.0"); break;
-+                      }
-+                  exit (0);
-+              }
- EOF
-                   (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && 
HP_ARCH=`$dummy`
-                   test -z "$HP_ARCH" && HP_ARCH=hppa
-@@ -730,22 +751,22 @@
-       exit ;;
-     C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
-       echo c1-convex-bsd
--        exit ;;
-+      exit ;;
-     C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
-       if getsysinfo -f scalar_acc
-       then echo c32-convex-bsd
-       else echo c2-convex-bsd
-       fi
--        exit ;;
-+      exit ;;
-     C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
-       echo c34-convex-bsd
--        exit ;;
-+      exit ;;
-     C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
-       echo c38-convex-bsd
--        exit ;;
-+      exit ;;
-     C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
-       echo c4-convex-bsd
--        exit ;;
-+      exit ;;
-     CRAY*Y-MP:*:*:*)
-       echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-       exit ;;
-@@ -769,14 +790,14 @@
-       exit ;;
-     F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
-       FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 
'abcdefghijklmnopqrstuvwxyz'`
--        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 
'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
--        FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
--        echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
--        exit ;;
-+      FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 
'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
-+      FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
-+      echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
-+      exit ;;
-     5000:UNIX_System_V:4.*:*)
--        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 
'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
--        FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 
'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
--        echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
-+      FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 
'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
-+      FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 
'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
-+      echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
-       exit ;;
-     i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
-       echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
-@@ -788,30 +809,35 @@
-       echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
-       exit ;;
-     *:FreeBSD:*:*)
--      case ${UNAME_MACHINE} in
--          pc98)
--              echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 
's/[-(].*//'` ;;
-+      UNAME_PROCESSOR=`/usr/bin/uname -p`
-+      case ${UNAME_PROCESSOR} in
-           amd64)
-               echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 
's/[-(].*//'` ;;
-           *)
--              echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed 
-e 's/[-(].*//'` ;;
-+              echo ${UNAME_PROCESSOR}-unknown-freebsd`echo 
${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
-       esac
-       exit ;;
-     i*:CYGWIN*:*)
-       echo ${UNAME_MACHINE}-pc-cygwin
-       exit ;;
-+    *:MINGW64*:*)
-+      echo ${UNAME_MACHINE}-pc-mingw64
-+      exit ;;
-     *:MINGW*:*)
-       echo ${UNAME_MACHINE}-pc-mingw32
-       exit ;;
-+    *:MSYS*:*)
-+      echo ${UNAME_MACHINE}-pc-msys
-+      exit ;;
-     i*:windows32*:*)
--      # uname -m includes "-pc" on this system.
--      echo ${UNAME_MACHINE}-mingw32
-+      # uname -m includes "-pc" on this system.
-+      echo ${UNAME_MACHINE}-mingw32
-       exit ;;
-     i*:PW*:*)
-       echo ${UNAME_MACHINE}-pc-pw32
-       exit ;;
-     *:Interix*:*)
--      case ${UNAME_MACHINE} in
-+      case ${UNAME_MACHINE} in
-           x86)
-               echo i586-pc-interix${UNAME_RELEASE}
-               exit ;;
-@@ -848,15 +874,22 @@
-       exit ;;
-     *:GNU:*:*)
-       # the GNU system
--      echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo 
${UNAME_RELEASE}|sed -e 's,/.*$,,'`
-+      echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo 
${UNAME_RELEASE}|sed -e 's,/.*$,,'`
-       exit ;;
-     *:GNU/*:*:*)
-       # other systems with GNU libc and userland
--      echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' 
| tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
-+      echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' 
| tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
-       exit ;;
-     i*86:Minix:*:*)
-       echo ${UNAME_MACHINE}-pc-minix
-       exit ;;
-+    aarch64:Linux:*:*)
-+      echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
-+      exit ;;
-+    aarch64_be:Linux:*:*)
-+      UNAME_MACHINE=aarch64_be
-+      echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
-+      exit ;;
-     alpha:Linux:*:*)
-       case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
-         EV5)   UNAME_MACHINE=alphaev5 ;;
-@@ -866,52 +899,56 @@
-         EV6)   UNAME_MACHINE=alphaev6 ;;
-         EV67)  UNAME_MACHINE=alphaev67 ;;
-         EV68*) UNAME_MACHINE=alphaev68 ;;
--        esac
-+      esac
-       objdump --private-headers /bin/sh | grep -q ld.so.1
--      if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
--      echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
-+      if test "$?" = 0 ; then LIBC="gnulibc1" ; fi
-+      echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
-+      exit ;;
-+    arc:Linux:*:* | arceb:Linux:*:*)
-+      echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
-       exit ;;
-     arm*:Linux:*:*)
-       eval $set_cc_for_build
-       if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
-           | grep -q __ARM_EABI__
-       then
--          echo ${UNAME_MACHINE}-unknown-linux-gnu
-+          echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
-       else
--          echo ${UNAME_MACHINE}-unknown-linux-gnueabi
-+          if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
-+              | grep -q __ARM_PCS_VFP
-+          then
-+              echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi
-+          else
-+              echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf
-+          fi
-       fi
-       exit ;;
-     avr32*:Linux:*:*)
--      echo ${UNAME_MACHINE}-unknown-linux-gnu
-+      echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
-       exit ;;
-     cris:Linux:*:*)
--      echo cris-axis-linux-gnu
-+      echo ${UNAME_MACHINE}-axis-linux-${LIBC}
-       exit ;;
-     crisv32:Linux:*:*)
--      echo crisv32-axis-linux-gnu
-+      echo ${UNAME_MACHINE}-axis-linux-${LIBC}
-       exit ;;
-     frv:Linux:*:*)
--      echo frv-unknown-linux-gnu
-+      echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
-+      exit ;;
-+    hexagon:Linux:*:*)
-+      echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
-       exit ;;
-     i*86:Linux:*:*)
--      LIBC=gnu
--      eval $set_cc_for_build
--      sed 's/^        //' << EOF >$dummy.c
--      #ifdef __dietlibc__
--      LIBC=dietlibc
--      #endif
--EOF
--      eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
--      echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
-+      echo ${UNAME_MACHINE}-pc-linux-${LIBC}
-       exit ;;
-     ia64:Linux:*:*)
--      echo ${UNAME_MACHINE}-unknown-linux-gnu
-+      echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
-       exit ;;
-     m32r*:Linux:*:*)
--      echo ${UNAME_MACHINE}-unknown-linux-gnu
-+      echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
-       exit ;;
-     m68*:Linux:*:*)
--      echo ${UNAME_MACHINE}-unknown-linux-gnu
-+      echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
-       exit ;;
-     mips:Linux:*:* | mips64:Linux:*:*)
-       eval $set_cc_for_build
-@@ -930,51 +967,63 @@
-       #endif
- EOF
-       eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
--      test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
-+      test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
-       ;;
--    or32:Linux:*:*)
--      echo or32-unknown-linux-gnu
-+    openrisc*:Linux:*:*)
-+      echo or1k-unknown-linux-${LIBC}
-+      exit ;;
-+    or32:Linux:*:* | or1k*:Linux:*:*)
-+      echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
-       exit ;;
-     padre:Linux:*:*)
--      echo sparc-unknown-linux-gnu
-+      echo sparc-unknown-linux-${LIBC}
-       exit ;;
-     parisc64:Linux:*:* | hppa64:Linux:*:*)
--      echo hppa64-unknown-linux-gnu
-+      echo hppa64-unknown-linux-${LIBC}
-       exit ;;
-     parisc:Linux:*:* | hppa:Linux:*:*)
-       # Look for CPU level
-       case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
--        PA7*) echo hppa1.1-unknown-linux-gnu ;;
--        PA8*) echo hppa2.0-unknown-linux-gnu ;;
--        *)    echo hppa-unknown-linux-gnu ;;
-+        PA7*) echo hppa1.1-unknown-linux-${LIBC} ;;
-+        PA8*) echo hppa2.0-unknown-linux-${LIBC} ;;
-+        *)    echo hppa-unknown-linux-${LIBC} ;;
-       esac
-       exit ;;
-     ppc64:Linux:*:*)
--      echo powerpc64-unknown-linux-gnu
-+      echo powerpc64-unknown-linux-${LIBC}
-       exit ;;
-     ppc:Linux:*:*)
--      echo powerpc-unknown-linux-gnu
-+      echo powerpc-unknown-linux-${LIBC}
-+      exit ;;
-+    ppc64le:Linux:*:*)
-+      echo powerpc64le-unknown-linux-${LIBC}
-+      exit ;;
-+    ppcle:Linux:*:*)
-+      echo powerpcle-unknown-linux-${LIBC}
-       exit ;;
-     s390:Linux:*:* | s390x:Linux:*:*)
--      echo ${UNAME_MACHINE}-ibm-linux
-+      echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
-       exit ;;
-     sh64*:Linux:*:*)
--      echo ${UNAME_MACHINE}-unknown-linux-gnu
-+      echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
-       exit ;;
-     sh*:Linux:*:*)
--      echo ${UNAME_MACHINE}-unknown-linux-gnu
-+      echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
-       exit ;;
-     sparc:Linux:*:* | sparc64:Linux:*:*)
--      echo ${UNAME_MACHINE}-unknown-linux-gnu
-+      echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
-+      exit ;;
-+    tile*:Linux:*:*)
-+      echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
-       exit ;;
-     vax:Linux:*:*)
--      echo ${UNAME_MACHINE}-dec-linux-gnu
-+      echo ${UNAME_MACHINE}-dec-linux-${LIBC}
-       exit ;;
-     x86_64:Linux:*:*)
--      echo x86_64-unknown-linux-gnu
-+      echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
-       exit ;;
-     xtensa*:Linux:*:*)
--      echo ${UNAME_MACHINE}-unknown-linux-gnu
-+      echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
-       exit ;;
-     i*86:DYNIX/ptx:4*:*)
-       # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
-@@ -983,11 +1032,11 @@
-       echo i386-sequent-sysv4
-       exit ;;
-     i*86:UNIX_SV:4.2MP:2.*)
--        # Unixware is an offshoot of SVR4, but it has its own version
--        # number series starting with 2...
--        # I am not positive that other SVR4 systems won't match this,
-+      # Unixware is an offshoot of SVR4, but it has its own version
-+      # number series starting with 2...
-+      # I am not positive that other SVR4 systems won't match this,
-       # I just have to hope.  -- rms.
--        # Use sysv4.2uw... so that sysv4* matches it.
-+      # Use sysv4.2uw... so that sysv4* matches it.
-       echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
-       exit ;;
-     i*86:OS/2:*:*)
-@@ -1019,7 +1068,7 @@
-       fi
-       exit ;;
-     i*86:*:5:[678]*)
--      # UnixWare 7.x, OpenUNIX and OpenServer 6.
-+      # UnixWare 7.x, OpenUNIX and OpenServer 6.
-       case `/bin/uname -X | grep "^Machine"` in
-           *486*)           UNAME_MACHINE=i486 ;;
-           *Pentium)        UNAME_MACHINE=i586 ;;
-@@ -1047,13 +1096,13 @@
-       exit ;;
-     pc:*:*:*)
-       # Left here for compatibility:
--        # uname -m prints for DJGPP always 'pc', but it prints nothing about
--        # the processor, so we play safe by assuming i586.
-+      # uname -m prints for DJGPP always 'pc', but it prints nothing about
-+      # the processor, so we play safe by assuming i586.
-       # Note: whatever this is, it MUST be the same as what config.sub
-       # prints for the "djgpp" host, or else GDB configury will decide that
-       # this is a cross-build.
-       echo i586-pc-msdosdjgpp
--        exit ;;
-+      exit ;;
-     Intel:Mach:3*:*)
-       echo i386-pc-mach3
-       exit ;;
-@@ -1088,8 +1137,8 @@
-       /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
-         && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
-     3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
--        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
--          && { echo i486-ncr-sysv4; exit; } ;;
-+      /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-+        && { echo i486-ncr-sysv4; exit; } ;;
-     NCR*:*:4.2:* | MPRAS*:*:4.2:*)
-       OS_REL='.3'
-       test -r /etc/.relid \
-@@ -1132,10 +1181,10 @@
-               echo ns32k-sni-sysv
-       fi
-       exit ;;
--    PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
--                      # says <richard.m.bar...@ccmail.census.gov>
--        echo i586-unisys-sysv4
--        exit ;;
-+    PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
-+                      # says <richard.m.bar...@ccmail.census.gov>
-+      echo i586-unisys-sysv4
-+      exit ;;
-     *:UNIX_System_V:4*:FTX*)
-       # From Gerald Hewes <he...@openmarket.com>.
-       # How about differentiating between stratus architectures? -djm
-@@ -1161,11 +1210,11 @@
-       exit ;;
-     R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
-       if [ -d /usr/nec ]; then
--              echo mips-nec-sysv${UNAME_RELEASE}
-+              echo mips-nec-sysv${UNAME_RELEASE}
-       else
--              echo mips-unknown-sysv${UNAME_RELEASE}
-+              echo mips-unknown-sysv${UNAME_RELEASE}
-       fi
--        exit ;;
-+      exit ;;
-     BeBox:BeOS:*:*)   # BeOS running on hardware made by Be, PPC only.
-       echo powerpc-be-beos
-       exit ;;
-@@ -1178,6 +1227,9 @@
-     BePC:Haiku:*:*)   # Haiku running on Intel PC compatible.
-       echo i586-pc-haiku
-       exit ;;
-+    x86_64:Haiku:*:*)
-+      echo x86_64-unknown-haiku
-+      exit ;;
-     SX-4:SUPER-UX:*:*)
-       echo sx4-nec-superux${UNAME_RELEASE}
-       exit ;;
-@@ -1204,19 +1256,31 @@
-       exit ;;
-     *:Darwin:*:*)
-       UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
--      case $UNAME_PROCESSOR in
--          i386)
--              eval $set_cc_for_build
--              if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
--                if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo 
'#endif') | \
--                    (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
--                    grep IS_64BIT_ARCH >/dev/null
--                then
--                    UNAME_PROCESSOR="x86_64"
--                fi
--              fi ;;
--          unknown) UNAME_PROCESSOR=powerpc ;;
--      esac
-+      eval $set_cc_for_build
-+      if test "$UNAME_PROCESSOR" = unknown ; then
-+          UNAME_PROCESSOR=powerpc
-+      fi
-+      if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
-+          if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
-+              if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') 
| \
-+                  (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
-+                  grep IS_64BIT_ARCH >/dev/null
-+              then
-+                  case $UNAME_PROCESSOR in
-+                      i386) UNAME_PROCESSOR=x86_64 ;;
-+                      powerpc) UNAME_PROCESSOR=powerpc64 ;;
-+                  esac
-+              fi
-+          fi
-+      elif test "$UNAME_PROCESSOR" = i386 ; then
-+          # Avoid executing cc on OS X 10.9, as it ships with a stub
-+          # that puts up a graphical alert prompting to install
-+          # developer tools.  Any system running Mac OS X 10.7 or
-+          # later (Darwin 11 and later) is required to have a 64-bit
-+          # processor. This is not true of the ARM version of Darwin
-+          # that Apple uses in portable devices.
-+          UNAME_PROCESSOR=x86_64
-+      fi
-       echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
-       exit ;;
-     *:procnto*:*:* | *:QNX:[0123456789]*:*)
-@@ -1230,7 +1294,10 @@
-     *:QNX:*:4*)
-       echo i386-pc-qnx
-       exit ;;
--    NSE-?:NONSTOP_KERNEL:*:*)
-+    NEO-?:NONSTOP_KERNEL:*:*)
-+      echo neo-tandem-nsk${UNAME_RELEASE}
-+      exit ;;
-+    NSE-*:NONSTOP_KERNEL:*:*)
-       echo nse-tandem-nsk${UNAME_RELEASE}
-       exit ;;
-     NSR-?:NONSTOP_KERNEL:*:*)
-@@ -1275,13 +1342,13 @@
-       echo pdp10-unknown-its
-       exit ;;
-     SEI:*:*:SEIUX)
--        echo mips-sei-seiux${UNAME_RELEASE}
-+      echo mips-sei-seiux${UNAME_RELEASE}
-       exit ;;
-     *:DragonFly:*:*)
-       echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 
's/[-(].*//'`
-       exit ;;
-     *:*VMS:*:*)
--      UNAME_MACHINE=`(uname -p) 2>/dev/null`
-+      UNAME_MACHINE=`(uname -p) 2>/dev/null`
-       case "${UNAME_MACHINE}" in
-           A*) echo alpha-dec-vms ; exit ;;
-           I*) echo ia64-dec-vms ; exit ;;
-@@ -1299,158 +1366,10 @@
-     i*86:AROS:*:*)
-       echo ${UNAME_MACHINE}-pc-aros
-       exit ;;
--esac
--
--#echo '(No uname command or uname output not recognized.)' 1>&2
--#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 
1>&2
--
--eval $set_cc_for_build
--cat >$dummy.c <<EOF
--#ifdef _SEQUENT_
--# include <sys/types.h>
--# include <sys/utsname.h>
--#endif
--main ()
--{
--#if defined (sony)
--#if defined (MIPSEB)
--  /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
--     I don't know....  */
--  printf ("mips-sony-bsd\n"); exit (0);
--#else
--#include <sys/param.h>
--  printf ("m68k-sony-newsos%s\n",
--#ifdef NEWSOS4
--          "4"
--#else
--        ""
--#endif
--         ); exit (0);
--#endif
--#endif
--
--#if defined (__arm) && defined (__acorn) && defined (__unix)
--  printf ("arm-acorn-riscix\n"); exit (0);
--#endif
--
--#if defined (hp300) && !defined (hpux)
--  printf ("m68k-hp-bsd\n"); exit (0);
--#endif
--
--#if defined (NeXT)
--#if !defined (__ARCHITECTURE__)
--#define __ARCHITECTURE__ "m68k"
--#endif
--  int version;
--  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
--  if (version < 4)
--    printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
--  else
--    printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
--  exit (0);
--#endif
--
--#if defined (MULTIMAX) || defined (n16)
--#if defined (UMAXV)
--  printf ("ns32k-encore-sysv\n"); exit (0);
--#else
--#if defined (CMU)
--  printf ("ns32k-encore-mach\n"); exit (0);
--#else
--  printf ("ns32k-encore-bsd\n"); exit (0);
--#endif
--#endif
--#endif
--
--#if defined (__386BSD__)
--  printf ("i386-pc-bsd\n"); exit (0);
--#endif
--
--#if defined (sequent)
--#if defined (i386)
--  printf ("i386-sequent-dynix\n"); exit (0);
--#endif
--#if defined (ns32000)
--  printf ("ns32k-sequent-dynix\n"); exit (0);
--#endif
--#endif
--
--#if defined (_SEQUENT_)
--    struct utsname un;
--
--    uname(&un);
--
--    if (strncmp(un.version, "V2", 2) == 0) {
--      printf ("i386-sequent-ptx2\n"); exit (0);
--    }
--    if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
--      printf ("i386-sequent-ptx1\n"); exit (0);
--    }
--    printf ("i386-sequent-ptx\n"); exit (0);
--
--#endif
--
--#if defined (vax)
--# if !defined (ultrix)
--#  include <sys/param.h>
--#  if defined (BSD)
--#   if BSD == 43
--      printf ("vax-dec-bsd4.3\n"); exit (0);
--#   else
--#    if BSD == 199006
--      printf ("vax-dec-bsd4.3reno\n"); exit (0);
--#    else
--      printf ("vax-dec-bsd\n"); exit (0);
--#    endif
--#   endif
--#  else
--    printf ("vax-dec-bsd\n"); exit (0);
--#  endif
--# else
--    printf ("vax-dec-ultrix\n"); exit (0);
--# endif
--#endif
--
--#if defined (alliant) && defined (i860)
--  printf ("i860-alliant-bsd\n"); exit (0);
--#endif
--
--  exit (1);
--}
--EOF
--
--$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
--      { echo "$SYSTEM_NAME"; exit; }
--
--# Apollos put the system type in the environment.
--
--test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
--
--# Convex versions that predate uname can use getsysinfo(1)
--
--if [ -x /usr/convex/getsysinfo ]
--then
--    case `getsysinfo -f cpu_type` in
--    c1*)
--      echo c1-convex-bsd
--      exit ;;
--    c2*)
--      if getsysinfo -f scalar_acc
--      then echo c32-convex-bsd
--      else echo c2-convex-bsd
--      fi
-+    x86_64:VMkernel:*:*)
-+      echo ${UNAME_MACHINE}-unknown-esx
-       exit ;;
--    c34*)
--      echo c34-convex-bsd
--      exit ;;
--    c38*)
--      echo c38-convex-bsd
--      exit ;;
--    c4*)
--      echo c4-convex-bsd
--      exit ;;
--    esac
--fi
-+esac
- 
- cat >&2 <<EOF
- $0: unable to guess system type
---- config.sub
-+++ config.sub
-@@ -1,38 +1,31 @@
- #! /bin/sh
- # Configuration validation subroutine script.
--#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
--#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
--#   Free Software Foundation, Inc.
--
--timestamp='2009-11-20'
--
--# This file is (in principle) common to ALL GNU software.
--# The presence of a machine in this file suggests that SOME GNU software
--# can handle that machine.  It does not imply ALL GNU software can.
--#
--# This file is free software; you can redistribute it and/or modify
--# it under the terms of the GNU General Public License as published by
--# the Free Software Foundation; either version 2 of the License, or
-+#   Copyright 1992-2014 Free Software Foundation, Inc.
-+
-+timestamp='2014-05-01'
-+
-+# This file is free software; you can redistribute it and/or modify it
-+# under the terms of the GNU General Public License as published by
-+# the Free Software Foundation; either version 3 of the License, or
- # (at your option) any later version.
- #
--# This program is distributed in the hope that it will be useful,
--# but WITHOUT ANY WARRANTY; without even the implied warranty of
--# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
--# GNU General Public License for more details.
-+# This program is distributed in the hope that it will be useful, but
-+# WITHOUT ANY WARRANTY; without even the implied warranty of
-+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+# General Public License for more details.
- #
- # You should have received a copy of the GNU General Public License
--# along with this program; if not, write to the Free Software
--# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
--# 02110-1301, USA.
-+# along with this program; if not, see <http://www.gnu.org/licenses/>.
- #
- # As a special exception to the GNU General Public License, if you
- # distribute this file as part of a program that contains a
- # configuration script generated by Autoconf, you may include it under
--# the same distribution terms that you use for the rest of that program.
-+# the same distribution terms that you use for the rest of that
-+# program.  This Exception is an additional permission under section 7
-+# of the GNU General Public License, version 3 ("GPLv3").
- 
- 
--# Please send patches to <config-patc...@gnu.org>.  Submit a context
--# diff and a properly formatted GNU ChangeLog entry.
-+# Please send patches with a ChangeLog entry to config-patc...@gnu.org.
- #
- # Configuration subroutine to validate and canonicalize a configuration type.
- # Supply the specified configuration type as an argument.
-@@ -75,8 +68,7 @@
- version="\
- GNU config.sub ($timestamp)
- 
--Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
--2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
-+Copyright 1992-2014 Free Software Foundation, Inc.
- 
- This is free software; see the source for copying conditions.  There is NO
- warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
-@@ -123,13 +115,18 @@
- # Here we must recognize all the valid KERNEL-OS combinations.
- maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
- case $maybe_os in
--  nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | 
linux-uclibc* | \
--  uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | 
netbsd*-gnu* | \
-+  nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
-+  linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | 
kfreebsd*-gnu* | \
-+  knetbsd*-gnu* | netbsd*-gnu* | \
-   kopensolaris*-gnu* | \
-   storm-chaos* | os2-emx* | rtmk-nova*)
-     os=-$maybe_os
-     basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
-     ;;
-+  android-linux)
-+    os=-linux-android
-+    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
-+    ;;
-   *)
-     basic_machine=`echo $1 | sed 's/-[^-]*$//'`
-     if [ $basic_machine != $1 ]
-@@ -152,12 +149,12 @@
-       -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
-       -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
-       -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
--      -apple | -axis | -knuth | -cray | -microblaze)
-+      -apple | -axis | -knuth | -cray | -microblaze*)
-               os=
-               basic_machine=$1
-               ;;
--        -bluegene*)
--              os=-cnk
-+      -bluegene*)
-+              os=-cnk
-               ;;
-       -sim | -cisco | -oki | -wec | -winbond)
-               os=
-@@ -173,10 +170,10 @@
-               os=-chorusos
-               basic_machine=$1
-               ;;
--      -chorusrdb)
--              os=-chorusrdb
-+      -chorusrdb)
-+              os=-chorusrdb
-               basic_machine=$1
--              ;;
-+              ;;
-       -hiux*)
-               os=-hiuxwe2
-               ;;
-@@ -221,6 +218,12 @@
-       -isc*)
-               basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-               ;;
-+      -lynx*178)
-+              os=-lynxos178
-+              ;;
-+      -lynx*5)
-+              os=-lynxos5
-+              ;;
-       -lynx*)
-               os=-lynxos
-               ;;
-@@ -245,20 +248,28 @@
-       # Some are omitted here because they have special meanings below.
-       1750a | 580 \
-       | a29k \
-+      | aarch64 | aarch64_be \
-       | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
-       | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | 
alpha64pca5[67] \
-       | am33_2.0 \
--      | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | 
avr32 \
-+      | arc | arceb \
-+      | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
-+      | avr | avr32 \
-+      | be32 | be64 \
-       | bfin \
--      | c4x | clipper \
-+      | c4x | c8051 | clipper \
-       | d10v | d30v | dlx | dsp16xx \
-+      | epiphany \
-       | fido | fr30 | frv \
-       | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
-+      | hexagon \
-       | i370 | i860 | i960 | ia64 \
-       | ip2k | iq2000 \
-+      | k1om \
-+      | le32 | le64 \
-       | lm32 \
-       | m32c | m32r | m32rle | m68000 | m68k | m88k \
--      | maxq | mb | microblaze | mcore | mep | metag \
-+      | maxq | mb | microblaze | microblazeel | mcore | mep | metag \
-       | mips | mipsbe | mipseb | mipsel | mipsle \
-       | mips16 \
-       | mips64 | mips64el \
-@@ -272,38 +283,50 @@
-       | mips64vr5900 | mips64vr5900el \
-       | mipsisa32 | mipsisa32el \
-       | mipsisa32r2 | mipsisa32r2el \
-+      | mipsisa32r6 | mipsisa32r6el \
-       | mipsisa64 | mipsisa64el \
-       | mipsisa64r2 | mipsisa64r2el \
-+      | mipsisa64r6 | mipsisa64r6el \
-       | mipsisa64sb1 | mipsisa64sb1el \
-       | mipsisa64sr71k | mipsisa64sr71kel \
-+      | mipsr5900 | mipsr5900el \
-       | mipstx39 | mipstx39el \
-       | mn10200 | mn10300 \
-       | moxie \
-       | mt \
-       | msp430 \
--      | nios | nios2 \
-+      | nds32 | nds32le | nds32be \
-+      | nios | nios2 | nios2eb | nios2el \
-       | ns16k | ns32k \
--      | or32 \
-+      | open8 | or1k | or1knd | or32 \
-       | pdp10 | pdp11 | pj | pjl \
--      | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
-+      | powerpc | powerpc64 | powerpc64le | powerpcle \
-       | pyramid \
--      | rx \
-+      | rl78 | rx \
-       | score \
-       | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | 
shbe | shle | sh[1234]le | sh3ele \
-       | sh64 | sh64le \

... etc. - the rest is truncated
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to