about summary refs log tree commit diff
path: root/locale
diff options
context:
space:
mode:
Diffstat (limited to 'locale')
-rw-r--r--locale/Versions4
-rw-r--r--locale/localeconv.c9
2 files changed, 12 insertions, 1 deletions
diff --git a/locale/Versions b/locale/Versions
index 6e3b166905..fe88a1b389 100644
--- a/locale/Versions
+++ b/locale/Versions
@@ -27,4 +27,8 @@ libc {
     # functions from the experimental locale implementation
     __*_l; __newlocale; __duplocale; __freelocale;
   }
+  GLIBC_2.2 {
+    # The data structure changed.
+    localeconv;
+  }
 }
diff --git a/locale/localeconv.c b/locale/localeconv.c
index 79a88ac83b..0f545370f7 100644
--- a/locale/localeconv.c
+++ b/locale/localeconv.c
@@ -18,10 +18,11 @@
 
 #include <locale.h>
 #include "localeinfo.h"
+#include <shlib-compat.h>
 
 /* Return monetary and numeric information about the current locale.  */
 struct lconv *
-localeconv (void)
+__localeconv (void)
 {
   static struct lconv result;
 
@@ -56,3 +57,9 @@ localeconv (void)
 
   return &result;
 }
+
+versioned_symbol (libc, __localeconv, localeconv, GLIBC_2_2);
+#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2)
+strong_alias (__localeconv, __localeconv20)
+compat_symbol (libc, __localeconv20, localeconv, GLIBC_2_0);
+#endif