This is the mail archive of the
libc-alpha@sources.redhat.com
mailing list for the glibc project.
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//",