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


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

Re: A patch for gconv


On Thu, Nov 23, 2000 at 10:41:39PM -0800, Ulrich Drepper wrote:
> "H . J . Lu" <hjl@valinux.com> writes:
> 
> > When I ran "make check" for glibc 2.2 from CVS under glibc
> > 2.1.3/ia64, iconv will read /usr/lib/gconv/gconv-modules and then
> > load /usr/lib/gconv/ISO646.so, both files are from glibc 2.1.3.
> 
> If this happens something is wrong with the tests and not iconv.
> 

"make check" was ok under glibc 2.1.3/ia64 until the patch enclosed
here was installed. "make check" failed in iconvdata on

ANSI_X3.4-1968            ANSI_X3.4-1968          Y       UTF8

in iconvdata/TESTS and others. I don't know enough about iconv. I
did see iconv read /usr/lib/gconv/gconv-modules, after reading
iconvdata/gconv-modules, and then load /usr/lib/gconv/ISO646.so. My
guess is /usr/lib/gconv/gconv-modules from glibc 2.1.3 is incompatible
with iconvdata/gconv-modules after the patch enclosed here. I don't
see any points reading /usr/lib/gconv/gconv-modules for "make check".
In case of ia64, it makes no senses whatsoever to read or load anything
from /usr/lib/gconv installed from glibc 2.1.3 for glibc 2.2.

BTW, for ia64, you can consider /usr/lib/gconv from glibc 2.1.3 has
nothing to do with glibc 2.2. As far as glibc 2.2 is concerned, things
under /usr/lib/gconv are just garbage.

H.J.
----
Index: iconv/gconv_builtin.h
===================================================================
RCS file: /work/cvs/gnu/glibc/iconv/gconv_builtin.h,v
retrieving revision 1.1.1.3
retrieving revision 1.1.1.4
diff -u -p -r1.1.1.3 -r1.1.1.4
--- iconv/gconv_builtin.h	2000/07/25 23:42:15	1.1.1.3
+++ iconv/gconv_builtin.h	2000/11/21 02:14:51	1.1.1.4
@@ -76,6 +76,28 @@ BUILTIN_TRANSFORMATION ("INTERNAL", "ISO
 			4, 4, 2, 2)
 
 
+BUILTIN_ALIAS ("ANSI_X3.4//", "ANSI_X3.4-1968//")
+BUILTIN_ALIAS ("ISO-IR-6//", "ANSI_X3.4-1968//")
+BUILTIN_ALIAS ("ANSI_X3.4-1986//", "ANSI_X3.4-1968//")
+BUILTIN_ALIAS ("ISO_646.IRV:1991//", "ANSI_X3.4-1968//")
+BUILTIN_ALIAS ("ASCII//", "ANSI_X3.4-1968//")
+BUILTIN_ALIAS ("ISO646-US//", "ANSI_X3.4-1968//")
+BUILTIN_ALIAS ("US-ASCII//", "ANSI_X3.4-1968//")
+BUILTIN_ALIAS ("US//", "ANSI_X3.4-1968//")
+BUILTIN_ALIAS ("IBM367//", "ANSI_X3.4-1968//")
+BUILTIN_ALIAS ("CP367//", "ANSI_X3.4-1968//")
+BUILTIN_ALIAS ("CSASCII//", "ANSI_X3.4-1968//")
+BUILTIN_ALIAS ("OSF00010020//", "ANSI_X3.4-1968//")
+
+BUILTIN_TRANSFORMATION ("ANSI_X3.4-1968//", "INTERNAL", 1, "=ascii->INTERNAL",
+			__gconv_transform_ascii_internal, NULL, NULL,
+			4, 4, 1, 1)
+
+BUILTIN_TRANSFORMATION ("INTERNAL", "ANSI_X3.4-1968//", 1, "=INTERNAL->ascii",
+			__gconv_transform_internal_ascii, NULL, NULL,
+			4, 4, 1, 1)
+
+
 #if BYTE_ORDER == BIG_ENDIAN
 BUILTIN_ALIAS ("UNICODEBIG//", "ISO-10646/UCS2/")
 BUILTIN_ALIAS ("UCS-2BE//", "ISO-10646/UCS2/")
Index: iconvdata/gconv-modules
===================================================================
RCS file: /work/cvs/gnu/glibc/iconvdata/gconv-modules,v
retrieving revision 1.1.1.8
retrieving revision 1.1.1.9
diff -u -p -r1.1.1.8 -r1.1.1.9
--- iconvdata/gconv-modules	2000/11/16 02:09:09	1.1.1.8
+++ iconvdata/gconv-modules	2000/11/21 02:14:52	1.1.1.9
@@ -33,22 +33,6 @@
 #  alias:	alias name which is not really recognized.
 #  name:	the real name of the character set
 
-#	from			to			module		cost
-alias	ANSI_X3.4//		ANSI_X3.4-1968//
-alias	ISO-IR-6//		ANSI_X3.4-1968//
-alias	ANSI_X3.4-1986//	ANSI_X3.4-1968//
-alias	ISO_646.IRV:1991//	ANSI_X3.4-1968//
-alias	ASCII//			ANSI_X3.4-1968//
-alias	ISO646-US//		ANSI_X3.4-1968//
-alias	US-ASCII//		ANSI_X3.4-1968//
-alias	US//			ANSI_X3.4-1968//
-alias	IBM367//		ANSI_X3.4-1968//
-alias	CP367//			ANSI_X3.4-1968//
-alias	CSASCII//		ANSI_X3.4-1968//
-alias	OSF00010020//		ANSI_X3.4-1968//
-module	ANSI_X3.4-1968//	INTERNAL		ISO646		2
-module	INTERNAL		ANSI_X3.4-1968//	ISO646		2
-
 alias	ISO-IR-4//		BS_4730//
 alias	ISO646-GB//		BS_4730//
 alias	GB//			BS_4730//
Index: iconvdata/iso646.c
===================================================================
RCS file: /work/cvs/gnu/glibc/iconvdata/iso646.c,v
retrieving revision 1.1.1.6
retrieving revision 1.1.1.7
diff -u -p -r1.1.1.6 -r1.1.1.7
--- iconvdata/iso646.c	2000/07/17 04:00:45	1.1.1.6
+++ iconvdata/iso646.c	2000/11/21 02:14:52	1.1.1.7
@@ -62,7 +62,6 @@ enum direction
 enum variant
 {
   illegal_var,
-  US,		/* ANSI_X3.4-1968 */
   GB,		/* BS_4730 */
   CA,		/* CSA_Z243.4-1985-1 */
   CA2,		/* CSA_Z243.4-1985-2 */
@@ -90,7 +89,6 @@ enum variant
 
 static const char *names[] =
 {
-  [US] = "ANSI_X3.4-1968//",
   [GB] = "BS_4730//",
   [CA] = "CSA_Z243.4-1985-1//",
   [CA2] = "CSA_Z243.4-1985-2//",

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