https://bugs.gentoo.org/650332
Do not set locale in the library.
Patch from upstream.

--- a/fc-cache/fc-cache.c
+++ b/fc-cache/fc-cache.c
@@ -41,6 +41,7 @@
 #include <fcntl.h>
 #include <dirent.h>
 #include <string.h>
+#include <locale.h>
 
 #if defined (_WIN32)
 #define STRICT
@@ -302,6 +303,7 @@
 #if HAVE_GETOPT_LONG || HAVE_GETOPT
     int		c;
 
+    setlocale (LC_ALL, "");
 #if HAVE_GETOPT_LONG
     while ((c = getopt_long (argc, argv, "Efrsy:Vvh", longopts, NULL)) != -1)
 #else
--- a/fc-cat/fc-cat.c
+++ b/fc-cat/fc-cat.c
@@ -40,6 +40,7 @@
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <errno.h>
+#include <locale.h>
 
 #ifdef ENABLE_NLS
 #include <libintl.h>
@@ -271,6 +272,7 @@
 #if HAVE_GETOPT_LONG || HAVE_GETOPT
     int		c;
 
+    setlocale (LC_ALL, "");
 #if HAVE_GETOPT_LONG
     while ((c = getopt_long (argc, argv, "Vvrh", longopts, NULL)) != -1)
 #else
--- a/fc-conflist/fc-conflist.c
+++ b/fc-conflist/fc-conflist.c
@@ -38,6 +38,7 @@
 #include <unistd.h>
 #include <stdlib.h>
 #include <string.h>
+#include <locale.h>
 
 #ifdef ENABLE_NLS
 #include <libintl.h>
@@ -102,6 +103,7 @@
 #if HAVE_GETOPT_LONG || HAVE_GETOPT
     int		c;
 
+    setlocale (LC_ALL, "");
 #if HAVE_GETOPT_LONG
     while ((c = getopt_long (argc, argv, "Vh", longopts, NULL)) != -1)
 #else
--- a/fc-list/fc-list.c
+++ b/fc-list/fc-list.c
@@ -27,6 +27,7 @@
 #include <unistd.h>
 #include <stdlib.h>
 #include <string.h>
+#include <locale.h>
 #ifdef HAVE_CONFIG_H
 #include <config.h>
 #else
@@ -117,6 +118,7 @@
 #if HAVE_GETOPT_LONG || HAVE_GETOPT
     int			c;
 
+    setlocale (LC_ALL, "");
 #if HAVE_GETOPT_LONG
     while ((c = getopt_long (argc, argv, "vbf:qVh", longopts, NULL)) != -1)
 #else
--- a/fc-match/fc-match.c
+++ b/fc-match/fc-match.c
@@ -36,6 +36,7 @@
 #include <unistd.h>
 #include <stdlib.h>
 #include <string.h>
+#include <locale.h>
 
 #ifdef ENABLE_NLS
 #include <libintl.h>
@@ -121,6 +122,7 @@
 #if HAVE_GETOPT_LONG || HAVE_GETOPT
     int			c;
 
+    setlocale (LC_ALL, "");
 #if HAVE_GETOPT_LONG
     while ((c = getopt_long (argc, argv, "asvbf:Vh", longopts, NULL)) != -1)
 #else
--- a/fc-pattern/fc-pattern.c
+++ b/fc-pattern/fc-pattern.c
@@ -36,6 +36,7 @@
 #include <unistd.h>
 #include <stdlib.h>
 #include <string.h>
+#include <locale.h>
 
 #ifdef ENABLE_NLS
 #include <libintl.h>
@@ -111,6 +112,7 @@
 #if HAVE_GETOPT_LONG || HAVE_GETOPT
     int		c;
 
+    setlocale (LC_ALL, "");
 #if HAVE_GETOPT_LONG
     while ((c = getopt_long (argc, argv, "cdf:Vh", longopts, NULL)) != -1)
 #else
--- a/fc-query/fc-query.c
+++ b/fc-query/fc-query.c
@@ -39,6 +39,7 @@
 #include <unistd.h>
 #include <stdlib.h>
 #include <string.h>
+#include <locale.h>
 
 #ifdef ENABLE_NLS
 #include <libintl.h>
@@ -115,6 +116,7 @@
 #if HAVE_GETOPT_LONG || HAVE_GETOPT
     int		c;
 
+    setlocale (LC_ALL, "");
 #if HAVE_GETOPT_LONG
     while ((c = getopt_long (argc, argv, "i:bf:Vh", longopts, NULL)) != -1)
 #else
--- a/fc-scan/fc-scan.c
+++ b/fc-scan/fc-scan.c
@@ -39,6 +39,7 @@
 #include <unistd.h>
 #include <stdlib.h>
 #include <string.h>
+#include <locale.h>
 
 #ifdef ENABLE_NLS
 #include <libintl.h>
@@ -110,6 +111,7 @@
 #if HAVE_GETOPT_LONG || HAVE_GETOPT
     int		c;
 
+    setlocale (LC_ALL, "");
 #if HAVE_GETOPT_LONG
     while ((c = getopt_long (argc, argv, "bf:Vh", longopts, NULL)) != -1)
 #else
--- a/src/fccfg.c
+++ b/src/fccfg.c
@@ -26,7 +26,6 @@
 
 #include "fcint.h"
 #include <dirent.h>
-#include <locale.h>
 #include <sys/types.h>
 
 #if defined (_WIN32) && !defined (R_OK)
@@ -39,18 +38,6 @@
 FcConfigEnsure (void)
 {
     FcConfig	*config;
-    FcBool	is_locale_initialized;
-    static void *static_is_locale_initialized;
-retry_locale:
-    is_locale_initialized = (intptr_t) fc_atomic_ptr_get (&static_is_locale_initialized);
-    if (!is_locale_initialized)
-    {
-	is_locale_initialized = FcTrue;
-	if (!fc_atomic_ptr_cmpexch (&static_is_locale_initialized, NULL,
-				    (void *)(intptr_t) is_locale_initialized))
-	    goto retry_locale;
-	setlocale (LC_ALL, "");
-    }
 retry_config:
     config = fc_atomic_ptr_get (&_fcConfig);
     if (!config)
