--- src/lib/libc/lib/libc/locale/xlocale_private.h.orig	2019-04-18 14:31:34.331373088 +0200
+++ src/lib/libc/lib/libc/locale/xlocale_private.h	2019-04-18 14:31:57.418620988 +0200
@@ -166,24 +166,16 @@
 __attribute__((unused)) static void*
 xlocale_retain(void *val)
 {
-	struct xlocale_refcounted *obj = val;
-	atomic_add_long(&(obj->retain_count), 1);
 	return (val);
 }
+
 /**
  * Decrements the reference count of a reference-counted structure, freeing it
  * if this is the last reference, calling its destructor if it has one.
  */
 __attribute__((unused)) static void
 xlocale_release(void *val)
-{
-	struct xlocale_refcounted *obj = val;
-	long count;
-
-	count = atomic_fetchadd_long(&(obj->retain_count), -1) - 1;
-	if (count < 0 && obj->destructor != NULL)
-		obj->destructor(obj);
-}
+{ }
 
 /**
  * Load functions.  Each takes the name of a locale and a pointer to the data
@@ -223,27 +215,15 @@
  */
 static inline locale_t __get_locale(void)
 {
-
-	if (!__has_thread_locale) {
-		return (&__xlocale_global_locale);
-	}
-	return (__thread_locale ? __thread_locale : &__xlocale_global_locale);
+	return (&__xlocale_global_locale);
 }
 #else
 locale_t __get_locale(void);
 #endif
 
-/**
- * Two magic values are allowed for locale_t objects.  NULL and -1.  This
- * function maps those to the real locales that they represent.
- */
 static inline locale_t get_real_locale(locale_t locale)
 {
-	switch ((intptr_t)locale) {
-		case 0: return (&__xlocale_C_locale);
-		case -1: return (&__xlocale_global_locale);
-		default: return (locale);
-	}
+	return &__xlocale_global_locale;
 }
 
 /**
