1 |
Could this be related to the fact that for my normal user I see: |
2 |
$ echo $GCONV_PATH |
3 |
/usr/lib32/gconv |
4 |
|
5 |
(root doesn't have that env var set at all) |
6 |
|
7 |
On 4/26/06, Michael [Plouj] Ploujnikov <ploujj@×××××.com> wrote: |
8 |
> After doing: |
9 |
> # mv lib32{,-bak} |
10 |
> # ln -s lib64 lib32 |
11 |
> |
12 |
> I saw the following results: |
13 |
> |
14 |
> $ iconv --from-code ISO-8859-1 --to-code UCS2 </dev/null |
15 |
> $ iconv --from-code ISO-8859-1 --to-code UCS-2 </dev/null |
16 |
> $ iconv --from-code ISO-8859-1 --to-code UCS-2-INTERNAL </dev/null |
17 |
> iconv: conversion to `UCS-2-INTERNAL' is not supported |
18 |
> $ iconv --from-code ISO-8859-1 --to-code "ISO-10646/UCS2" </dev/null |
19 |
> $ iconv --from-code ISO-8859-1 --to-code "UNICODE" </dev/null |
20 |
> |
21 |
> Assuming that no output means the conversions suceed shows that it |
22 |
> does have something to do with iconv originally loading a wrong |
23 |
> module. So it seems that your hypothesis is right. I thought of this |
24 |
> before, when I was looking at the gconv/ contents but I didn't |
25 |
> actually try it because the gconv-modules file syntax confused me. I |
26 |
> thought iconv was not finding an appropriate module for conversion in |
27 |
> this file. |
28 |
> |
29 |
> Also, FF ran fine (configured with iconv) once I forced the 64bit |
30 |
> directory to be used |
31 |
> |
32 |
> On 4/26/06, Hans-Werner Hilse <hilse@×××.de> wrote: |
33 |
> > from that output: |
34 |
> > ---snip |
35 |
> > open("/usr/lib32/gconv/UNICODE.so", O_RDONLY) = 4 |
36 |
> > read(4, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0 \5\0\000"..., 640) = 640 |
37 |
> > close(4) = 0 |
38 |
> > open("/usr/lib32/gconv/ISO8859-1.so", O_RDONLY) = 4 |
39 |
> > read(4, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\240\4\0"..., 640) = 640 |
40 |
> > close(4) = 0 |
41 |
> > ---snip |
42 |
> > |
43 |
> > So it opens a file, reads 640 bytes and closes it. Note the "/lib32". |
44 |
> > Now this is my output, 32bit platform: |
45 |
> > |
46 |
> > ---snip |
47 |
> > open("/usr/lib/gconv/ISO8859-1.so", O_RDONLY) = 3 |
48 |
> > read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\240\4\0"..., 512) = 512 |
49 |
> > fstat64(3, {st_mode=S_IFREG|0755, st_size=9720, ...}) = 0 |
50 |
> > mmap2(NULL, 12316, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7de4000 |
51 |
> > mmap2(0xb7de6000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1) = 0xb7de6000 |
52 |
> > ---snip |
53 |
> > |
54 |
> > So after reading the first 512 bytes, it mmap's a code section and a |
55 |
> > data section into address space. Dynamic loading, I'd say (without |
56 |
> > further debugging). So this seems to fail for you and I think the |
57 |
> > "lib32" indicates that the 64bit glibc errorneously tries to load the |
58 |
> > wrong modules for iconv. |
59 |
> > |
60 |
> > Maybe you can temporarily move the lib32/gconv dir and soft link the |
61 |
> > lib64/gconf in place of it to verify my assumption (it should work |
62 |
> > then, but this is obviously not a solution as it will break 32bit |
63 |
> > environment). You might want to file a bug into gentoo's bugzilla |
64 |
> > (after searching for an existing one, of course). |
65 |
> > |
66 |
> > > By looking at /usr/lib{64,32}/gconv/gconv-modules (wich are identical) |
67 |
> > > it looks like there really isn't any conversion specified from |
68 |
> > > ISO-8859-1 to any other code. |
69 |
> > |
70 |
> > Strange. Mine has: |
71 |
> > ---snip |
72 |
> > module ISO-8859-1// INTERNAL ISO8859-1 1 |
73 |
> > ---snip |
74 |
> > |
75 |
> > (whatever that means) |
76 |
> > |
77 |
> > -hwh |
78 |
> > -- |
79 |
> > gentoo-user@g.o mailing list |
80 |
> > |
81 |
> > |
82 |
> |
83 |
|
84 |
-- |
85 |
gentoo-user@g.o mailing list |