external/fontconfig/Module_fontconfig.mk                   |   15 
 external/fontconfig/StaticLibrary_fontconfig.mk            |   73 ++
 external/fontconfig/UnpackedTarball_fontconfig.mk          |   15 
 external/fontconfig/configs/wnt_fontconfig_config.h        |  444 ++++++++++++
 external/fontconfig/configs/wnt_fontconfig_fcalias.h       |  454 +++++++++++++
 external/fontconfig/configs/wnt_fontconfig_fcaliastail.h   |    1 
 external/fontconfig/configs/wnt_fontconfig_fcftalias.h     |   12 
 external/fontconfig/configs/wnt_fontconfig_fcftaliastail.h |    1 
 external/fontconfig/configs/wnt_fontconfig_fcobjshash.h    |  350 ++++++++++
 external/fontconfig/windowsfonts.patch                     |   55 +
 solenv/clang-format/excludelist                            |    6 
 11 files changed, 1425 insertions(+), 1 deletion(-)

New commits:
commit c9fa9ec8acb5830ebcf27bdf40718e248e67ff50
Author:     Tor Lillqvist <[email protected]>
AuthorDate: Tue Feb 25 19:52:15 2025 +0200
Commit:     Caolán McNamara <[email protected]>
CommitDate: Tue Dec 2 09:30:35 2025 +0100

    Add possibility to build fontconfig for Windows
    
    As a StaticLibrary for now. Using our build mechanism, not its
    own. This commit does not yet actually add any configury to get it
    built, BUILD_TYPE will never contain FONTCONFIG on Windows. Running
    "make fontconfig" won't work.
    
    Squashed in:
    Apply windows-related patch only on Windows
    
    Change-Id: I067d0d14dc4a1d99b4aae656b5f948c0a9952633
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/194571
    Tested-by: Jenkins CollaboraOffice <[email protected]>
    Reviewed-by: Caolán McNamara <[email protected]>

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
@@ -9,11 +9,24 @@
 
 $(eval $(call gb_Module_Module,fontconfig))
 
+$(eval $(call gb_Module_add_targets,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) \
-       UnpackedTarball_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 "<dir>WINDOWSFONTDIR</dir>"
+
+/* 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 <dirent.h> header file. */
+/* #undef HAVE_DIRENT_H */
+
+/* Define to 1 if you have the <dlfcn.h> 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 <fcntl.h> 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 <inttypes.h> 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 <minix/config.h> 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 <ndir.h> 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 <sched.h> 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 <stdint.h> header file. */
+#define HAVE_STDINT_H 1
+
+/* Define to 1 if you have the <stdio.h> header file. */
+#define HAVE_STDIO_H 1
+
+/* Define to 1 if you have the <stdlib.h> 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 <strings.h> header file. */
+/* #undef HAVE_STRINGS_H */
+
+/* Define to 1 if you have the <string.h> 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 <sys/dir.h> header file, and it defines `DIR'.
+   */
+/* #undef HAVE_SYS_DIR_H */
+
+/* Define to 1 if you have the <sys/mount.h> header file. */
+/* #undef HAVE_SYS_MOUNT_H */
+
+/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.
+   */
+/* #undef HAVE_SYS_NDIR_H */
+
+/* Define to 1 if you have the <sys/param.h> header file. */
+/* #undef HAVE_SYS_PARAM_H */
+
+/* Define to 1 if you have the <sys/statfs.h> header file. */
+/* #undef HAVE_SYS_STATFS_H */
+
+/* Define to 1 if you have the <sys/statvfs.h> header file. */
+/* #undef HAVE_SYS_STATVFS_H */
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#define HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+/* #undef HAVE_SYS_TYPES_H */
+
+/* Define to 1 if you have the <sys/vfs.h> header file. */
+/* #undef HAVE_SYS_VFS_H */
+
+/* Define to 1 if you have the <unistd.h> 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 <wchar.h> 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 <[email protected]>."
+#endif
+
+#line 1 "fcobjshash.gperf"
+
+#line 13 "fcobjshash.gperf"
+struct FcObjectTypeInfo {
+int name;
+int id;
+};
+#include <string.h>
+/* 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 <mbstring.h>
++#include <wchar.h>
++#include <Shlobj.h>
+ 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 7d9dd87e7251..cda2f63a84ff 100644
--- a/solenv/clang-format/excludelist
+++ b/solenv/clang-format/excludelist
@@ -3822,6 +3822,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

Reply via email to