diff --git a/external/fontconfig/Module_fontconfig.mk b/external/fontconfig/Module_fontconfig.mk
index 391f6dabc0fc..b99b954bf827 100644
--- a/external/fontconfig/Module_fontconfig.mk
+++ b/external/fontconfig/Module_fontconfig.mk
@@ -10,10 +10,23 @@
$(eval $(call gb_Module_Module,fontconfig))
$(eval $(call gb_Module_add_targets,fontconfig,\
- ExternalProject_fontconfig \
- $(if $(filter EMSCRIPTEN,$(OS)),ExternalPackage_fontconfig_data) \
- $(if $(filter FONTCONFIG,$(BUILD_TYPE)),ExternalPackage_fontconfig) \
UnpackedTarball_fontconfig \
))
+ifeq ($(COM),MSC)
+
+$(eval $(call gb_Module_add_targets,fontconfig,\
+ StaticLibrary_fontconfig \
+))
+
+else
+
+$(eval $(call gb_Module_add_targets,fontconfig,\
+ ExternalProject_fontconfig \
+ $(if $(filter EMSCRIPTEN,$(OS)),ExternalPackage_fontconfig_data) \
+ $(if $(filter FONTCONFIG,$(BUILD_TYPE)),ExternalPackage_fontconfig) \
+))
+
+endif
+
# vim: set noet sw=4 ts=4:
diff --git a/external/fontconfig/StaticLibrary_fontconfig.mk b/external/fontconfig/StaticLibrary_fontconfig.mk
new file mode 100644
index 000000000000..96ece049bd9c
--- /dev/null
+++ b/external/fontconfig/StaticLibrary_fontconfig.mk
@@ -0,0 +1,73 @@
+# -*- 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/.
+#
+
+# This is de facto just for Windows for now
+
+$(eval $(call gb_StaticLibrary_StaticLibrary,fontconfig))
+
+$(eval $(call gb_StaticLibrary_set_include,fontconfig,\
+ -I$(call gb_UnpackedTarball_get_dir,fontconfig) \
+ -I$(call gb_UnpackedTarball_get_dir,freetype)/include \
+ -I$(call gb_UnpackedTarball_get_dir,expat)/lib \
+ $$(INCLUDE) \
+))
+
+# Ignore warnings, warnings in this code is not our problem, or is it?
+
+$(eval $(call gb_StaticLibrary_add_defs,fontconfig,\
+ -wd4018 \
+ -wd4090 \
+ -wd4100 \
+ -wd4189 \
+ -wd4200 \
+ -wd4245 \
+ -wd4267 \
+ -wd4701 \
+ -wd4703 \
+ -DHAVE_CONFIG_H \
+ -DFC_CACHEDIR='"C:/Windows/Temp"' \
+ -DCONFIGDIR='"Whatever"' \
+ -DFONTCONFIG_PATH='"Whatever"' \
+ -DFC_TEMPLATEDIR='"Whatever"' \
+))
+
+$(eval $(call gb_StaticLibrary_add_generated_cobjects,fontconfig,\
+ $(addprefix UnpackedTarball/fontconfig/src/, \
+ fcatomic \
+ fccache \
+ fccfg \
+ fccharset \
+ fccompat \
+ fcdbg \
+ fcdefault \
+ fcdir \
+ fcformat \
+ fcfreetype \
+ fcfs \
+ fcptrlist \
+ fchash \
+ fcinit \
+ fclang \
+ fclist \
+ fcmatch \
+ fcmatrix \
+ fcname \
+ fcobjs \
+ fcpat \
+ fcrange \
+ fcserialize \
+ fcstat \
+ fcstr \
+ fcweight \
+ fcxml \
+ ftglue \
+ ) \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/fontconfig/UnpackedTarball_fontconfig.mk b/external/fontconfig/UnpackedTarball_fontconfig.mk
index 622479d65a32..23a334e63d69 100644
--- a/external/fontconfig/UnpackedTarball_fontconfig.mk
+++ b/external/fontconfig/UnpackedTarball_fontconfig.mk
@@ -24,4 +24,19 @@ $(eval $(call gb_UnpackedTarball_add_patches,fontconfig,\
))
endif
+ifeq ($(COM),MSC)
+
+$(eval $(call gb_UnpackedTarball_add_patches,fontconfig,\
+ external/fontconfig/windowsfonts.patch \
+))
+
+$(eval $(call gb_UnpackedTarball_add_file,fontconfig,config.h,external/fontconfig/configs/wnt_fontconfig_config.h))
+$(eval $(call gb_UnpackedTarball_add_file,fontconfig,src/fcalias.h,external/fontconfig/configs/wnt_fontconfig_fcalias.h))
+$(eval $(call gb_UnpackedTarball_add_file,fontconfig,src/fcaliastail.h,external/fontconfig/configs/wnt_fontconfig_fcaliastail.h))
+$(eval $(call gb_UnpackedTarball_add_file,fontconfig,src/fcftalias.h,external/fontconfig/configs/wnt_fontconfig_fcftalias.h))
+$(eval $(call gb_UnpackedTarball_add_file,fontconfig,src/fcftaliastail.h,external/fontconfig/configs/wnt_fontconfig_fcftaliastail.h))
+$(eval $(call gb_UnpackedTarball_add_file,fontconfig,src/fcobjshash.h,external/fontconfig/configs/wnt_fontconfig_fcobjshash.h))
+
+endif
+
# vim: set noet sw=4 ts=4:
diff --git a/external/fontconfig/configs/wnt_fontconfig_config.h b/external/fontconfig/configs/wnt_fontconfig_config.h
new file mode 100644
index 000000000000..a62b0f4c881a
--- /dev/null
+++ b/external/fontconfig/configs/wnt_fontconfig_config.h
@@ -0,0 +1,444 @@
+/* config.h for Windows build of fontconfig, manually edited from one generated for Linux: */
+
+/* config.h. Generated from config.h.in by configure. */
+/* config.h.in. Generated from configure.ac by autoheader. */
+
+/* Define if building universal (internal helper macro) */
+/* #undef AC_APPLE_UNIVERSAL_BUILD */
+
+/* The normal alignment of `double', in bytes. */
+#define ALIGNOF_DOUBLE 8
+
+/* The normal alignment of `void *', in bytes. */
+#define ALIGNOF_VOID_P 8
+
+/* Use libxml2 instead of Expat */
+/* #undef ENABLE_LIBXML2 */
+
+/* Define to 1 if translation of program messages to the user's native
+ language is requested. */
+/* #undef ENABLE_NLS */
+
+/* Additional font directories */
+#define FC_ADD_FONTS ""
+
+/* Architecture prefix to use for cache file names */
+/* #undef FC_ARCHITECTURE */
+
+/* System font directory. Just testing, obviously this won't work in general. */
+#define FC_DEFAULT_FONTS "
WINDOWSFONTDIR"
+
+/* The type of len parameter of the gperf hash/lookup function */
+#define FC_GPERF_SIZE_T size_t
+
+/* Define to nothing if C supports flexible array members, and to 1 if it does
+ not. That way, with a declaration like `struct s { int n; double
+ d[FLEXIBLE_ARRAY_MEMBER]; };', the struct hack can be used with pre-C99
+ compilers. When computing the size of such an object, don't use 'sizeof
+ (struct s)' as it overestimates the size. Use 'offsetof (struct s, d)'
+ instead. Don't use 'offsetof (struct s, d[0])', as this doesn't work with
+ MSVC and with C++ compilers. */
+#define FLEXIBLE_ARRAY_MEMBER /**/
+
+/* Gettext package */
+#define GETTEXT_PACKAGE "fontconfig"
+
+/* Define to 1 if you have the Mac OS X function CFLocaleCopyCurrent in the
+ CoreFoundation framework. */
+/* #undef HAVE_CFLOCALECOPYCURRENT */
+
+/* Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in
+ the CoreFoundation framework. */
+/* #undef HAVE_CFPREFERENCESCOPYAPPVALUE */
+
+/* Define if the GNU dcgettext() function is already present or preinstalled.
+ */
+/* #undef HAVE_DCGETTEXT */
+
+/* Define to 1 if you have the header file. */
+/* #undef HAVE_DIRENT_H */
+
+/* Define to 1 if you have the header file. */
+/* #undef HAVE_DLFCN_H */
+
+/* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */
+/* #undef HAVE_DOPRNT */
+
+/* Define to 1 if you have the header file. */
+#define HAVE_FCNTL_H 1
+
+/* Define to 1 if you have the `fstatfs' function. */
+/* #undef HAVE_FSTATFS */
+
+/* Define to 1 if you have the `fstatvfs' function. */
+/* #undef HAVE_FSTATVFS */
+
+/* Define to 1 if you have the `FT_Done_MM_Var' function. */
+#define HAVE_FT_DONE_MM_VAR 1
+
+/* Define to 1 if you have the `FT_Get_BDF_Property' function. */
+/* #undef HAVE_FT_GET_BDF_PROPERTY */
+
+/* Define to 1 if you have the `FT_Get_PS_Font_Info' function. */
+#define HAVE_FT_GET_PS_FONT_INFO 1
+
+/* Define to 1 if you have the `FT_Get_X11_Font_Format' function. */
+/* #undef HAVE_FT_GET_X11_FONT_FORMAT */
+
+/* Define to 1 if you have the `FT_Has_PS_Glyph_Names' function. */
+#define HAVE_FT_HAS_PS_GLYPH_NAMES 1
+
+/* Define to 1 if you have the `getexecname' function. */
+/* #undef HAVE_GETEXECNAME */
+
+/* Define to 1 if you have the `getopt' function. */
+/* #undef HAVE_GETOPT */
+
+/* Define to 1 if you have the `getopt_long' function. */
+/* #undef HAVE_GETOPT_LONG */
+
+/* Define to 1 if you have the `getpagesize' function. */
+/* #undef HAVE_GETPAGESIZE */
+
+/* Define to 1 if you have the `getprogname' function. */
+/* #undef HAVE_GETPROGNAME */
+
+/* Define if the GNU gettext() function is already present or preinstalled. */
+/* #undef HAVE_GETTEXT */
+
+/* Define if you have the iconv() function and it works. */
+/* #undef HAVE_ICONV */
+
+/* Have Intel __sync_* atomic primitives */
+/* #undef HAVE_INTEL_ATOMIC_PRIMITIVES */
+
+/* Define to 1 if you have the header file. */
+#define HAVE_INTTYPES_H 1
+
+/* Define to 1 if you have the `link' function. */
+/* #undef HAVE_LINK */
+
+/* Define to 1 if you have the `lrand48' function. */
+/* #undef HAVE_LRAND48 */
+
+/* Define to 1 if you have the `lstat' function. */
+/* #undef HAVE_LSTAT */
+
+/* Define to 1 if you have the header file. */
+/* #undef HAVE_MINIX_CONFIG_H */
+
+/* Define to 1 if you have the `mkdtemp' function. */
+/* #undef HAVE_MKDTEMP */
+
+/* Define to 1 if you have the `mkostemp' function. */
+/* #undef HAVE_MKOSTEMP */
+
+/* Define to 1 if you have the `mkstemp' function. */
+/* #undef HAVE_MKSTEMP */
+
+/* Define to 1 if you have a working `mmap' system call. */
+/* #undef HAVE_MMAP */
+
+/* Define to 1 if you have the header file, and it defines `DIR'. */
+/* #undef HAVE_NDIR_H */
+
+/* Define to 1 if you have the 'posix_fadvise' function. */
+/* #undef HAVE_POSIX_FADVISE */
+
+/* Have POSIX threads */
+/* #undef HAVE_PTHREAD */
+
+/* Have PTHREAD_PRIO_INHERIT. */
+/* #undef HAVE_PTHREAD_PRIO_INHERIT */
+
+/* Define to 1 if you have the `rand' function. */
+#define HAVE_RAND 1
+
+/* Define to 1 if you have the `random' function. */
+/* #undef HAVE_RANDOM */
+
+/* Define to 1 if you have the `random_r' function. */
+/* #undef HAVE_RANDOM_R */
+
+/* Define to 1 if you have the `rand_r' function. */
+/* #undef HAVE_RAND_R */
+
+/* Define to 1 if you have the `readlink' function. */
+/* #undef HAVE_READLINK */
+
+/* Define to 1 if you have the header file. */
+/* #undef HAVE_SCHED_H */
+
+/* Have sched_yield */
+/* #undef HAVE_SCHED_YIELD */
+
+/* Have Solaris __machine_*_barrier and atomic_* operations */
+/* #undef HAVE_SOLARIS_ATOMIC_OPS */
+
+/* Have C99 stdatomic atomic primitives */
+/* #undef HAVE_STDATOMIC_PRIMITIVES */
+
+/* Define to 1 if you have the header file. */
+#define HAVE_STDINT_H 1
+
+/* Define to 1 if you have the header file. */
+#define HAVE_STDIO_H 1
+
+/* Define to 1 if you have the header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define to 1 if you have the `strerror' function. */
+#define HAVE_STRERROR 1
+
+/* Define to 1 if you have the `strerror_r' function. */
+/* #undef HAVE_STRERROR_R */
+
+/* Define to 1 if you have the header file. */
+/* #undef HAVE_STRINGS_H */
+
+/* Define to 1 if you have the header file. */
+#define HAVE_STRING_H 1
+
+/* Define to 1 if `d_type' is a member of `struct dirent'. */
+/* #undef HAVE_STRUCT_DIRENT_D_TYPE */
+
+/* Define to 1 if `f_flags' is a member of `struct statfs'. */
+/* #undef HAVE_STRUCT_STATFS_F_FLAGS */
+
+/* Define to 1 if `f_fstypename' is a member of `struct statfs'. */
+/* #undef HAVE_STRUCT_STATFS_F_FSTYPENAME */
+
+/* Define to 1 if `f_basetype' is a member of `struct statvfs'. */
+/* #undef HAVE_STRUCT_STATVFS_F_BASETYPE */
+
+/* Define to 1 if `f_fstypename' is a member of `struct statvfs'. */
+/* #undef HAVE_STRUCT_STATVFS_F_FSTYPENAME */
+
+/* Define to 1 if `st_mtim' is a member of `struct stat'. */
+/* #undef HAVE_STRUCT_STAT_ST_MTIM */
+
+/* Define to 1 if you have the header file, and it defines `DIR'.
+ */
+/* #undef HAVE_SYS_DIR_H */
+
+/* Define to 1 if you have the header file. */
+/* #undef HAVE_SYS_MOUNT_H */
+
+/* Define to 1 if you have the header file, and it defines `DIR'.
+ */
+/* #undef HAVE_SYS_NDIR_H */
+
+/* Define to 1 if you have the header file. */
+/* #undef HAVE_SYS_PARAM_H */
+
+/* Define to 1 if you have the header file. */
+/* #undef HAVE_SYS_STATFS_H */
+
+/* Define to 1 if you have the header file. */
+/* #undef HAVE_SYS_STATVFS_H */
+
+/* Define to 1 if you have the header file. */
+#define HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the header file. */
+/* #undef HAVE_SYS_TYPES_H */
+
+/* Define to 1 if you have the header file. */
+/* #undef HAVE_SYS_VFS_H */
+
+/* Define to 1 if you have the header file. */
+/* #undef HAVE_UNISTD_H */
+
+/* Define to 1 if you have the `vprintf' function. */
+/* #undef HAVE_VPRINTF */
+
+/* Can use #warning in C files */
+#define HAVE_WARNING_CPP_DIRECTIVE 1
+
+/* Define to 1 if you have the header file. */
+#define HAVE_WCHAR_H 1
+
+/* Use xmlparse.h instead of expat.h */
+/* #undef HAVE_XMLPARSE_H */
+
+/* Define to 1 if you have the `XML_SetDoctypeDeclHandler' function. */
+#define HAVE_XML_SETDOCTYPEDECLHANDLER 1
+
+/* Define to 1 if you have the `_mktemp_s' function. */
+/* #undef HAVE__MKTEMP_S */
+
+/* Define to the sub-directory where libtool stores uninstalled libraries. */
+#define LT_OBJDIR ".libs/"
+
+/* Name of package */
+#define PACKAGE "fontconfig"
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT "https://gitlab.freedesktop.org/fontconfig/fontconfig/issues/new"
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME "fontconfig"
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING "fontconfig 2.14.2"
+
+/* Define to the one symbol short name of this package. */
+#define PACKAGE_TARNAME "fontconfig"
+
+/* Define to the home page for this package. */
+#define PACKAGE_URL ""
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION "2.14.2"
+
+/* Define to necessary symbol if this constant uses a non-standard name on
+ your system. */
+/* #undef PTHREAD_CREATE_JOINABLE */
+
+/* The size of `char', as computed by sizeof. */
+/* #undef SIZEOF_CHAR */
+
+/* The size of `int', as computed by sizeof. */
+/* #undef SIZEOF_INT */
+
+/* The size of `long', as computed by sizeof. */
+/* #undef SIZEOF_LONG */
+
+/* The size of `short', as computed by sizeof. */
+/* #undef SIZEOF_SHORT */
+
+/* The size of `void*', as computed by sizeof. */
+/* #undef SIZEOF_VOIDP */
+
+/* The size of `void *', as computed by sizeof. */
+#define SIZEOF_VOID_P 8
+
+/* Define to 1 if all of the C90 standard headers exist (not just the ones
+ required in a freestanding environment). This macro is provided for
+ backward compatibility; new code need not use it. */
+#define STDC_HEADERS 1
+
+/* Use iconv. */
+/* #undef USE_ICONV */
+
+/* Enable extensions on AIX 3, Interix. */
+#ifndef _ALL_SOURCE
+/* #undef _ALL_SOURCE */
+#endif
+/* Enable general extensions on macOS. */
+#ifndef _DARWIN_C_SOURCE
+/* #undef _DARWIN_C_SOURCE */
+#endif
+/* Enable general extensions on Solaris. */
+#ifndef __EXTENSIONS__
+/* #undef __EXTENSIONS__ */
+#endif
+/* Enable GNU extensions on systems that have them. */
+#ifndef _GNU_SOURCE
+/* #undef _GNU_SOURCE */
+#endif
+/* Enable X/Open compliant socket functions that do not require linking
+ with -lxnet on HP-UX 11.11. */
+#ifndef _HPUX_ALT_XOPEN_SOCKET_API
+/* #undef _HPUX_ALT_XOPEN_SOCKET_API */
+#endif
+/* Identify the host operating system as Minix.
+ This macro does not affect the system headers' behavior.
+ A future release of Autoconf may stop defining this macro. */
+#ifndef _MINIX
+/* # undef _MINIX */
+#endif
+/* Enable general extensions on NetBSD.
+ Enable NetBSD compatibility extensions on Minix. */
+#ifndef _NETBSD_SOURCE
+/* #undef _NETBSD_SOURCE */
+#endif
+/* Enable OpenBSD compatibility extensions on NetBSD.
+ Oddly enough, this does nothing on OpenBSD. */
+#ifndef _OPENBSD_SOURCE
+/* #undef _OPENBSD_SOURCE */
+#endif
+/* Define to 1 if needed for POSIX-compatible behavior. */
+#ifndef _POSIX_SOURCE
+/* # undef _POSIX_SOURCE */
+#endif
+/* Define to 2 if needed for POSIX-compatible behavior. */
+#ifndef _POSIX_1_SOURCE
+/* # undef _POSIX_1_SOURCE */
+#endif
+/* Enable POSIX-compatible threading on Solaris. */
+#ifndef _POSIX_PTHREAD_SEMANTICS
+/* #undef _POSIX_PTHREAD_SEMANTICS */
+#endif
+/* Enable extensions specified by ISO/IEC TS 18661-5:2014. */
+#ifndef __STDC_WANT_IEC_60559_ATTRIBS_EXT__
+#define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1
+#endif
+/* Enable extensions specified by ISO/IEC TS 18661-1:2014. */
+#ifndef __STDC_WANT_IEC_60559_BFP_EXT__
+#define __STDC_WANT_IEC_60559_BFP_EXT__ 1
+#endif
+/* Enable extensions specified by ISO/IEC TS 18661-2:2015. */
+#ifndef __STDC_WANT_IEC_60559_DFP_EXT__
+#define __STDC_WANT_IEC_60559_DFP_EXT__ 1
+#endif
+/* Enable extensions specified by ISO/IEC TS 18661-4:2015. */
+#ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__
+#define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1
+#endif
+/* Enable extensions specified by ISO/IEC TS 18661-3:2015. */
+#ifndef __STDC_WANT_IEC_60559_TYPES_EXT__
+#define __STDC_WANT_IEC_60559_TYPES_EXT__ 1
+#endif
+/* Enable extensions specified by ISO/IEC TR 24731-2:2010. */
+#ifndef __STDC_WANT_LIB_EXT2__
+#define __STDC_WANT_LIB_EXT2__ 1
+#endif
+/* Enable extensions specified by ISO/IEC 24747:2009. */
+#ifndef __STDC_WANT_MATH_SPEC_FUNCS__
+#define __STDC_WANT_MATH_SPEC_FUNCS__ 1
+#endif
+/* Enable extensions on HP NonStop. */
+#ifndef _TANDEM_SOURCE
+/* #undef _TANDEM_SOURCE */
+#endif
+/* Enable X/Open extensions. Define to 500 only if necessary
+ to make mbstate_t available. */
+#ifndef _XOPEN_SOURCE
+/* # undef _XOPEN_SOURCE */
+#endif
+
+/* Version number of package */
+#define VERSION "2.14.2"
+
+/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
+ significant byte first (like Motorola and SPARC, unlike Intel). */
+#if defined AC_APPLE_UNIVERSAL_BUILD
+#if defined __BIG_ENDIAN__
+#define WORDS_BIGENDIAN 1
+#endif
+#else
+#ifndef WORDS_BIGENDIAN
+/* # undef WORDS_BIGENDIAN */
+#endif
+#endif
+
+/* Number of bits in a file offset, on hosts where this is settable. */
+/* #undef _FILE_OFFSET_BITS */
+
+/* Define for large files, on AIX-style hosts. */
+/* #undef _LARGE_FILES */
+
+/* Define to empty if `const' does not conform to ANSI C. */
+/* #undef const */
+
+/* Define to `__inline__' or `__inline' if that's what the C compiler
+ calls it, or to nothing if 'inline' is not supported under any name. */
+#ifndef __cplusplus
+/* #undef inline */
+#endif
+
+/* Define as a signed integer type capable of holding a process identifier. */
+/* #undef pid_t */
+
+#include "config-fixups.h"
diff --git a/external/fontconfig/configs/wnt_fontconfig_fcalias.h b/external/fontconfig/configs/wnt_fontconfig_fcalias.h
new file mode 100644
index 000000000000..177938d5c6bd
--- /dev/null
+++ b/external/fontconfig/configs/wnt_fontconfig_fcalias.h
@@ -0,0 +1,454 @@
+extern __typeof (FcBlanksCreate) IA__FcBlanksCreate FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcBlanksCreate IA__FcBlanksCreate
+extern __typeof (FcBlanksDestroy) IA__FcBlanksDestroy FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcBlanksDestroy IA__FcBlanksDestroy
+extern __typeof (FcBlanksAdd) IA__FcBlanksAdd FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcBlanksAdd IA__FcBlanksAdd
+extern __typeof (FcBlanksIsMember) IA__FcBlanksIsMember FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcBlanksIsMember IA__FcBlanksIsMember
+extern __typeof (FcCacheCopySet) IA__FcCacheCopySet FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcCacheCopySet IA__FcCacheCopySet
+extern __typeof (FcCacheNumSubdir) IA__FcCacheNumSubdir FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcCacheNumSubdir IA__FcCacheNumSubdir
+extern __typeof (FcCacheNumFont) IA__FcCacheNumFont FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcCacheNumFont IA__FcCacheNumFont
+extern __typeof (FcDirCacheUnlink) IA__FcDirCacheUnlink FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcDirCacheUnlink IA__FcDirCacheUnlink
+extern __typeof (FcDirCacheValid) IA__FcDirCacheValid FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcDirCacheValid IA__FcDirCacheValid
+extern __typeof (FcDirCacheClean) IA__FcDirCacheClean FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcDirCacheClean IA__FcDirCacheClean
+extern __typeof (FcCacheCreateTagFile) IA__FcCacheCreateTagFile FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcCacheCreateTagFile IA__FcCacheCreateTagFile
+extern __typeof (FcDirCacheCreateUUID) IA__FcDirCacheCreateUUID FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcDirCacheCreateUUID IA__FcDirCacheCreateUUID
+extern __typeof (FcDirCacheDeleteUUID) IA__FcDirCacheDeleteUUID FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcDirCacheDeleteUUID IA__FcDirCacheDeleteUUID
+extern __typeof (FcConfigHome) IA__FcConfigHome FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcConfigHome IA__FcConfigHome
+extern __typeof (FcConfigEnableHome) IA__FcConfigEnableHome FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcConfigEnableHome IA__FcConfigEnableHome
+extern __typeof (FcConfigGetFilename) IA__FcConfigGetFilename FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcConfigGetFilename IA__FcConfigGetFilename
+extern __typeof (FcConfigFilename) IA__FcConfigFilename FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcConfigFilename IA__FcConfigFilename
+extern __typeof (FcConfigCreate) IA__FcConfigCreate FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcConfigCreate IA__FcConfigCreate
+extern __typeof (FcConfigReference) IA__FcConfigReference FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcConfigReference IA__FcConfigReference
+extern __typeof (FcConfigDestroy) IA__FcConfigDestroy FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcConfigDestroy IA__FcConfigDestroy
+extern __typeof (FcConfigSetCurrent) IA__FcConfigSetCurrent FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcConfigSetCurrent IA__FcConfigSetCurrent
+extern __typeof (FcConfigGetCurrent) IA__FcConfigGetCurrent FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcConfigGetCurrent IA__FcConfigGetCurrent
+extern __typeof (FcConfigUptoDate) IA__FcConfigUptoDate FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcConfigUptoDate IA__FcConfigUptoDate
+extern __typeof (FcConfigBuildFonts) IA__FcConfigBuildFonts FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcConfigBuildFonts IA__FcConfigBuildFonts
+extern __typeof (FcConfigGetFontDirs) IA__FcConfigGetFontDirs FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcConfigGetFontDirs IA__FcConfigGetFontDirs
+extern __typeof (FcConfigGetConfigDirs) IA__FcConfigGetConfigDirs FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcConfigGetConfigDirs IA__FcConfigGetConfigDirs
+extern __typeof (FcConfigGetConfigFiles) IA__FcConfigGetConfigFiles FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcConfigGetConfigFiles IA__FcConfigGetConfigFiles
+extern __typeof (FcConfigGetCache) IA__FcConfigGetCache FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcConfigGetCache IA__FcConfigGetCache
+extern __typeof (FcConfigGetBlanks) IA__FcConfigGetBlanks FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcConfigGetBlanks IA__FcConfigGetBlanks
+extern __typeof (FcConfigGetCacheDirs) IA__FcConfigGetCacheDirs FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcConfigGetCacheDirs IA__FcConfigGetCacheDirs
+extern __typeof (FcConfigGetRescanInterval) IA__FcConfigGetRescanInterval FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcConfigGetRescanInterval IA__FcConfigGetRescanInterval
+extern __typeof (FcConfigSetRescanInterval) IA__FcConfigSetRescanInterval FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcConfigSetRescanInterval IA__FcConfigSetRescanInterval
+extern __typeof (FcConfigGetFonts) IA__FcConfigGetFonts FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcConfigGetFonts IA__FcConfigGetFonts
+extern __typeof (FcConfigAppFontAddFile) IA__FcConfigAppFontAddFile FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcConfigAppFontAddFile IA__FcConfigAppFontAddFile
+extern __typeof (FcConfigAppFontAddDir) IA__FcConfigAppFontAddDir FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcConfigAppFontAddDir IA__FcConfigAppFontAddDir
+extern __typeof (FcConfigAppFontClear) IA__FcConfigAppFontClear FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcConfigAppFontClear IA__FcConfigAppFontClear
+extern __typeof (FcConfigSubstituteWithPat) IA__FcConfigSubstituteWithPat FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcConfigSubstituteWithPat IA__FcConfigSubstituteWithPat
+extern __typeof (FcConfigSubstitute) IA__FcConfigSubstitute FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcConfigSubstitute IA__FcConfigSubstitute
+extern __typeof (FcConfigGetSysRoot) IA__FcConfigGetSysRoot FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcConfigGetSysRoot IA__FcConfigGetSysRoot
+extern __typeof (FcConfigSetSysRoot) IA__FcConfigSetSysRoot FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcConfigSetSysRoot IA__FcConfigSetSysRoot
+extern __typeof (FcConfigFileInfoIterInit) IA__FcConfigFileInfoIterInit FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcConfigFileInfoIterInit IA__FcConfigFileInfoIterInit
+extern __typeof (FcConfigFileInfoIterNext) IA__FcConfigFileInfoIterNext FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcConfigFileInfoIterNext IA__FcConfigFileInfoIterNext
+extern __typeof (FcConfigFileInfoIterGet) IA__FcConfigFileInfoIterGet FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcConfigFileInfoIterGet IA__FcConfigFileInfoIterGet
+extern __typeof (FcCharSetCreate) IA__FcCharSetCreate FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcCharSetCreate IA__FcCharSetCreate
+extern __typeof (FcCharSetNew) IA__FcCharSetNew FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcCharSetNew IA__FcCharSetNew
+extern __typeof (FcCharSetDestroy) IA__FcCharSetDestroy FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcCharSetDestroy IA__FcCharSetDestroy
+extern __typeof (FcCharSetAddChar) IA__FcCharSetAddChar FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcCharSetAddChar IA__FcCharSetAddChar
+extern __typeof (FcCharSetDelChar) IA__FcCharSetDelChar FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcCharSetDelChar IA__FcCharSetDelChar
+extern __typeof (FcCharSetCopy) IA__FcCharSetCopy FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcCharSetCopy IA__FcCharSetCopy
+extern __typeof (FcCharSetEqual) IA__FcCharSetEqual FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcCharSetEqual IA__FcCharSetEqual
+extern __typeof (FcCharSetIntersect) IA__FcCharSetIntersect FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcCharSetIntersect IA__FcCharSetIntersect
+extern __typeof (FcCharSetUnion) IA__FcCharSetUnion FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcCharSetUnion IA__FcCharSetUnion
+extern __typeof (FcCharSetSubtract) IA__FcCharSetSubtract FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcCharSetSubtract IA__FcCharSetSubtract
+extern __typeof (FcCharSetMerge) IA__FcCharSetMerge FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcCharSetMerge IA__FcCharSetMerge
+extern __typeof (FcCharSetHasChar) IA__FcCharSetHasChar FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcCharSetHasChar IA__FcCharSetHasChar
+extern __typeof (FcCharSetCount) IA__FcCharSetCount FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcCharSetCount IA__FcCharSetCount
+extern __typeof (FcCharSetIntersectCount) IA__FcCharSetIntersectCount FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcCharSetIntersectCount IA__FcCharSetIntersectCount
+extern __typeof (FcCharSetSubtractCount) IA__FcCharSetSubtractCount FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcCharSetSubtractCount IA__FcCharSetSubtractCount
+extern __typeof (FcCharSetIsSubset) IA__FcCharSetIsSubset FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcCharSetIsSubset IA__FcCharSetIsSubset
+extern __typeof (FcCharSetFirstPage) IA__FcCharSetFirstPage FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcCharSetFirstPage IA__FcCharSetFirstPage
+extern __typeof (FcCharSetNextPage) IA__FcCharSetNextPage FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcCharSetNextPage IA__FcCharSetNextPage
+extern __typeof (FcCharSetCoverage) IA__FcCharSetCoverage FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcCharSetCoverage IA__FcCharSetCoverage
+extern __typeof (FcValuePrint) IA__FcValuePrint FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcValuePrint IA__FcValuePrint
+extern __typeof (FcPatternPrint) IA__FcPatternPrint FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcPatternPrint IA__FcPatternPrint
+extern __typeof (FcFontSetPrint) IA__FcFontSetPrint FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcFontSetPrint IA__FcFontSetPrint
+extern __typeof (FcGetDefaultLangs) IA__FcGetDefaultLangs FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcGetDefaultLangs IA__FcGetDefaultLangs
+extern __typeof (FcDefaultSubstitute) IA__FcDefaultSubstitute FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcDefaultSubstitute IA__FcDefaultSubstitute
+extern __typeof (FcFileIsDir) IA__FcFileIsDir FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcFileIsDir IA__FcFileIsDir
+extern __typeof (FcFileScan) IA__FcFileScan FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcFileScan IA__FcFileScan
+extern __typeof (FcDirScan) IA__FcDirScan FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcDirScan IA__FcDirScan
+extern __typeof (FcDirSave) IA__FcDirSave FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcDirSave IA__FcDirSave
+extern __typeof (FcDirCacheLoad) IA__FcDirCacheLoad FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcDirCacheLoad IA__FcDirCacheLoad
+extern __typeof (FcDirCacheRescan) IA__FcDirCacheRescan FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcDirCacheRescan IA__FcDirCacheRescan
+extern __typeof (FcDirCacheRead) IA__FcDirCacheRead FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcDirCacheRead IA__FcDirCacheRead
+extern __typeof (FcDirCacheLoadFile) IA__FcDirCacheLoadFile FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcDirCacheLoadFile IA__FcDirCacheLoadFile
+extern __typeof (FcDirCacheUnload) IA__FcDirCacheUnload FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcDirCacheUnload IA__FcDirCacheUnload
+extern __typeof (FcFreeTypeQuery) IA__FcFreeTypeQuery FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcFreeTypeQuery IA__FcFreeTypeQuery
+extern __typeof (FcFreeTypeQueryAll) IA__FcFreeTypeQueryAll FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcFreeTypeQueryAll IA__FcFreeTypeQueryAll
+extern __typeof (FcFontSetCreate) IA__FcFontSetCreate FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcFontSetCreate IA__FcFontSetCreate
+extern __typeof (FcFontSetDestroy) IA__FcFontSetDestroy FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcFontSetDestroy IA__FcFontSetDestroy
+extern __typeof (FcFontSetAdd) IA__FcFontSetAdd FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcFontSetAdd IA__FcFontSetAdd
+extern __typeof (FcInitLoadConfig) IA__FcInitLoadConfig FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcInitLoadConfig IA__FcInitLoadConfig
+extern __typeof (FcInitLoadConfigAndFonts) IA__FcInitLoadConfigAndFonts FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcInitLoadConfigAndFonts IA__FcInitLoadConfigAndFonts
+extern __typeof (FcInit) IA__FcInit FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcInit IA__FcInit
+extern __typeof (FcFini) IA__FcFini FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcFini IA__FcFini
+extern __typeof (FcGetVersion) IA__FcGetVersion FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcGetVersion IA__FcGetVersion
+extern __typeof (FcInitReinitialize) IA__FcInitReinitialize FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcInitReinitialize IA__FcInitReinitialize
+extern __typeof (FcInitBringUptoDate) IA__FcInitBringUptoDate FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcInitBringUptoDate IA__FcInitBringUptoDate
+extern __typeof (FcGetLangs) IA__FcGetLangs FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcGetLangs IA__FcGetLangs
+extern __typeof (FcLangNormalize) IA__FcLangNormalize FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcLangNormalize IA__FcLangNormalize
+extern __typeof (FcLangGetCharSet) IA__FcLangGetCharSet FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcLangGetCharSet IA__FcLangGetCharSet
+extern __typeof (FcLangSetCreate) IA__FcLangSetCreate FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcLangSetCreate IA__FcLangSetCreate
+extern __typeof (FcLangSetDestroy) IA__FcLangSetDestroy FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcLangSetDestroy IA__FcLangSetDestroy
+extern __typeof (FcLangSetCopy) IA__FcLangSetCopy FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcLangSetCopy IA__FcLangSetCopy
+extern __typeof (FcLangSetAdd) IA__FcLangSetAdd FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcLangSetAdd IA__FcLangSetAdd
+extern __typeof (FcLangSetDel) IA__FcLangSetDel FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcLangSetDel IA__FcLangSetDel
+extern __typeof (FcLangSetHasLang) IA__FcLangSetHasLang FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcLangSetHasLang IA__FcLangSetHasLang
+extern __typeof (FcLangSetCompare) IA__FcLangSetCompare FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcLangSetCompare IA__FcLangSetCompare
+extern __typeof (FcLangSetContains) IA__FcLangSetContains FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcLangSetContains IA__FcLangSetContains
+extern __typeof (FcLangSetEqual) IA__FcLangSetEqual FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcLangSetEqual IA__FcLangSetEqual
+extern __typeof (FcLangSetHash) IA__FcLangSetHash FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcLangSetHash IA__FcLangSetHash
+extern __typeof (FcLangSetGetLangs) IA__FcLangSetGetLangs FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcLangSetGetLangs IA__FcLangSetGetLangs
+extern __typeof (FcLangSetUnion) IA__FcLangSetUnion FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcLangSetUnion IA__FcLangSetUnion
+extern __typeof (FcLangSetSubtract) IA__FcLangSetSubtract FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcLangSetSubtract IA__FcLangSetSubtract
+extern __typeof (FcObjectSetCreate) IA__FcObjectSetCreate FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcObjectSetCreate IA__FcObjectSetCreate
+extern __typeof (FcObjectSetAdd) IA__FcObjectSetAdd FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcObjectSetAdd IA__FcObjectSetAdd
+extern __typeof (FcObjectSetDestroy) IA__FcObjectSetDestroy FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcObjectSetDestroy IA__FcObjectSetDestroy
+extern __typeof (FcObjectSetVaBuild) IA__FcObjectSetVaBuild FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcObjectSetVaBuild IA__FcObjectSetVaBuild
+extern __typeof (FcObjectSetBuild) IA__FcObjectSetBuild FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcObjectSetBuild IA__FcObjectSetBuild
+extern __typeof (FcFontSetList) IA__FcFontSetList FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcFontSetList IA__FcFontSetList
+extern __typeof (FcFontList) IA__FcFontList FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcFontList IA__FcFontList
+extern __typeof (FcAtomicCreate) IA__FcAtomicCreate FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcAtomicCreate IA__FcAtomicCreate
+extern __typeof (FcAtomicLock) IA__FcAtomicLock FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcAtomicLock IA__FcAtomicLock
+extern __typeof (FcAtomicNewFile) IA__FcAtomicNewFile FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcAtomicNewFile IA__FcAtomicNewFile
+extern __typeof (FcAtomicOrigFile) IA__FcAtomicOrigFile FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcAtomicOrigFile IA__FcAtomicOrigFile
+extern __typeof (FcAtomicReplaceOrig) IA__FcAtomicReplaceOrig FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcAtomicReplaceOrig IA__FcAtomicReplaceOrig
+extern __typeof (FcAtomicDeleteNew) IA__FcAtomicDeleteNew FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcAtomicDeleteNew IA__FcAtomicDeleteNew
+extern __typeof (FcAtomicUnlock) IA__FcAtomicUnlock FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcAtomicUnlock IA__FcAtomicUnlock
+extern __typeof (FcAtomicDestroy) IA__FcAtomicDestroy FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcAtomicDestroy IA__FcAtomicDestroy
+extern __typeof (FcFontSetMatch) IA__FcFontSetMatch FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcFontSetMatch IA__FcFontSetMatch
+extern __typeof (FcFontMatch) IA__FcFontMatch FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcFontMatch IA__FcFontMatch
+extern __typeof (FcFontRenderPrepare) IA__FcFontRenderPrepare FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcFontRenderPrepare IA__FcFontRenderPrepare
+extern __typeof (FcFontSetSort) IA__FcFontSetSort FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcFontSetSort IA__FcFontSetSort
+extern __typeof (FcFontSort) IA__FcFontSort FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcFontSort IA__FcFontSort
+extern __typeof (FcFontSetSortDestroy) IA__FcFontSetSortDestroy FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcFontSetSortDestroy IA__FcFontSetSortDestroy
+extern __typeof (FcMatrixCopy) IA__FcMatrixCopy FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcMatrixCopy IA__FcMatrixCopy
+extern __typeof (FcMatrixEqual) IA__FcMatrixEqual FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcMatrixEqual IA__FcMatrixEqual
+extern __typeof (FcMatrixMultiply) IA__FcMatrixMultiply FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcMatrixMultiply IA__FcMatrixMultiply
+extern __typeof (FcMatrixRotate) IA__FcMatrixRotate FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcMatrixRotate IA__FcMatrixRotate
+extern __typeof (FcMatrixScale) IA__FcMatrixScale FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcMatrixScale IA__FcMatrixScale
+extern __typeof (FcMatrixShear) IA__FcMatrixShear FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcMatrixShear IA__FcMatrixShear
+extern __typeof (FcNameRegisterObjectTypes) IA__FcNameRegisterObjectTypes FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcNameRegisterObjectTypes IA__FcNameRegisterObjectTypes
+extern __typeof (FcNameUnregisterObjectTypes) IA__FcNameUnregisterObjectTypes FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcNameUnregisterObjectTypes IA__FcNameUnregisterObjectTypes
+extern __typeof (FcNameGetObjectType) IA__FcNameGetObjectType FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcNameGetObjectType IA__FcNameGetObjectType
+extern __typeof (FcNameRegisterConstants) IA__FcNameRegisterConstants FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcNameRegisterConstants IA__FcNameRegisterConstants
+extern __typeof (FcNameUnregisterConstants) IA__FcNameUnregisterConstants FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcNameUnregisterConstants IA__FcNameUnregisterConstants
+extern __typeof (FcNameGetConstant) IA__FcNameGetConstant FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcNameGetConstant IA__FcNameGetConstant
+extern __typeof (FcNameGetConstantFor) IA__FcNameGetConstantFor FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcNameGetConstantFor IA__FcNameGetConstantFor
+extern __typeof (FcNameConstant) IA__FcNameConstant FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcNameConstant IA__FcNameConstant
+extern __typeof (FcNameParse) IA__FcNameParse FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcNameParse IA__FcNameParse
+extern __typeof (FcNameUnparse) IA__FcNameUnparse FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcNameUnparse IA__FcNameUnparse
+extern __typeof (FcPatternCreate) IA__FcPatternCreate FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcPatternCreate IA__FcPatternCreate
+extern __typeof (FcPatternDuplicate) IA__FcPatternDuplicate FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcPatternDuplicate IA__FcPatternDuplicate
+extern __typeof (FcPatternReference) IA__FcPatternReference FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcPatternReference IA__FcPatternReference
+extern __typeof (FcPatternFilter) IA__FcPatternFilter FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcPatternFilter IA__FcPatternFilter
+extern __typeof (FcValueDestroy) IA__FcValueDestroy FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcValueDestroy IA__FcValueDestroy
+extern __typeof (FcValueEqual) IA__FcValueEqual FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcValueEqual IA__FcValueEqual
+extern __typeof (FcValueSave) IA__FcValueSave FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcValueSave IA__FcValueSave
+extern __typeof (FcPatternDestroy) IA__FcPatternDestroy FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcPatternDestroy IA__FcPatternDestroy
+extern __typeof (FcPatternObjectCount) IA__FcPatternObjectCount FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcPatternObjectCount IA__FcPatternObjectCount
+extern __typeof (FcPatternEqual) IA__FcPatternEqual FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcPatternEqual IA__FcPatternEqual
+extern __typeof (FcPatternEqualSubset) IA__FcPatternEqualSubset FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcPatternEqualSubset IA__FcPatternEqualSubset
+extern __typeof (FcPatternHash) IA__FcPatternHash FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcPatternHash IA__FcPatternHash
+extern __typeof (FcPatternAdd) IA__FcPatternAdd FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcPatternAdd IA__FcPatternAdd
+extern __typeof (FcPatternAddWeak) IA__FcPatternAddWeak FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcPatternAddWeak IA__FcPatternAddWeak
+extern __typeof (FcPatternGet) IA__FcPatternGet FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcPatternGet IA__FcPatternGet
+extern __typeof (FcPatternGetWithBinding) IA__FcPatternGetWithBinding FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcPatternGetWithBinding IA__FcPatternGetWithBinding
+extern __typeof (FcPatternDel) IA__FcPatternDel FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcPatternDel IA__FcPatternDel
+extern __typeof (FcPatternRemove) IA__FcPatternRemove FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcPatternRemove IA__FcPatternRemove
+extern __typeof (FcPatternAddInteger) IA__FcPatternAddInteger FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcPatternAddInteger IA__FcPatternAddInteger
+extern __typeof (FcPatternAddDouble) IA__FcPatternAddDouble FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcPatternAddDouble IA__FcPatternAddDouble
+extern __typeof (FcPatternAddString) IA__FcPatternAddString FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcPatternAddString IA__FcPatternAddString
+extern __typeof (FcPatternAddMatrix) IA__FcPatternAddMatrix FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcPatternAddMatrix IA__FcPatternAddMatrix
+extern __typeof (FcPatternAddCharSet) IA__FcPatternAddCharSet FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcPatternAddCharSet IA__FcPatternAddCharSet
+extern __typeof (FcPatternAddBool) IA__FcPatternAddBool FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcPatternAddBool IA__FcPatternAddBool
+extern __typeof (FcPatternAddLangSet) IA__FcPatternAddLangSet FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcPatternAddLangSet IA__FcPatternAddLangSet
+extern __typeof (FcPatternAddRange) IA__FcPatternAddRange FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcPatternAddRange IA__FcPatternAddRange
+extern __typeof (FcPatternGetInteger) IA__FcPatternGetInteger FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcPatternGetInteger IA__FcPatternGetInteger
+extern __typeof (FcPatternGetDouble) IA__FcPatternGetDouble FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcPatternGetDouble IA__FcPatternGetDouble
+extern __typeof (FcPatternGetString) IA__FcPatternGetString FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcPatternGetString IA__FcPatternGetString
+extern __typeof (FcPatternGetMatrix) IA__FcPatternGetMatrix FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcPatternGetMatrix IA__FcPatternGetMatrix
+extern __typeof (FcPatternGetCharSet) IA__FcPatternGetCharSet FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcPatternGetCharSet IA__FcPatternGetCharSet
+extern __typeof (FcPatternGetBool) IA__FcPatternGetBool FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcPatternGetBool IA__FcPatternGetBool
+extern __typeof (FcPatternGetLangSet) IA__FcPatternGetLangSet FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcPatternGetLangSet IA__FcPatternGetLangSet
+extern __typeof (FcPatternGetRange) IA__FcPatternGetRange FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcPatternGetRange IA__FcPatternGetRange
+extern __typeof (FcPatternVaBuild) IA__FcPatternVaBuild FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcPatternVaBuild IA__FcPatternVaBuild
+extern __typeof (FcPatternBuild) IA__FcPatternBuild FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcPatternBuild IA__FcPatternBuild
+extern __typeof (FcPatternFormat) IA__FcPatternFormat FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcPatternFormat IA__FcPatternFormat
+extern __typeof (FcRangeCreateDouble) IA__FcRangeCreateDouble FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcRangeCreateDouble IA__FcRangeCreateDouble
+extern __typeof (FcRangeCreateInteger) IA__FcRangeCreateInteger FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcRangeCreateInteger IA__FcRangeCreateInteger
+extern __typeof (FcRangeDestroy) IA__FcRangeDestroy FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcRangeDestroy IA__FcRangeDestroy
+extern __typeof (FcRangeCopy) IA__FcRangeCopy FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcRangeCopy IA__FcRangeCopy
+extern __typeof (FcRangeGetDouble) IA__FcRangeGetDouble FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcRangeGetDouble IA__FcRangeGetDouble
+extern __typeof (FcPatternIterStart) IA__FcPatternIterStart FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcPatternIterStart IA__FcPatternIterStart
+extern __typeof (FcPatternIterNext) IA__FcPatternIterNext FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcPatternIterNext IA__FcPatternIterNext
+extern __typeof (FcPatternIterEqual) IA__FcPatternIterEqual FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcPatternIterEqual IA__FcPatternIterEqual
+extern __typeof (FcPatternFindIter) IA__FcPatternFindIter FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcPatternFindIter IA__FcPatternFindIter
+extern __typeof (FcPatternIterIsValid) IA__FcPatternIterIsValid FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcPatternIterIsValid IA__FcPatternIterIsValid
+extern __typeof (FcPatternIterGetObject) IA__FcPatternIterGetObject FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcPatternIterGetObject IA__FcPatternIterGetObject
+extern __typeof (FcPatternIterValueCount) IA__FcPatternIterValueCount FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcPatternIterValueCount IA__FcPatternIterValueCount
+extern __typeof (FcPatternIterGetValue) IA__FcPatternIterGetValue FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcPatternIterGetValue IA__FcPatternIterGetValue
+extern __typeof (FcWeightFromOpenType) IA__FcWeightFromOpenType FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcWeightFromOpenType IA__FcWeightFromOpenType
+extern __typeof (FcWeightFromOpenTypeDouble) IA__FcWeightFromOpenTypeDouble FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcWeightFromOpenTypeDouble IA__FcWeightFromOpenTypeDouble
+extern __typeof (FcWeightToOpenType) IA__FcWeightToOpenType FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcWeightToOpenType IA__FcWeightToOpenType
+extern __typeof (FcWeightToOpenTypeDouble) IA__FcWeightToOpenTypeDouble FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcWeightToOpenTypeDouble IA__FcWeightToOpenTypeDouble
+extern __typeof (FcStrCopy) IA__FcStrCopy FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcStrCopy IA__FcStrCopy
+extern __typeof (FcStrCopyFilename) IA__FcStrCopyFilename FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcStrCopyFilename IA__FcStrCopyFilename
+extern __typeof (FcStrPlus) IA__FcStrPlus FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcStrPlus IA__FcStrPlus
+extern __typeof (FcStrFree) IA__FcStrFree FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcStrFree IA__FcStrFree
+extern __typeof (FcStrDowncase) IA__FcStrDowncase FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcStrDowncase IA__FcStrDowncase
+extern __typeof (FcStrCmpIgnoreCase) IA__FcStrCmpIgnoreCase FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcStrCmpIgnoreCase IA__FcStrCmpIgnoreCase
+extern __typeof (FcStrCmp) IA__FcStrCmp FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcStrCmp IA__FcStrCmp
+extern __typeof (FcStrStrIgnoreCase) IA__FcStrStrIgnoreCase FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcStrStrIgnoreCase IA__FcStrStrIgnoreCase
+extern __typeof (FcStrStr) IA__FcStrStr FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcStrStr IA__FcStrStr
+extern __typeof (FcUtf8ToUcs4) IA__FcUtf8ToUcs4 FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcUtf8ToUcs4 IA__FcUtf8ToUcs4
+extern __typeof (FcUtf8Len) IA__FcUtf8Len FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcUtf8Len IA__FcUtf8Len
+extern __typeof (FcUcs4ToUtf8) IA__FcUcs4ToUtf8 FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcUcs4ToUtf8 IA__FcUcs4ToUtf8
+extern __typeof (FcUtf16ToUcs4) IA__FcUtf16ToUcs4 FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcUtf16ToUcs4 IA__FcUtf16ToUcs4
+extern __typeof (FcUtf16Len) IA__FcUtf16Len FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcUtf16Len IA__FcUtf16Len
+extern __typeof (FcStrBuildFilename) IA__FcStrBuildFilename FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcStrBuildFilename IA__FcStrBuildFilename
+extern __typeof (FcStrDirname) IA__FcStrDirname FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcStrDirname IA__FcStrDirname
+extern __typeof (FcStrBasename) IA__FcStrBasename FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcStrBasename IA__FcStrBasename
+extern __typeof (FcStrSetCreate) IA__FcStrSetCreate FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcStrSetCreate IA__FcStrSetCreate
+extern __typeof (FcStrSetMember) IA__FcStrSetMember FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcStrSetMember IA__FcStrSetMember
+extern __typeof (FcStrSetEqual) IA__FcStrSetEqual FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcStrSetEqual IA__FcStrSetEqual
+extern __typeof (FcStrSetAdd) IA__FcStrSetAdd FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcStrSetAdd IA__FcStrSetAdd
+extern __typeof (FcStrSetAddFilename) IA__FcStrSetAddFilename FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcStrSetAddFilename IA__FcStrSetAddFilename
+extern __typeof (FcStrSetDel) IA__FcStrSetDel FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcStrSetDel IA__FcStrSetDel
+extern __typeof (FcStrSetDestroy) IA__FcStrSetDestroy FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcStrSetDestroy IA__FcStrSetDestroy
+extern __typeof (FcStrListCreate) IA__FcStrListCreate FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcStrListCreate IA__FcStrListCreate
+extern __typeof (FcStrListFirst) IA__FcStrListFirst FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcStrListFirst IA__FcStrListFirst
+extern __typeof (FcStrListNext) IA__FcStrListNext FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcStrListNext IA__FcStrListNext
+extern __typeof (FcStrListDone) IA__FcStrListDone FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcStrListDone IA__FcStrListDone
+extern __typeof (FcConfigParseAndLoad) IA__FcConfigParseAndLoad FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcConfigParseAndLoad IA__FcConfigParseAndLoad
+extern __typeof (FcConfigParseAndLoadFromMemory) IA__FcConfigParseAndLoadFromMemory FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcConfigParseAndLoadFromMemory IA__FcConfigParseAndLoadFromMemory
+extern __typeof (FcConfigGetRescanInverval) IA__FcConfigGetRescanInverval FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcConfigGetRescanInverval IA__FcConfigGetRescanInverval
+extern __typeof (FcConfigSetRescanInverval) IA__FcConfigSetRescanInverval FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcConfigSetRescanInverval IA__FcConfigSetRescanInverval
diff --git a/external/fontconfig/configs/wnt_fontconfig_fcaliastail.h b/external/fontconfig/configs/wnt_fontconfig_fcaliastail.h
new file mode 100644
index 000000000000..8ac91a5f12f0
--- /dev/null
+++ b/external/fontconfig/configs/wnt_fontconfig_fcaliastail.h
@@ -0,0 +1 @@
+/* Empty file */
diff --git a/external/fontconfig/configs/wnt_fontconfig_fcftalias.h b/external/fontconfig/configs/wnt_fontconfig_fcftalias.h
new file mode 100644
index 000000000000..593e997711bf
--- /dev/null
+++ b/external/fontconfig/configs/wnt_fontconfig_fcftalias.h
@@ -0,0 +1,12 @@
+extern __typeof (FcFreeTypeCharIndex) IA__FcFreeTypeCharIndex FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcFreeTypeCharIndex IA__FcFreeTypeCharIndex
+extern __typeof (FcFreeTypeCharSetAndSpacing) IA__FcFreeTypeCharSetAndSpacing FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcFreeTypeCharSetAndSpacing IA__FcFreeTypeCharSetAndSpacing
+extern __typeof (FcFreeTypeCharSet) IA__FcFreeTypeCharSet FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcFreeTypeCharSet IA__FcFreeTypeCharSet
+extern __typeof (FcPatternGetFTFace) IA__FcPatternGetFTFace FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcPatternGetFTFace IA__FcPatternGetFTFace
+extern __typeof (FcPatternAddFTFace) IA__FcPatternAddFTFace FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcPatternAddFTFace IA__FcPatternAddFTFace
+extern __typeof (FcFreeTypeQueryFace) IA__FcFreeTypeQueryFace FC_ATTRIBUTE_VISIBILITY_HIDDEN;
+#define FcFreeTypeQueryFace IA__FcFreeTypeQueryFace
diff --git a/external/fontconfig/configs/wnt_fontconfig_fcftaliastail.h b/external/fontconfig/configs/wnt_fontconfig_fcftaliastail.h
new file mode 100644
index 000000000000..8ac91a5f12f0
--- /dev/null
+++ b/external/fontconfig/configs/wnt_fontconfig_fcftaliastail.h
@@ -0,0 +1 @@
+/* Empty file */
diff --git a/external/fontconfig/configs/wnt_fontconfig_fcobjshash.h b/external/fontconfig/configs/wnt_fontconfig_fcobjshash.h
new file mode 100644
index 000000000000..0e3bebae56b2
--- /dev/null
+++ b/external/fontconfig/configs/wnt_fontconfig_fcobjshash.h
@@ -0,0 +1,350 @@
+/* ANSI-C code produced by gperf version 3.1 */
+/* Command-line: /usr/bin/gperf --pic -m 100 fcobjshash.gperf */
+/* Computed positions: -k'3,5' */
+
+#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
+ && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
+ && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
+ && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
+ && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
+ && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
+ && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
+ && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
+ && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
+ && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
+ && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
+ && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
+ && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
+ && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
+ && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
+ && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
+ && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
+ && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
+ && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
+ && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
+ && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
+ && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
+ && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
+/* The character set is not based on ISO-646. */
+#error "gperf generated tables don't work with this execution character set. Please report a bug to ."
+#endif
+
+#line 1 "fcobjshash.gperf"
+
+#line 13 "fcobjshash.gperf"
+struct FcObjectTypeInfo {
+int name;
+int id;
+};
+#include
+/* maximum key range = 55, duplicates = 0 */
+
+#ifdef __GNUC__
+__inline
+#else
+#ifdef __cplusplus
+inline
+#endif
+#endif
+static unsigned int
+FcObjectTypeHash (register const char *str, register size_t len)
+{
+ static const unsigned char asso_values[] =
+ {
+ 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
+ 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
+ 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
+ 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
+ 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
+ 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
+ 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
+ 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
+ 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
+ 61, 61, 61, 61, 61, 61, 61, 2, 19, 30,
+ 14, 31, 34, 51, 13, 7, 61, 61, 18, 5,
+ 10, 40, 17, 61, 18, 2, 6, 38, 28, 46,
+ 23, 8, 3, 61, 61, 61, 61, 61, 61, 61,
+ 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
+ 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
+ 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
+ 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
+ 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
+ 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
+ 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
+ 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
+ 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
+ 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
+ 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
+ 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
+ 61, 61, 61, 61, 61, 61
+ };
+ register unsigned int hval = len;
+
+ switch (hval)
+ {
+ default:
+ hval += asso_values[(unsigned char)str[4]];
+ /*FALLTHROUGH*/
+ case 4:
+ case 3:
+ hval += asso_values[(unsigned char)str[2]];
+ break;
+ }
+ return hval;
+}
+
+struct FcObjectTypeNamePool_t
+ {
+ char FcObjectTypeNamePool_str6[sizeof("hash")];
+ char FcObjectTypeNamePool_str7[sizeof("size")];
+ char FcObjectTypeNamePool_str10[sizeof("dpi")];
+ char FcObjectTypeNamePool_str11[sizeof("charset")];
+ char FcObjectTypeNamePool_str12[sizeof("scalable")];
+ char FcObjectTypeNamePool_str13[sizeof("slant")];
+ char FcObjectTypeNamePool_str14[sizeof("lang")];
+ char FcObjectTypeNamePool_str15[sizeof("desktop")];
+ char FcObjectTypeNamePool_str16[sizeof("spacing")];
+ char FcObjectTypeNamePool_str17[sizeof("antialias")];
+ char FcObjectTypeNamePool_str18[sizeof("postscriptname")];
+ char FcObjectTypeNamePool_str19[sizeof("matrix")];
+ char FcObjectTypeNamePool_str20[sizeof("outline")];
+ char FcObjectTypeNamePool_str21[sizeof("hintstyle")];
+ char FcObjectTypeNamePool_str22[sizeof("file")];
+ char FcObjectTypeNamePool_str23[sizeof("rgba")];
+ char FcObjectTypeNamePool_str24[sizeof("hinting")];
+ char FcObjectTypeNamePool_str25[sizeof("charheight")];
+ char FcObjectTypeNamePool_str26[sizeof("weight")];
+ char FcObjectTypeNamePool_str27[sizeof("autohint")];
+ char FcObjectTypeNamePool_str28[sizeof("variable")];
+ char FcObjectTypeNamePool_str29[sizeof("family")];
+ char FcObjectTypeNamePool_str30[sizeof("lcdfilter")];
+ char FcObjectTypeNamePool_str31[sizeof("namelang")];
+ char FcObjectTypeNamePool_str32[sizeof("width")];
+ char FcObjectTypeNamePool_str33[sizeof("familylang")];
+ char FcObjectTypeNamePool_str34[sizeof("fonthashint")];
+ char FcObjectTypeNamePool_str35[sizeof("minspace")];
+ char FcObjectTypeNamePool_str36[sizeof("fullname")];
+ char FcObjectTypeNamePool_str37[sizeof("order")];
+ char FcObjectTypeNamePool_str38[sizeof("scale")];
+ char FcObjectTypeNamePool_str39[sizeof("verticallayout")];
+ char FcObjectTypeNamePool_str40[sizeof("fullnamelang")];
+ char FcObjectTypeNamePool_str41[sizeof("color")];
+ char FcObjectTypeNamePool_str42[sizeof("index")];
+ char FcObjectTypeNamePool_str43[sizeof("rasterizer")];
+ char FcObjectTypeNamePool_str44[sizeof("style")];
+ char FcObjectTypeNamePool_str45[sizeof("embolden")];
+ char FcObjectTypeNamePool_str46[sizeof("capability")];
+ char FcObjectTypeNamePool_str47[sizeof("embeddedbitmap")];
+ char FcObjectTypeNamePool_str48[sizeof("stylelang")];
+ char FcObjectTypeNamePool_str49[sizeof("fontversion")];
+ char FcObjectTypeNamePool_str50[sizeof("pixelsize")];
+ char FcObjectTypeNamePool_str51[sizeof("symbol")];
+ char FcObjectTypeNamePool_str52[sizeof("fontvariations")];
+ char FcObjectTypeNamePool_str53[sizeof("aspect")];
+ char FcObjectTypeNamePool_str54[sizeof("fontformat")];
+ char FcObjectTypeNamePool_str55[sizeof("globaladvance")];
+ char FcObjectTypeNamePool_str56[sizeof("fontfeatures")];
+ char FcObjectTypeNamePool_str57[sizeof("charwidth")];
+ char FcObjectTypeNamePool_str58[sizeof("decorative")];
+ char FcObjectTypeNamePool_str59[sizeof("foundry")];
+ char FcObjectTypeNamePool_str60[sizeof("prgname")];
+ };
+static const struct FcObjectTypeNamePool_t FcObjectTypeNamePool_contents =
+ {
+ "hash",
+ "size",
+ "dpi",
+ "charset",
+ "scalable",
+ "slant",
+ "lang",
+ "desktop",
+ "spacing",
+ "antialias",
+ "postscriptname",
+ "matrix",
+ "outline",
+ "hintstyle",
+ "file",
+ "rgba",
+ "hinting",
+ "charheight",
+ "weight",
+ "autohint",
+ "variable",
+ "family",
+ "lcdfilter",
+ "namelang",
+ "width",
+ "familylang",
+ "fonthashint",
+ "minspace",
+ "fullname",
+ "order",
+ "scale",
+ "verticallayout",
+ "fullnamelang",
+ "color",
+ "index",
+ "rasterizer",
+ "style",
+ "embolden",
+ "capability",
+ "embeddedbitmap",
+ "stylelang",
+ "fontversion",
+ "pixelsize",
+ "symbol",
+ "fontvariations",
+ "aspect",
+ "fontformat",
+ "globaladvance",
+ "fontfeatures",
+ "charwidth",
+ "decorative",
+ "foundry",
+ "prgname"
+ };
+#define FcObjectTypeNamePool ((const char *) &FcObjectTypeNamePool_contents)
+const struct FcObjectTypeInfo *
+FcObjectTypeLookup (register const char *str, register size_t len)
+{
+ enum
+ {
+ TOTAL_KEYWORDS = 53,
+ MIN_WORD_LENGTH = 3,
+ MAX_WORD_LENGTH = 14,
+ MIN_HASH_VALUE = 6,
+ MAX_HASH_VALUE = 60
+ };
+
+ static const struct FcObjectTypeInfo wordlist[] =
+ {
+ {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
+#line 62 "fcobjshash.gperf"
+ {(int)(size_t)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str6,FC_HASH_OBJECT},
+#line 27 "fcobjshash.gperf"
+ {(int)(size_t)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str7,FC_SIZE_OBJECT},
+ {-1}, {-1},
+#line 43 "fcobjshash.gperf"
+ {(int)(size_t)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str10,FC_DPI_OBJECT},
+#line 50 "fcobjshash.gperf"
+ {(int)(size_t)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str11,FC_CHARSET_OBJECT},
+#line 42 "fcobjshash.gperf"
+ {(int)(size_t)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str12,FC_SCALABLE_OBJECT},
+#line 24 "fcobjshash.gperf"
+ {(int)(size_t)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str13,FC_SLANT_OBJECT},
+#line 51 "fcobjshash.gperf"
+ {(int)(size_t)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str14,FC_LANG_OBJECT},
+#line 70 "fcobjshash.gperf"
+ {(int)(size_t)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str15,FC_DESKTOP_NAME_OBJECT},
+#line 30 "fcobjshash.gperf"
+ {(int)(size_t)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str16,FC_SPACING_OBJECT},
+#line 32 "fcobjshash.gperf"
+ {(int)(size_t)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str17,FC_ANTIALIAS_OBJECT},
+#line 63 "fcobjshash.gperf"
+ {(int)(size_t)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str18,FC_POSTSCRIPT_NAME_OBJECT},
+#line 49 "fcobjshash.gperf"
+ {(int)(size_t)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str19,FC_MATRIX_OBJECT},
+#line 41 "fcobjshash.gperf"
+ {(int)(size_t)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str20,FC_OUTLINE_OBJECT},
+#line 33 "fcobjshash.gperf"
+ {(int)(size_t)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str21,FC_HINT_STYLE_OBJECT},
+#line 38 "fcobjshash.gperf"
+ {(int)(size_t)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str22,FC_FILE_OBJECT},
+#line 44 "fcobjshash.gperf"
+ {(int)(size_t)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str23,FC_RGBA_OBJECT},
+#line 34 "fcobjshash.gperf"
+ {(int)(size_t)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str24,FC_HINTING_OBJECT},
+#line 48 "fcobjshash.gperf"
+ {(int)(size_t)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str25,FC_CHAR_HEIGHT_OBJECT},
+#line 25 "fcobjshash.gperf"
+ {(int)(size_t)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str26,FC_WEIGHT_OBJECT},
+#line 36 "fcobjshash.gperf"
+ {(int)(size_t)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str27,FC_AUTOHINT_OBJECT},
+#line 67 "fcobjshash.gperf"
+ {(int)(size_t)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str28,FC_VARIABLE_OBJECT},
+#line 18 "fcobjshash.gperf"
+ {(int)(size_t)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str29,FC_FAMILY_OBJECT},
+#line 58 "fcobjshash.gperf"
+ {(int)(size_t)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str30,FC_LCD_FILTER_OBJECT},
+#line 59 "fcobjshash.gperf"
+ {(int)(size_t)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str31,FC_NAMELANG_OBJECT},
+#line 26 "fcobjshash.gperf"
+ {(int)(size_t)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str32,FC_WIDTH_OBJECT},
+#line 19 "fcobjshash.gperf"
+ {(int)(size_t)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str33,FC_FAMILYLANG_OBJECT},
+#line 68 "fcobjshash.gperf"
+ {(int)(size_t)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str34,FC_FONT_HAS_HINT_OBJECT},
+#line 46 "fcobjshash.gperf"
+ {(int)(size_t)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str35,FC_MINSPACE_OBJECT},
+#line 22 "fcobjshash.gperf"
+ {(int)(size_t)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str36,FC_FULLNAME_OBJECT},
+#line 69 "fcobjshash.gperf"
+ {(int)(size_t)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str37,FC_ORDER_OBJECT},
+#line 45 "fcobjshash.gperf"
+ {(int)(size_t)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str38,FC_SCALE_OBJECT},
+#line 35 "fcobjshash.gperf"
+ {(int)(size_t)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str39,FC_VERTICAL_LAYOUT_OBJECT},
+#line 23 "fcobjshash.gperf"
+ {(int)(size_t)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str40,FC_FULLNAMELANG_OBJECT},
+#line 64 "fcobjshash.gperf"
+ {(int)(size_t)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str41,FC_COLOR_OBJECT},
+#line 39 "fcobjshash.gperf"
+ {(int)(size_t)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str42,FC_INDEX_OBJECT},
+#line 40 "fcobjshash.gperf"
+ {(int)(size_t)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str43,FC_RASTERIZER_OBJECT},
+#line 20 "fcobjshash.gperf"
+ {(int)(size_t)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str44,FC_STYLE_OBJECT},
+#line 55 "fcobjshash.gperf"
+ {(int)(size_t)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str45,FC_EMBOLDEN_OBJECT},
+#line 53 "fcobjshash.gperf"
+ {(int)(size_t)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str46,FC_CAPABILITY_OBJECT},
+#line 56 "fcobjshash.gperf"
+ {(int)(size_t)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str47,FC_EMBEDDED_BITMAP_OBJECT},
+#line 21 "fcobjshash.gperf"
+ {(int)(size_t)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str48,FC_STYLELANG_OBJECT},
+#line 52 "fcobjshash.gperf"
+ {(int)(size_t)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str49,FC_FONTVERSION_OBJECT},
+#line 29 "fcobjshash.gperf"
+ {(int)(size_t)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str50,FC_PIXEL_SIZE_OBJECT},
+#line 65 "fcobjshash.gperf"
+ {(int)(size_t)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str51,FC_SYMBOL_OBJECT},
+#line 66 "fcobjshash.gperf"
+ {(int)(size_t)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str52,FC_FONT_VARIATIONS_OBJECT},
+#line 28 "fcobjshash.gperf"
+ {(int)(size_t)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str53,FC_ASPECT_OBJECT},
+#line 54 "fcobjshash.gperf"
+ {(int)(size_t)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str54,FC_FONTFORMAT_OBJECT},
+#line 37 "fcobjshash.gperf"
+ {(int)(size_t)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str55,FC_GLOBAL_ADVANCE_OBJECT},
+#line 60 "fcobjshash.gperf"
+ {(int)(size_t)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str56,FC_FONT_FEATURES_OBJECT},
+#line 47 "fcobjshash.gperf"
+ {(int)(size_t)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str57,FC_CHARWIDTH_OBJECT},
+#line 57 "fcobjshash.gperf"
+ {(int)(size_t)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str58,FC_DECORATIVE_OBJECT},
+#line 31 "fcobjshash.gperf"
+ {(int)(size_t)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str59,FC_FOUNDRY_OBJECT},
+#line 61 "fcobjshash.gperf"
+ {(int)(size_t)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str60,FC_PRGNAME_OBJECT}
+ };
+
+ if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
+ {
+ register unsigned int key = FcObjectTypeHash (str, len);
+
+ if (key <= MAX_HASH_VALUE)
+ {
+ register int o = wordlist[key].name;
+ if (o >= 0)
+ {
+ register const char *s = o + FcObjectTypeNamePool;
+
+ if (*str == *s && !strcmp (str + 1, s + 1))
+ return &wordlist[key];
+ }
+ }
+ }
+ return 0;
+}
diff --git a/external/fontconfig/windowsfonts.patch b/external/fontconfig/windowsfonts.patch
new file mode 100644
index 000000000000..feaaf80937c5
--- /dev/null
+++ b/external/fontconfig/windowsfonts.patch
@@ -0,0 +1,55 @@
+Use newer API to get the Windows fonts directory, and convert from
+UTF-16 to UTF-8, assuming that the returned pathname will be treated
+as UTF-8 anyway, and converted to UTF-16 before opening fonts in it
+etc.
+
+But probaly fontconfig asumes system codepage for pathnames it uses on
+Windows all over the place anyway, so things are really messed up. Oh
+well.
+
+--- src/fcxml.c
++++ src/fcxml.c
+@@ -58,6 +58,8 @@
+
+ #ifdef _WIN32
+ #include
++#include
++#include
+ extern FcChar8 fontconfig_instprefix[];
+ pfnGetSystemWindowsDirectory pGetSystemWindowsDirectory = NULL;
+ pfnSHGetFolderPathA pSHGetFolderPathA = NULL;
+@@ -1386,18 +1387,25 @@
+ }
+ else if (strcmp ((const char *) path, "WINDOWSFONTDIR") == 0)
+ {
+- int rc;
+- path = buffer;
+- _ensureWin32GettersReady();
+- rc = pGetSystemWindowsDirectory ((LPSTR) buffer, sizeof (buffer) - 20);
+- if (rc == 0 || rc > sizeof (buffer) - 20)
++ wchar_t *wpath;
++ int size_needed;
++
++ if (!SUCCEEDED(SHGetKnownFolderPath(&FOLDERID_Fonts, 0, NULL, &wpath)))
+ {
+- FcConfigMessage (parse, FcSevereError, "GetSystemWindowsDirectory failed");
++ FcConfigMessage (parse, FcSevereError, "SHGetKnownFolderPath for FOLDERID_Fonts failed");
+ return NULL;
+ }
+- if (path [strlen ((const char *) path) - 1] != '\\')
+- strcat ((char *) path, "\\");
+- strcat ((char *) path, "fonts");
++ /* We assume that the code using fontconfig handles UTF-8 strings and not system codepage */
++ size_needed = WideCharToMultiByte (CP_UTF8, 0, wpath, wcslen(wpath), NULL, 0, NULL, NULL);
++ if (size_needed <= 0 || size_needed > sizeof(buffer))
++ {
++ FcConfigMessage (parse, FcSevereError, "WideCharToMultiByte failed");
++ CoTaskMemFree (wpath);
++ return NULL;
++ }
++ path = buffer;
++ WideCharToMultiByte(CP_UTF8, 0, wpath, wcslen(wpath), path, size_needed, NULL, NULL);
++ CoTaskMemFree (wpath);
+ }
+ else
+ {
diff --git a/solenv/clang-format/excludelist b/solenv/clang-format/excludelist
index 9840853e0ee7..af2158f75d2f 100644
--- a/solenv/clang-format/excludelist
+++ b/solenv/clang-format/excludelist
@@ -3656,6 +3656,12 @@ external/clucene/configs/_clucene-config-generic.h
external/clucene/configs/clucene-config-GCC-atomic.h
external/clucene/configs/clucene-config-MSVC.h
external/clucene/configs/clucene-config-generic.h
+external/fontconfig/configs/wnt_fontconfig_config.h
+external/fontconfig/configs/wnt_fontconfig_fcalias.h
+external/fontconfig/configs/wnt_fontconfig_fcaliastail.h
+external/fontconfig/configs/wnt_fontconfig_fcftalias.h
+external/fontconfig/configs/wnt_fontconfig_fcftaliastail.h
+external/fontconfig/configs/wnt_fontconfig_fcobjshash.h
external/libjpeg-turbo/jconfig.h
external/libjpeg-turbo/jconfigint.h
external/libjpeg-turbo/jversion.h