This is the mail archive of the libc-hacker@sources.redhat.com mailing list for the glibc project.

Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

[PATCH] Fix nl_langinfo binary compatibility


Hi!

nl_langinfo is not binary compatible with glibc 2.1.
The reason is that CODESET used to be 14 and now is 11. I've checked the
rest of the documented nl_langinfo arguments and they should be ok.
With this patch (and the two I've already sent) JDK finally runs.

2000-07-17  Jakub Jelinek  <jakub@redhat.com>

	* locale/nl_langinfo (__nl_langinfo): Renamed from nl_langinfo.
	(__nl_old_langinfo): New.
	* locale/Versions: Add nl_langinfo@@GLIBC_2.2.

--- libc/locale/nl_langinfo.c.jj	Wed Mar 22 16:36:05 2000
+++ libc/locale/nl_langinfo.c	Mon Jul 17 14:59:36 2000
@@ -20,14 +20,15 @@
 #include <langinfo.h>
 #include <errno.h>
 #include <stddef.h>
+#include <shlib-compat.h>
 #include "localeinfo.h"
 
+char *__nl_langinfo (nl_item);
 
 /* Return a string with the data for locale-dependent parameter ITEM.  */
 
 char *
-nl_langinfo (item)
-     nl_item item;
+__nl_langinfo (nl_item item)
 {
   int category = _NL_ITEM_CATEGORY (item);
   unsigned int index = _NL_ITEM_INDEX (item);
@@ -46,3 +47,19 @@ nl_langinfo (item)
   /* Return the string for the specified item.  */
   return (char *) data->values[index].string;
 }
+
+versioned_symbol (libc, __nl_langinfo, nl_langinfo, GLIBC_2_2);
+#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2)
+
+char *__nl_old_langinfo (nl_item);
+
+char *
+__nl_old_langinfo (nl_item item)
+{
+  if (item == _NL_ITEM (LC_CTYPE, 14))
+    item = CODESET;
+  return __nl_langinfo (item);
+}
+
+compat_symbol (libc, __nl_old_langinfo, nl_langinfo, GLIBC_2_0);
+#endif
--- libc/locale/Versions.jj	Thu Jun  1 06:28:29 2000
+++ libc/locale/Versions	Mon Jul 17 14:57:33 2000
@@ -30,5 +30,8 @@ libc {
   GLIBC_2.2 {
     # The data structure changed.
     localeconv;
+
+    # CODESET has changed.
+    nl_langinfo;
   }
 }

	Jakub

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]