summaryrefslogtreecommitdiff
path: root/external
diff options
context:
space:
mode:
authorKhaled Hosny <khaledhosny@eglug.org>2013-10-18 22:27:30 +0200
committerDavid Tardon <dtardon@redhat.com>2013-10-19 07:41:44 +0000
commit8d46e3968cf68b6ef6a370084b4cc37dbdda1708 (patch)
tree8ea21dc24e92d866526aad7da9db959c729492ca /external
parentf2b51cdfd6fee45ff2062fa6fb46893eba56c02c (diff)
fdo#70393: move libxslt to a subdir of external
Change-Id: Ibf6fd5c32a62752044e70961cf33b05fdcdce104 Reviewed-on: https://gerrit.libreoffice.org/6340 Reviewed-by: David Tardon <dtardon@redhat.com> Tested-by: David Tardon <dtardon@redhat.com>
Diffstat (limited to 'external')
-rw-r--r--external/Module_external.mk1
-rw-r--r--external/libxslt/ExternalPackage_xslt.mk53
-rw-r--r--external/libxslt/ExternalProject_xslt.mk57
-rw-r--r--external/libxslt/Makefile7
-rw-r--r--external/libxslt/Module_libxslt.mk18
-rw-r--r--external/libxslt/README1
-rw-r--r--external/libxslt/UnpackedTarball_xslt.mk25
-rw-r--r--external/libxslt/libxslt-1.1.26-memdump.patch10
-rw-r--r--external/libxslt/libxslt-aix.patch21
-rw-r--r--external/libxslt/libxslt-android.patch15
-rw-r--r--external/libxslt/libxslt-configure.patch99
-rw-r--r--external/libxslt/libxslt-internal-symbols.patch66
-rw-r--r--external/libxslt/libxslt-mingw.patch36
-rw-r--r--external/libxslt/libxslt-vc10.patch23
-rw-r--r--external/libxslt/libxslt-win_manifest.patch11
15 files changed, 443 insertions, 0 deletions
diff --git a/external/Module_external.mk b/external/Module_external.mk
index 378e1aca4637..ec88b2d84e36 100644
--- a/external/Module_external.mk
+++ b/external/Module_external.mk
@@ -47,6 +47,7 @@ $(eval $(call gb_Module_add_moduledirs,external,\
$(call gb_Helper_optional,LIBLANGTAG,liblangtag) \
$(call gb_Helper_optional,LIBPNG,libpng) \
$(call gb_Helper_optional,LIBXML2,libxml2) \
+ $(call gb_Helper_optional,LIBXSLT,libxslt) \
$(call gb_Helper_optional,MSPUB,libmspub) \
$(call gb_Helper_optional,MWAW,libmwaw) \
$(call gb_Helper_optional,ODFGEN,libodfgen) \
diff --git a/external/libxslt/ExternalPackage_xslt.mk b/external/libxslt/ExternalPackage_xslt.mk
new file mode 100644
index 000000000000..c9586b8c1178
--- /dev/null
+++ b/external/libxslt/ExternalPackage_xslt.mk
@@ -0,0 +1,53 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+$(eval $(call gb_ExternalPackage_ExternalPackage,xslt,xslt))
+
+$(eval $(call gb_ExternalPackage_use_external_project,xslt,xslt))
+
+ifneq ($(COM),MSC)
+$(eval $(call gb_ExternalPackage_add_file,xslt,bin/xslt-config,xslt-config))
+endif
+
+ifeq ($(OS),MACOSX)
+$(eval $(call gb_ExternalPackage_add_library_for_install,xslt,lib/libxslt.1.dylib,libxslt/.libs/libxslt.1.dylib))
+$(eval $(call gb_ExternalPackage_add_file,xslt,lib/libxslt.dylib,libxslt/.libs/libxslt.1.dylib))
+$(eval $(call gb_ExternalPackage_add_library_for_install,xslt,lib/libexslt.0.dylib,libexslt/.libs/libexslt.0.dylib))
+$(eval $(call gb_ExternalPackage_add_file,xslt,lib/libexslt.dylib,libexslt/.libs/libexslt.0.dylib))
+$(eval $(call gb_ExternalPackage_add_file,xslt,bin/xsltproc,xsltproc/.libs/xsltproc))
+else ifeq ($(DISABLE_DYNLOADING),TRUE)
+$(eval $(call gb_ExternalPackage_add_file,xslt,lib/libxslt.a,libxslt/.libs/libxslt.a))
+$(eval $(call gb_ExternalPackage_add_file,xslt,lib/libexslt.a,libexslt/.libs/libexslt.a))
+ifneq ($(CROSS_COMPILING),YES)
+$(eval $(call gb_ExternalPackage_add_file,xslt,bin/xsltproc,xsltproc/xsltproc))
+endif
+else ifeq ($(OS),WNT)
+ifeq ($(COM),GCC)
+$(eval $(call gb_ExternalPackage_add_file,xslt,lib/libxslt.dll.a,libxslt/.libs/libxslt.dll.a))
+$(eval $(call gb_ExternalPackage_add_library_for_install,xslt,bin/libxslt.dll,libxslt/.libs/libxslt.dll))
+$(eval $(call gb_ExternalPackage_add_file,xslt,lib/libexslt.dll.a,libexslt/.libs/libexslt.dll.a))
+$(eval $(call gb_ExternalPackage_add_library_for_install,xslt,bin/libexslt.dll,libexslt/.libs/libexslt.dll))
+$(eval $(call gb_ExternalPackage_add_file,xslt,bin/xsltproc.exe,xsltproc/.libs/xsltproc.exe))
+else # COM=MSC
+$(eval $(call gb_ExternalPackage_add_file,xslt,lib/libxslt.lib,win32/bin.msvc/libxslt.lib))
+$(eval $(call gb_ExternalPackage_add_file,xslt,lib/libexslt.lib,win32/bin.msvc/libexslt.lib))
+$(eval $(call gb_ExternalPackage_add_library_for_install,xslt,bin/libxslt.dll,win32/bin.msvc/libxslt.dll))
+$(eval $(call gb_ExternalPackage_add_library_for_install,xslt,bin/libexslt.dll,win32/bin.msvc/libexslt.dll))
+$(eval $(call gb_ExternalPackage_add_file,xslt,bin/xsltproc.exe,win32/bin.msvc/xsltproc.exe))
+endif
+else # OS!=WNT
+$(eval $(call gb_ExternalPackage_add_file,xslt,lib/libxslt.so.1.1.26,libxslt/.libs/libxslt.so.1.1.26))
+$(eval $(call gb_ExternalPackage_add_library_for_install,xslt,lib/libxslt.so.1,libxslt/.libs/libxslt.so.1.1.26))
+$(eval $(call gb_ExternalPackage_add_file,xslt,lib/libxslt.so,libxslt/.libs/libxslt.so.1.1.26))
+$(eval $(call gb_ExternalPackage_add_file,xslt,lib/libexslt.so.0.8.15,libexslt/.libs/libexslt.so.0.8.15))
+$(eval $(call gb_ExternalPackage_add_library_for_install,xslt,lib/libexslt.so.0,libexslt/.libs/libexslt.so.0.8.15))
+$(eval $(call gb_ExternalPackage_add_file,xslt,lib/libexslt.so,libexslt/.libs/libexslt.so.0.8.15))
+$(eval $(call gb_ExternalPackage_add_file,xslt,bin/xsltproc,xsltproc/.libs/xsltproc))
+endif
+# vim: set noet sw=4 ts=4:
diff --git a/external/libxslt/ExternalProject_xslt.mk b/external/libxslt/ExternalProject_xslt.mk
new file mode 100644
index 000000000000..fa1377093770
--- /dev/null
+++ b/external/libxslt/ExternalProject_xslt.mk
@@ -0,0 +1,57 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+$(eval $(call gb_ExternalProject_ExternalProject,xslt))
+
+$(eval $(call gb_ExternalProject_use_external,xslt,libxml2))
+
+$(eval $(call gb_ExternalProject_register_targets,xslt,\
+ build \
+))
+ifeq ($(OS),WNT)
+ifeq ($(COM),GCC)
+$(call gb_ExternalProject_get_state_target,xslt,build):
+ $(call gb_ExternalProject_run,build,\
+ ./configure --without-crypto --without-python --disable-static \
+ $(if $(filter YES,$(CROSS_COMPILING)),--build=$(BUILD_PLATFORM) --host=$(HOST_PLATFORM)) \
+ CC="$(CC) -mthreads $(if $(filter YES,$(MINGW_SHARED_GCCLIB)),-shared-libgcc)" \
+ $(if $(filter YES,$(MINGW_SHARED_GXXLIB)),LIBS="$(MINGW_SHARED_LIBSTDCPP)") \
+ LDFLAGS="-Wl$(COMMA)--no-undefined -Wl$(COMMA)--enable-runtime-pseudo-reloc-v2" \
+ OBJDUMP=objdump \
+ && chmod 777 xslt-config \
+ && $(MAKE) \
+ )
+else # COM=MSC
+$(call gb_ExternalProject_get_state_target,xslt,build):
+ $(call gb_ExternalProject_run,build,\
+ cscript configure.js \
+ $(if $(MSVC_USE_DEBUG_RUNTIME),cruntime=/MDd) \
+ && unset MAKEFLAGS \
+ && LIB="$(ILIB)" nmake \
+ ,win32)
+endif
+else # OS!=WNT
+$(call gb_ExternalProject_get_state_target,xslt,build):
+ $(call gb_ExternalProject_run,build,\
+ ./configure --without-crypto --without-python \
+ $(if $(filter YES,$(CROSS_COMPILING)),--build=$(BUILD_PLATFORM) --host=$(HOST_PLATFORM)) \
+ $(if $(filter MACOSX,$(OS)),--prefix=/@.__________________________________________________OOO) \
+ LDFLAGS="$(if $(filter LINUX FREEBSD,$(OS)),-Wl$(COMMA)-z$(COMMA)origin -Wl$(COMMA)-rpath$(COMMA)\\"\$$\$$ORIGIN:'\'\$$\$$ORIGIN/../ure-link/lib" -Wl$(COMMA)-noinhibit-exec) \
+ $(if $(SYSBASE),$(if $(filter SOLARIS LINUX,$(OS)),-L$(SYSBASE)/lib -L$(SYSBASE)/usr/lib -lpthread -ldl))" \
+ $(if $(SYSBASE),CPPFLAGS="-I$(SYSBASE)/usr/include") \
+ $(if $(filter TRUE,$(DISABLE_DYNLOADING)), \
+ $(if $(filter IOS,$(OS)),LIBS="-liconv") \
+ --disable-shared,--disable-static) \
+ $(if $(filter NO,$(SYSTEM_LIBXML)),--with-libxml-prefix=$(OUTDIR)) \
+ && chmod 777 xslt-config \
+ && $(MAKE) \
+ )
+endif
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/libxslt/Makefile b/external/libxslt/Makefile
new file mode 100644
index 000000000000..e4968cf85fb6
--- /dev/null
+++ b/external/libxslt/Makefile
@@ -0,0 +1,7 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+
+module_directory:=$(dir $(realpath $(firstword $(MAKEFILE_LIST))))
+
+include $(module_directory)/../../solenv/gbuild/partial_build.mk
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/libxslt/Module_libxslt.mk b/external/libxslt/Module_libxslt.mk
new file mode 100644
index 000000000000..6a88fe20e229
--- /dev/null
+++ b/external/libxslt/Module_libxslt.mk
@@ -0,0 +1,18 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+$(eval $(call gb_Module_Module,libxslt))
+
+$(eval $(call gb_Module_add_targets,libxslt,\
+ ExternalPackage_xslt \
+ ExternalProject_xslt \
+ UnpackedTarball_xslt \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/libxslt/README b/external/libxslt/README
new file mode 100644
index 000000000000..dd69a9d732c3
--- /dev/null
+++ b/external/libxslt/README
@@ -0,0 +1 @@
+Gnome xslt library written in C, from [http://xmlsoft.org/xslt/]
diff --git a/external/libxslt/UnpackedTarball_xslt.mk b/external/libxslt/UnpackedTarball_xslt.mk
new file mode 100644
index 000000000000..b6b20b5136a8
--- /dev/null
+++ b/external/libxslt/UnpackedTarball_xslt.mk
@@ -0,0 +1,25 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+$(eval $(call gb_UnpackedTarball_UnpackedTarball,xslt))
+
+$(eval $(call gb_UnpackedTarball_set_tarball,xslt,$(LIBXSLT_TARBALL)))
+
+$(eval $(call gb_UnpackedTarball_add_patches,xslt,\
+ external/libxslt/libxslt-configure.patch \
+ external/libxslt/libxslt-win_manifest.patch \
+ external/libxslt/libxslt-mingw.patch \
+ external/libxslt/libxslt-internal-symbols.patch \
+ external/libxslt/libxslt-aix.patch \
+ external/libxslt/libxslt-vc10.patch \
+ external/libxslt/libxslt-1.1.26-memdump.patch \
+ $(if $(filter ANDROID,$(OS)),external/libxslt/libxslt-android.patch) \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/libxslt/libxslt-1.1.26-memdump.patch b/external/libxslt/libxslt-1.1.26-memdump.patch
new file mode 100644
index 000000000000..28724f749a38
--- /dev/null
+++ b/external/libxslt/libxslt-1.1.26-memdump.patch
@@ -0,0 +1,10 @@
+--- misc/libxslt-1.1.26/xsltproc/xsltproc.c 2009-08-23 14:53:33.000000000 +0200
++++ misc/build/libxslt-1.1.26/xsltproc/xsltproc.c 2013-01-18 14:16:12.202767222 +0100
+@@ -877,7 +877,6 @@
+ xsltFreeSecurityPrefs(sec);
+ xsltCleanupGlobals();
+ xmlCleanupParser();
+- xmlMemoryDump();
+ return(errorno);
+ }
+
diff --git a/external/libxslt/libxslt-aix.patch b/external/libxslt/libxslt-aix.patch
new file mode 100644
index 000000000000..fe38f7bb7e73
--- /dev/null
+++ b/external/libxslt/libxslt-aix.patch
@@ -0,0 +1,21 @@
+--- misc/libxslt-1.1.26/config.guess 2010-09-16 02:40:03.000000000 -0500
++++ misc/build/libxslt-1.1.26/config.guess 2010-09-16 02:41:43.000000000 -0500
+@@ -532,7 +532,7 @@
+ echo rs6000-ibm-aix3.2
+ fi
+ exit ;;
+- *:AIX:*:[45])
++ *: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
+@@ -544,6 +544,9 @@
+ else
+ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+ fi
++ if [ "$IBM_REV" == "V7BETA" ]; then
++ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
++ fi
+ echo ${IBM_ARCH}-ibm-aix${IBM_REV}
+ exit ;;
+ *:AIX:*:*)
diff --git a/external/libxslt/libxslt-android.patch b/external/libxslt/libxslt-android.patch
new file mode 100644
index 000000000000..68069d6e9457
--- /dev/null
+++ b/external/libxslt/libxslt-android.patch
@@ -0,0 +1,15 @@
+--- misc/libxslt-1.1.26/ltmain.sh
++++ misc/build/libxslt-1.1.26/ltmain.sh
+@@ -3228,6 +3228,12 @@
+ func_warning "\`-release' is ignored for convenience libraries"
+ else
+
++ # Force no versioning suffix for Android thanks to silly
++ # apkbuilder which doesn't add extra native libs unless their
++ # name ends with .so
++
++ version_type=none
++
+ # Parse the version information argument.
+ save_ifs="$IFS"; IFS=':'
+ set dummy $vinfo 0 0 0
diff --git a/external/libxslt/libxslt-configure.patch b/external/libxslt/libxslt-configure.patch
new file mode 100644
index 000000000000..6b189df5aa0d
--- /dev/null
+++ b/external/libxslt/libxslt-configure.patch
@@ -0,0 +1,99 @@
+--- misc/libxslt-1.1.26/config.sub 2008-01-30 21:27:02.000000000 +0100
++++ misc/build/libxslt-1.1.26/config.sub 2011-09-26 23:35:00.000000000 +0200
+@@ -120,7 +120,7 @@
+ # 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-dietlibc | linux-newlib* | linux-uclibc* | \
++ nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
+ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
+ storm-chaos* | os2-emx* | rtmk-nova*)
+ os=-$maybe_os
+@@ -1218,7 +1218,7 @@
+ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
+ | -chorusos* | -chorusrdb* \
+ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+- | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
++ | -mingw32* | -linux-gnu* | -linux-androideabi* | -linux-newlib* | -linux-uclibc* \
+ | -uxpv* | -beos* | -mpeix* | -udk* \
+ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
+ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
+--- misc/libxslt-1.1.26/ltmain.sh Wed Aug 29 14:28:46 2007
++++ misc/build/libxslt-1.1.26/ltmain.sh Wed Jun 25 13:06:05 2008
+@@ -6195,9 +6195,9 @@
+ revision="$number_revision"
+ ;;
+ freebsd-aout|freebsd-elf|sunos)
+- current="$number_major"
+- revision="$number_minor"
+- age="0"
++ current=`expr $number_major + $number_minor`
++ age="$number_minor"
++ revision="$number_revision"
+ ;;
+ irix|nonstopux)
+ func_arith $number_major + $number_minor
+@@ -6271,8 +6271,8 @@
+ ;;
+
+ freebsd-elf)
+- major=".$current"
+- versuffix=".$current"
++ major=.`expr $current - $age`
++ versuffix="$major.$age.$revision"
+ ;;
+
+ irix | nonstopux)
+--- misc/libxslt-1.1.26/xslt-config.in Wed Jan 17 14:18:26 2007
++++ misc/build/libxslt-1.1.26/xslt-config.in Wed Jun 25 13:06:05 2008
+@@ -1,10 +1,16 @@
+ #! /bin/sh
+
+-prefix=@prefix@
+-exec_prefix=@exec_prefix@
++#prefix=@prefix@
++#exec_prefix=@exec_prefix@
++#exec_prefix_set=no
++#includedir=@includedir@
++#libdir=@libdir@
++
++prefix=${SOLARVERSION}/${INPATH}
++exec_prefix=${SOLARVERSION}/${INPATH}
+ exec_prefix_set=no
+-includedir=@includedir@
+-libdir=@libdir@
++includedir=${SOLARVERSION}/${INPATH}/inc${UPDMINOREXT}/external
++libdir=${SOLARVERSION}/${INPATH}/lib${UPDMINOREXT}
+
+ usage()
+ {
+@@ -89,7 +95,8 @@
+ shift
+ done
+
+-the_libs="@XSLT_LIBDIR@ @XSLT_LIBS@"
++#the_libs="@XSLT_LIBDIR@ @XSLT_LIBS@"
++the_libs="-L${libdir} -lxslt -lm"
+ if test "$includedir" != "/usr/include"; then
+ the_flags="$the_flags -I$includedir `@XML_CONFIG@ --cflags`"
+ else
+--- misc/libxslt-1.1.26/configure 2008-05-14 00:40:54.000000000 +0900
++++ misc/build/libxslt-1.1.26/configure 2008-07-17 22:12:38.097000000 +0900
+@@ -7437,7 +7437,7 @@
+
+ cygwin*)
+ # func_win32_libid is a shell function defined in ltmain.sh
+- lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
++ lt_cv_deplibs_check_method='file_magic ^x86 archive|^x86 DLL'
+ lt_cv_file_magic_cmd='func_win32_libid'
+ ;;
+
+@@ -7446,7 +7446,7 @@
+ # func_win32_libid shell function, so use a weaker test based on 'objdump',
+ # unless we find 'file', for example because we are cross-compiling.
+ if ( file / ) >/dev/null 2>&1; then
+- lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
++ lt_cv_deplibs_check_method='file_magic ^x86 archive|^x86 DLL'
+ lt_cv_file_magic_cmd='func_win32_libid'
+ else
+ lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
diff --git a/external/libxslt/libxslt-internal-symbols.patch b/external/libxslt/libxslt-internal-symbols.patch
new file mode 100644
index 000000000000..813c34f0386a
--- /dev/null
+++ b/external/libxslt/libxslt-internal-symbols.patch
@@ -0,0 +1,66 @@
+--- misc/libxslt-1.1.26/libxslt/libxslt.syms Thu Sep 24 16:28:46 2009
++++ misc/build/libxslt-1.1.26/libxslt/libxslt.syms Thu Jul 8 12:22:14 2010
+@@ -107,7 +107,7 @@
+ xsltFreeCompMatchList;
+ xsltFreeTemplateHashes;
+ xsltGetTemplate;
+- xsltMatchPattern;
++#NOT_IMPLEMENTED xsltMatchPattern;
+ xsltTestCompMatchList;
+
+ # preproc
+@@ -406,7 +406,7 @@
+ global:
+
+ # xsltInternals
+- xsltConstNamespaceNameXSLT; # variable
++#XSLT_REFACTORED_XSLT_NSCOMP xsltConstNamespaceNameXSLT; # variable
+ xsltExtensionInstructionResultFinalize;
+ xsltExtensionInstructionResultRegister;
+ xsltInitCtxtKey;
+@@ -415,24 +415,24 @@
+ xsltInit;
+
+ # xsltInternals
+- xsltParseAnyXSLTElem;
+- xsltParseSequenceConstructor;
+- xsltPointerListAddSize;
+- xsltPointerListClear;
+- xsltPointerListCreate;
+- xsltPointerListFree;
++#XSLT_REFACTORED xsltParseAnyXSLTElem;
++#XSLT_REFACTORED xsltParseSequenceConstructor;
++#XSLT_REFACTORED xsltPointerListAddSize;
++#XSLT_REFACTORED xsltPointerListClear;
++#XSLT_REFACTORED xsltPointerListCreate;
++#XSLT_REFACTORED xsltPointerListFree;
+ xsltRegisterLocalRVT;
+ xsltReleaseRVT;
+- xsltRestoreDocumentNamespaces;
++#XSLT_REFACTORED_XSLT_NSCOMP xsltRestoreDocumentNamespaces;
+
+ # extensions
+- xsltStyleStylesheetLevelGetExtData;
++#XSLT_REFACTORED xsltStyleStylesheetLevelGetExtData;
+
+ # xsltInternals
+- xsltTransStorageAdd;
+- xsltTransStorageRemove;
++#NOT_IMPLEMENTED xsltTransStorageAdd;
++#NOT_IMPLEMENTED xsltTransStorageRemove;
+ xsltUninit;
+- xsltXSLTAttrMarker; # variable
++#XSLT_REFACTORED xsltXSLTAttrMarker; # variable
+ } LIBXML2_1.1.9;
+
+ LIBXML2_1.1.20 {
+@@ -475,5 +475,9 @@
+
+ # transform
+ xsltProcessOneNode;
++
++# Solaris ld needs explicit auto-reduction (or, alternatively, "-B local")
++ local:
++ *;
+ } LIBXML2_1.1.25;
+
diff --git a/external/libxslt/libxslt-mingw.patch b/external/libxslt/libxslt-mingw.patch
new file mode 100644
index 000000000000..da8eee3b1098
--- /dev/null
+++ b/external/libxslt/libxslt-mingw.patch
@@ -0,0 +1,36 @@
+--- misc/libxslt-1.1.26/ltmain.sh 2010-06-06 14:43:28.785750000 +0900
++++ misc/build/libxslt-1.1.26/ltmain.sh 2010-06-06 15:14:26.176375000 +0900
+@@ -2983,15 +2983,7 @@
+ *mingw* )
+ lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
+ case $build in
+- *mingw* ) # actually, msys
+- # awkward: cmd appends spaces to result
+- lt_sed_strip_trailing_spaces="s/[ ]*\$//"
+- func_to_host_path_tmp1=`( cmd //c echo "$1" |\
+- $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""`
+- func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
+- $SED -e "$lt_sed_naive_backslashify"`
+- ;;
+- *cygwin* )
++ *cygwin* | *mingw* )
+ func_to_host_path_tmp1=`cygpath -w "$1"`
+ func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
+ $SED -e "$lt_sed_naive_backslashify"`
+@@ -3062,15 +3054,7 @@
+ func_to_host_pathlist_tmp1=`echo "$func_to_host_pathlist_tmp2" |\
+ $SED -e 's|^:*||' -e 's|:*$||'`
+ case $build in
+- *mingw* ) # Actually, msys.
+- # Awkward: cmd appends spaces to result.
+- lt_sed_strip_trailing_spaces="s/[ ]*\$//"
+- func_to_host_pathlist_tmp2=`( cmd //c echo "$func_to_host_pathlist_tmp1" |\
+- $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""`
+- func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\
+- $SED -e "$lt_sed_naive_backslashify"`
+- ;;
+- *cygwin* )
++ *cygwin* | *mingw* )
+ func_to_host_pathlist_tmp2=`cygpath -w -p "$func_to_host_pathlist_tmp1"`
+ func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\
+ $SED -e "$lt_sed_naive_backslashify"`
diff --git a/external/libxslt/libxslt-vc10.patch b/external/libxslt/libxslt-vc10.patch
new file mode 100644
index 000000000000..b50f0abe2e80
--- /dev/null
+++ b/external/libxslt/libxslt-vc10.patch
@@ -0,0 +1,23 @@
+--- build/libxslt-1.1.26/win32/Makefile.msvc.old 2010-10-20 01:02:55.359375000 +0200
++++ build/libxslt-1.1.26/win32/Makefile.msvc 2010-10-20 01:03:05.187500000 +0200
+@@ -54,6 +54,7 @@
+ CFLAGS = /nologo /D "WIN32" /D "_WINDOWS" /D "_MBCS" /W3 $(CRUNTIME) /D "_REENTRANT"
+ CFLAGS = $(CFLAGS) /I$(BASEDIR) /I$(XSLT_SRCDIR) /I$(INCPREFIX)
+ CFLAGS = $(CFLAGS) /D_CRT_SECURE_NO_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE
++CFLAGS = $(CFLAGS) $(SOLARINC) -I$(WORKDIR)\UnpackedTarball\xml2\include
+
+ # The linker and its options.
+ LD = link.exe
+@@ -71,8 +71,12 @@
+ LDFLAGS = $(LDFLAGS) /DEBUG
+ !else
+ CFLAGS = $(CFLAGS) /D "NDEBUG" /O2
++!if "$(_NMAKE_VER)" >= "10.00.30319.01"
++LDFLAGS = $(LDFLAGS)
++!else
+ LDFLAGS = $(LDFLAGS) /OPT:NOWIN98
+ !endif
++!endif
+
+ # Libxslt object files.
+ XSLT_OBJS = $(XSLT_INTDIR)\attributes.obj\
diff --git a/external/libxslt/libxslt-win_manifest.patch b/external/libxslt/libxslt-win_manifest.patch
new file mode 100644
index 000000000000..43c14eb70b8b
--- /dev/null
+++ b/external/libxslt/libxslt-win_manifest.patch
@@ -0,0 +1,11 @@
+--- misc/libxslt-1.1.26/win32/configure.js 2007-08-03 15:41:02.000000000 +0200
++++ misc/build/libxslt-1.1.26/win32/configure.js 2009-05-07 13:09:42.294993200 +0200
+@@ -52,7 +52,7 @@
+ var dirSep = "\\";
+ var compiler = "msvc";
+ var cruntime = "/MD";
+-var vcmanifest = false;
++var vcmanifest = true;
+ var buildDebug = 0;
+ var buildStatic = 0;
+ var buildPrefix = ".";