Re: [Linux-ia64] Problem with iconv_open() in 32-bit App.

From: <n0ano_at_indstorage.com>
Date: 2002-03-21 06:34:22
Eric-

It has always been the case that when running IA32 programs on
an IA64 machine the appropriate IA32 shared libraries have to
be installed.  I'm not familiar with the `iconv' package but,
from your description, it looks like it requires some special
`.so's that have IA64 versions installed in standard directories
but your RedHat 7.2 IA64 distro doesn't supply IA32 versions.

The simple solution is to copy the necessary IA32 `.so's to
some directory, add the fully qualified path name for that
directory to the file `/etc/ld.so.conf' and then execute the
program `ldconfig'.  After you do those steps your IA32 program
should work fine.

PS: I'm a little surprised that your program actually executed
and printed out an error message, I would have expected that it
wouldn't even load but that's a side issue unrelated to your
real problem.

On Wed, Mar 20, 2002 at 02:08:04PM -0500, Eric Agar wrote:
> 
> 
> I have some code that has been compiled for x86 that is not working on IA64
> --
> specifically on Redhat 7.2 running on an IA64 machine.
> 
> Are there known problems with 32-bit applications using the iconv()
> routines
> on IA64?
> 
> All the details of what I'm seeing follow.
> 
> 
> THE PROBLEM
> ===========
> 
> A 32-bit binary that calls the iconv_open() routine does not appear to work
> on
> an IA64 system.  When such a program is run on the IA64 system, iconv_open
> ()
> returns an errno value of 22 (EINVAL).  The iconv_open() routine sets that
> errno value when the codeset conversion being requested is not supported by
> the system.
> 
> If the program is re-compiled on the IA64 system, it will run correctly.
> That
> is, the iconv_open() routine will return an indication of success.
> 
> If the codeset conversion modules from /usr/lib/gconv are ftp'ed from an
> i686
> system onto the IA64 system and the GCONV_PATH environment variable is set
> to point to the directory holding the ftp'ed conversion modules, the 32-bit
> binary will run.
> 
> So the root of the problem appears to be that iconv_open() causes some
> shared
> objects in /usr/lib/gconv to be loaded into the address space of the
> program.
> If the program is a 32-bit binary, the loading fails because the shared
> objects in /usr/lib/gconv are 64-bit objects.
> 
> The following section illustrates the program.  The section after that
> contains commentary.
> 
> 
> PROBLEM ILLUSTRATION
> ====================
> 
> [01] /tmp/agar # ls -l
> total 8
> drwxr-xr-x    3 root     root         4096 Mar 19 17:11 ftped32
> drwxr-xr-x    2 root     root         4096 Mar 19 17:03 native64
> 
> [02] /tmp/agar # cd native64
> /tmp/agar/native64 # ls -l
> total 20
> -rwxr-xr-x    1 root     root        14865 Mar 19 17:03 iconvopen
> -rw-r--r--    1 root     root          318 Mar 19 17:02 iconvopen.c
> 
> [03] /tmp/agar/native64 # cat iconvopen.c
> #include <unistd.h>
> #include <stdio.h>
> #include <iconv.h>
> #include <errno.h>
> 
> 
> int main(int argc, char **argv)
> {
>     iconv_t cd;
> 
> 
>     cd = iconv_open("UTF-8", "ISO8859-1");
> 
>     if (cd == (iconv_t)-1) {
>         printf("iconv_open() failed with errno %d.\n", errno);
>     } else {
>         printf("iconv_open() worked.\n");
>     }
> 
>     return 0;
> }
> 
> [04] /tmp/agar/native64 # objdump -T iconvopen
> 
> iconvopen:     file format elf64-ia64-little
> 
> DYNAMIC SYMBOL TABLE:
> 0000000000000000      DF *UND*             00000000000000a0  GLIBC_2.2
> printf
> 0000000000000000      DF *UND*             0000000000000020  GLIBC_2.2
> __errno_location
> 0000000000000000      DF *UND*             00000000000005e0  GLIBC_2.2
> iconv_open
> 0000000000000000      DF *UND*             0000000000000250  GLIBC_2.2
> __libc_start_main
> 
> [05] /tmp/agar/native64 # ./iconvopen
> iconv_open() worked.
> 
> [06] /tmp/agar/native64 # cd ../ftped32
> 
> [07] /tmp/agar/ftped32 # ls -l
> total 28
> drwxr-xr-x    2 root     root         4096 Mar 19 17:14 gconv32
> -rwxr-xr-x    1 root     root        14066 Mar 19 17:06 iconvopen
> -rw-r--r--    1 root     root          318 Mar 19 17:06 iconvopen.c
> -rwxr-xr-x    1 root     root           54 Mar 19 17:11 iconvopen.sh
> 
> [08] /tmp/agar/ftped32 # objdump -T iconvopen
> 
> iconvopen:     file format elf32-little
> 
> DYNAMIC SYMBOL TABLE:
> 000000000804837c  w   DF *UND*             0000000000000081  GLIBC_2.0
> __register_frame_info
> 000000000804838c      DF *UND*             0000000000000216  GLIBC_2.1
> iconv_open
> 000000000804839c      DF *UND*             0000000000000018  GLIBC_2.0
> __errno_location
> 00000000080483ac  w   DF *UND*             00000000000000ac  GLIBC_2.0
> __deregister_frame_info
> 00000000080483bc      DF *UND*             00000000000000ca  GLIBC_2.0
> __libc_start_main
> 00000000080483cc      DF *UND*             0000000000000032  GLIBC_2.0
> printf
> 00000000080483dc  w   DF *UND*             000000000000009d  GLIBC_2.1.3
> __cxa_finalize
> 00000000080485c4 g    DO .rodata           0000000000000004  Base
> _IO_stdin_used
> 0000000000000000  w   D  *UND*             0000000000000000
> __gmon_start__
> 
> [09] /tmp/agar/ftped32 # ./iconvopen
> iconv_open() failed with errno 22.
> 
> [10] /tmp/agar/ftped32 # cat iconvopen.sh
> #!/bin/ksh
> 
> export GCONV_PATH=./gconv32
> ./iconvopen
> 
> [11] /tmp/agar/ftped32 # ls -l ./gconv32
> total 4128
> -rwxr-xr-x    1 root     root        18360 Mar 19 17:14 ANSI_X3.110.so
> -rwxr-xr-x    1 root     root         7960 Mar 19 17:14 ASMO_449.so
> -rwxr-xr-x    1 root     root       124660 Mar 19 17:14 BIG5HKSCS.so
> -rwxr-xr-x    1 root     root        83992 Mar 19 17:14 BIG5.so
> -rwxr-xr-x    1 root     root         8216 Mar 19 17:14 CP1250.so
> -rwxr-xr-x    1 root     root         8120 Mar 19 17:14 CP1251.so
> -rwxr-xr-x    1 root     root         8120 Mar 19 17:14 CP1252.so
> -rwxr-xr-x    1 root     root         8088 Mar 19 17:14 CP1253.so
> -rwxr-xr-x    1 root     root         8152 Mar 19 17:14 CP1254.so
> -rwxr-xr-x    1 root     root         8120 Mar 19 17:14 CP1255.so
> -rwxr-xr-x    1 root     root         8248 Mar 19 17:14 CP1256.so
> -rwxr-xr-x    1 root     root         8216 Mar 19 17:14 CP1257.so
> -rwxr-xr-x    1 root     root         8184 Mar 19 17:14 CP1258.so
> -rwxr-xr-x    1 root     root         8208 Mar 19 17:14 CP737.so
> -rwxr-xr-x    1 root     root         8296 Mar 19 17:14 CP775.so
> -rwxr-xr-x    1 root     root         8120 Mar 19 17:14 CSN_369103.so
> -rwxr-xr-x    1 root     root         8280 Mar 19 17:14 CWI.so
> -rwxr-xr-x    1 root     root         8056 Mar 19 17:14 DEC-MCS.so
> -rwxr-xr-x    1 root     root         7928 Mar 19 17:14 EBCDIC-AT-DE-A.so
> -rwxr-xr-x    1 root     root         7928 Mar 19 17:14 EBCDIC-AT-DE.so
> -rwxr-xr-x    1 root     root         7928 Mar 19 17:14 EBCDIC-CA-FR.so
> -rwxr-xr-x    1 root     root         7928 Mar 19 17:14 EBCDIC-DK-NO-A.so
> -rwxr-xr-x    1 root     root         7928 Mar 19 17:14 EBCDIC-DK-NO.so
> -rwxr-xr-x    1 root     root        16024 Mar 19 17:14 EBCDIC-ES-A.so
> -rwxr-xr-x    1 root     root        16024 Mar 19 17:14 EBCDIC-ES.so
> -rwxr-xr-x    1 root     root         7896 Mar 19 17:14 EBCDIC-ES-S.so
> -rwxr-xr-x    1 root     root         7928 Mar 19 17:14 EBCDIC-FI-SE-A.so
> -rwxr-xr-x    1 root     root         7928 Mar 19 17:14 EBCDIC-FI-SE.so
> -rwxr-xr-x    1 root     root         7928 Mar 19 17:14 EBCDIC-FR.so
> -rwxr-xr-x    1 root     root        15896 Mar 19 17:14 EBCDIC-IS-FRISS.so
> -rwxr-xr-x    1 root     root         7928 Mar 19 17:14 EBCDIC-IT.so
> -rwxr-xr-x    1 root     root         7928 Mar 19 17:14 EBCDIC-PT.so
> -rwxr-xr-x    1 root     root        15928 Mar 19 17:14 EBCDIC-UK.so
> -rwxr-xr-x    1 root     root         7832 Mar 19 17:14 EBCDIC-US.so
> -rwxr-xr-x    1 root     root         7992 Mar 19 17:14 ECMA-CYRILLIC.so
> -rwxr-xr-x    1 root     root        13512 Mar 19 17:14 EUC-CN.so
> -rwxr-xr-x    1 root     root        12404 Mar 19 17:14 EUC-JP.so
> -rwxr-xr-x    1 root     root        10880 Mar 19 17:14 EUC-KR.so
> -rwxr-xr-x    1 root     root        17892 Mar 19 17:14 EUC-TW.so
> -rwxr-xr-x    1 root     root       187960 Mar 19 17:14 GB18030.so
> -rwxr-xr-x    1 root     root        52668 Mar 19 17:14 GBBIG5.so
> -rwxr-xr-x    1 root     root         7944 Mar 19 17:14 GBGBK.so
> -rwxr-xr-x    1 root     root       109572 Mar 19 17:14 GBK.so
> -rwxr-xr-x    1 root     root        38489 Mar 19 17:14 gconv-modules
> -rwxr-xr-x    1 root     root         8024 Mar 19 17:14 GOST_19768-74.so
> -rwxr-xr-x    1 root     root         7992 Mar 19 17:14 GREEK7-OLD.so
> -rwxr-xr-x    1 root     root         7960 Mar 19 17:14 GREEK7.so
> -rwxr-xr-x    1 root     root         7960 Mar 19 17:14 GREEK-CCITT.so
> -rwxr-xr-x    1 root     root        17304 Mar 19 17:14 HP-ROMAN8.so
> -rwxr-xr-x    1 root     root         7928 Mar 19 17:14 IBM037.so
> -rwxr-xr-x    1 root     root         7832 Mar 19 17:14 IBM038.so
> -rwxr-xr-x    1 root     root         8120 Mar 19 17:14 IBM1004.so
> -rwxr-xr-x    1 root     root         8088 Mar 19 17:14 IBM1026.so
> -rwxr-xr-x    1 root     root         8440 Mar 19 17:14 IBM1046.so
> -rwxr-xr-x    1 root     root         7928 Mar 19 17:14 IBM1047.so
> -rwxr-xr-x    1 root     root         8120 Mar 19 17:14 IBM1124.so
> -rwxr-xr-x    1 root     root         8152 Mar 19 17:14 IBM1129.so
> -rwxr-xr-x    1 root     root         8088 Mar 19 17:14 IBM256.so
> -rwxr-xr-x    1 root     root         8056 Mar 19 17:14 IBM273.so
> -rwxr-xr-x    1 root     root         7928 Mar 19 17:14 IBM274.so
> -rwxr-xr-x    1 root     root         7896 Mar 19 17:14 IBM275.so
> -rwxr-xr-x    1 root     root         8056 Mar 19 17:14 IBM277.so
> -rwxr-xr-x    1 root     root         8056 Mar 19 17:14 IBM278.so
> -rwxr-xr-x    1 root     root         8056 Mar 19 17:14 IBM280.so
> -rwxr-xr-x    1 root     root         7960 Mar 19 17:14 IBM281.so
> -rwxr-xr-x    1 root     root         8056 Mar 19 17:14 IBM284.so
> -rwxr-xr-x    1 root     root         8056 Mar 19 17:14 IBM285.so
> -rwxr-xr-x    1 root     root         8056 Mar 19 17:14 IBM290.so
> -rwxr-xr-x    1 root     root         8056 Mar 19 17:14 IBM297.so
> -rwxr-xr-x    1 root     root         8184 Mar 19 17:14 IBM420.so
> -rwxr-xr-x    1 root     root         8632 Mar 19 17:14 IBM423.so
> -rwxr-xr-x    1 root     root         8024 Mar 19 17:14 IBM424.so
> -rwxr-xr-x    1 root     root         8312 Mar 19 17:14 IBM437.so
> -rwxr-xr-x    1 root     root         7928 Mar 19 17:14 IBM500.so
> -rwxr-xr-x    1 root     root         8184 Mar 19 17:14 IBM850.so
> -rwxr-xr-x    1 root     root         8248 Mar 19 17:14 IBM851.so
> -rwxr-xr-x    1 root     root         8280 Mar 19 17:14 IBM852.so
> -rwxr-xr-x    1 root     root         8184 Mar 19 17:14 IBM855.so
> -rwxr-xr-x    1 root     root         8600 Mar 19 17:14 IBM856.so
> -rwxr-xr-x    1 root     root         8184 Mar 19 17:14 IBM857.so
> -rwxr-xr-x    1 root     root         8280 Mar 19 17:14 IBM860.so
> -rwxr-xr-x    1 root     root         8312 Mar 19 17:14 IBM861.so
> -rwxr-xr-x    1 root     root         8312 Mar 19 17:14 IBM862.so
> -rwxr-xr-x    1 root     root         8312 Mar 19 17:14 IBM863.so
> -rwxr-xr-x    1 root     root         8280 Mar 19 17:14 IBM864.so
> -rwxr-xr-x    1 root     root         8312 Mar 19 17:14 IBM865.so
> -rwxr-xr-x    1 root     root         8152 Mar 19 17:14 IBM866.so
> -rwxr-xr-x    1 root     root         8280 Mar 19 17:14 IBM868.so
> -rwxr-xr-x    1 root     root         8184 Mar 19 17:14 IBM869.so
> -rwxr-xr-x    1 root     root         8408 Mar 19 17:14 IBM870.so
> -rwxr-xr-x    1 root     root         7928 Mar 19 17:14 IBM871.so
> -rwxr-xr-x    1 root     root         8056 Mar 19 17:14 IBM874.so
> -rwxr-xr-x    1 root     root         8056 Mar 19 17:14 IBM875.so
> -rwxr-xr-x    1 root     root         8056 Mar 19 17:14 IBM880.so
> -rwxr-xr-x    1 root     root         7800 Mar 19 17:14 IBM891.so
> -rwxr-xr-x    1 root     root         7800 Mar 19 17:14 IBM903.so
> -rwxr-xr-x    1 root     root         7832 Mar 19 17:14 IBM904.so
> -rwxr-xr-x    1 root     root         8408 Mar 19 17:14 IBM905.so
> -rwxr-xr-x    1 root     root         8152 Mar 19 17:14 IBM918.so
> -rwxr-xr-x    1 root     root         8408 Mar 19 17:14 IBM922.so
> -rwxr-xr-x    1 root     root       247604 Mar 19 17:14 IBM930.so
> -rwxr-xr-x    1 root     root        66496 Mar 19 17:14 IBM932.so
> -rwxr-xr-x    1 root     root       255584 Mar 19 17:14 IBM933.so
> -rwxr-xr-x    1 root     root       202432 Mar 19 17:14 IBM935.so
> -rwxr-xr-x    1 root     root       256196 Mar 19 17:14 IBM937.so
> -rwxr-xr-x    1 root     root       247572 Mar 19 17:14 IBM939.so
> -rwxr-xr-x    1 root     root        67496 Mar 19 17:14 IBM943.so
> -rwxr-xr-x    1 root     root         8216 Mar 19 17:14 IEC_P27-1.so
> -rwxr-xr-x    1 root     root         7960 Mar 19 17:14 INIS-8.so
> -rwxr-xr-x    1 root     root         7992 Mar 19 17:14 INIS-CYRILLIC.so
> -rwxr-xr-x    1 root     root         7896 Mar 19 17:14 INIS.so
> -rwxr-xr-x    1 root     root         8120 Mar 19 17:14 ISIRI-3342.so
> -rwxr-xr-x    1 root     root         8088 Mar 19 17:14 ISO_10367-BOX.so
> -rwxr-xr-x    1 root     root        38360 Mar 19 17:14 ISO-2022-CN-EXT.so
> -rwxr-xr-x    1 root     root        28876 Mar 19 17:14 ISO-2022-CN.so
> -rwxr-xr-x    1 root     root        36528 Mar 19 17:14 ISO-2022-JP.so
> -rwxr-xr-x    1 root     root        11844 Mar 19 17:14 ISO-2022-KR.so
> -rwxr-xr-x    1 root     root         7864 Mar 19 17:14 ISO_2033.so
> -rwxr-xr-x    1 root     root         7928 Mar 19 17:14 ISO_5427-EXT.so
> -rwxr-xr-x    1 root     root         7928 Mar 19 17:14 ISO_5427.so
> -rwxr-xr-x    1 root     root         7992 Mar 19 17:14 ISO_5428.so
> -rwxr-xr-x    1 root     root        18048 Mar 19 17:14 ISO646.so
> -rwxr-xr-x    1 root     root        17752 Mar 19 17:14 ISO_6937-2.so
> -rwxr-xr-x    1 root     root        17496 Mar 19 17:14 ISO_6937.so
> -rwxr-xr-x    1 root     root         8120 Mar 19 17:14 ISO8859-10.so
> -rwxr-xr-x    1 root     root         8056 Mar 19 17:14 ISO8859-11.so
> -rwxr-xr-x    1 root     root         8120 Mar 19 17:14 ISO8859-13.so
> -rwxr-xr-x    1 root     root         8088 Mar 19 17:14 ISO8859-14.so
> -rwxr-xr-x    1 root     root         8024 Mar 19 17:14 ISO8859-15.so
> -rwxr-xr-x    1 root     root        15960 Mar 19 17:14 ISO8859-16.so
> -rwxr-xr-x    1 root     root         6416 Mar 19 17:14 ISO8859-1.so
> -rwxr-xr-x    1 root     root         8344 Mar 19 17:14 ISO8859-2.so
> -rwxr-xr-x    1 root     root         8408 Mar 19 17:14 ISO8859-3.so
> -rwxr-xr-x    1 root     root         8344 Mar 19 17:14 ISO8859-4.so
> -rwxr-xr-x    1 root     root         7992 Mar 19 17:14 ISO8859-5.so
> -rwxr-xr-x    1 root     root         9272 Mar 19 17:14 ISO8859-6.so
> -rwxr-xr-x    1 root     root         8056 Mar 19 17:14 ISO8859-7.so
> -rwxr-xr-x    1 root     root         8056 Mar 19 17:14 ISO8859-8.so
> -rwxr-xr-x    1 root     root         7960 Mar 19 17:14 ISO8859-9.so
> -rwxr-xr-x    1 root     root         8184 Mar 19 17:14 ISO-IR-197.so
> -rwxr-xr-x    1 root     root        14680 Mar 19 17:14 JOHAB.so
> -rwxr-xr-x    1 root     root         8216 Mar 19 17:14 KOI8-R.so
> -rwxr-xr-x    1 root     root         8760 Mar 19 17:14 KOI-8.so
> -rwxr-xr-x    1 root     root         8184 Mar 19 17:14 KOI8-U.so
> -rwxr-xr-x    1 root     root         7960 Mar 19 17:14 LATIN-GREEK-1.so
> -rwxr-xr-x    1 root     root         7960 Mar 19 17:14 LATIN-GREEK.so
> -rwxr-xr-x    1 root     root       157488 Mar 19 17:14 libCNS.so
> -rwxr-xr-x    1 root     root        65240 Mar 19 17:14 libGB.so
> -rwxr-xr-x    1 root     root        56220 Mar 19 17:14 libISOIR165.so
> -rwxr-xr-x    1 root     root        98632 Mar 19 17:14 libJIS.so
> -rwxr-xr-x    1 root     root        44860 Mar 19 17:14 libKSC.so
> -rwxr-xr-x    1 root     root         8248 Mar 19 17:14 MACINTOSH.so
> -rwxr-xr-x    1 root     root         8248 Mar 19 17:14 MAC-IS.so
> -rwxr-xr-x    1 root     root         8088 Mar 19 17:14 MAC-UK.so
> -rwxr-xr-x    1 root     root         7992 Mar 19 17:14 NATS-DANO.so
> -rwxr-xr-x    1 root     root         7960 Mar 19 17:14 NATS-SEFI.so
> -rwxr-xr-x    1 root     root         8184 Mar 19 17:14 SAMI-WS2.so
> -rwxr-xr-x    1 root     root        91064 Mar 19 17:14 SJIS.so
> -rwxr-xr-x    1 root     root        16536 Mar 19 17:14 T.61.so
> -rwxr-xr-x    1 root     root         7992 Mar 19 17:14 TIS-620.so
> -rwxr-xr-x    1 root     root        69852 Mar 19 17:14 UHC.so
> -rwxr-xr-x    1 root     root         7492 Mar 19 17:14 UNICODE.so
> -rwxr-xr-x    1 root     root        10032 Mar 19 17:14 UTF-16.so
> -rwxr-xr-x    1 root     root        22400 Mar 19 17:14 UTF-7.so
> -rwxr-xr-x    1 root     root        15544 Mar 19 17:14 VISCII.so
> 
> [12] /tmp/agar/ftped32 # objdump -T ./gconv32/ISO8859-1.so
> 
> ./gconv32/ISO8859-1.so:     file format elf32-little
> 
> DYNAMIC SYMBOL TABLE:
> 00000000000000b4 l    d  .note.ABI-tag           0000000000000000
> 
> 00000000000000d4 l    d  .hash             0000000000000000
> 0000000000000234 l    d  .dynsym           0000000000000000
> 0000000000000544 l    d  .dynstr           0000000000000000
> 0000000000000682 l    d  .gnu.version            0000000000000000
> 
> 00000000000006e4 l    d  .gnu.version_r          0000000000000000
> 
> 0000000000000734 l    d  .rel.data         0000000000000000
> 0000000000000744 l    d  .rel.got          0000000000000000
> 000000000000076c l    d  .rel.plt          0000000000000000
> 00000000000007cc l    d  .init             0000000000000000
> 00000000000007e4 l    d  .plt        0000000000000000
> 00000000000008c0 l    d  .text             0000000000000000
> 000000000000134c l    d  .fini             0000000000000000
> 000000000000136a l    d  .rodata           0000000000000000
> 0000000000002378 l    d  .data             0000000000000000
> 0000000000002384 l    d  .eh_frame         0000000000000000
> 0000000000002388 l    d  .ctors            0000000000000000
> 0000000000002390 l    d  .dtors            0000000000000000
> 0000000000002398 l    d  .got        0000000000000000
> 00000000000023e8 l    d  .dynamic          0000000000000000
> 0000000000002480 l    d  .sbss             0000000000000000
> 0000000000002480 l    d  .bss        0000000000000000
> 0000000000000000 l    d  *ABS*             0000000000000000
> 0000000000000000 l    d  *ABS*             0000000000000000
> 0000000000000000 l    d  *ABS*             0000000000000000
> 0000000000000000 l    d  *ABS*             0000000000000000
> 00000000000023e8 g    DO *ABS*             0000000000000000  Base
> _DYNAMIC
> 0000000000000000  w   DF *UND*             0000000000000081  GLIBC_2.0
> __register_frame_info
> 0000000000000000      DF *UND*             0000000000000038  GLIBC_2.1
> _dl_mcount_wrapper_check
> 0000000000000000      DF *UND*             0000000000000040  GLIBC_2.1.3
> __cxa_atexit
> 00000000000007cc g    DF .init             0000000000000000  Base
> _init
> 0000000000000000  w   DF *UND*             00000000000000ac  GLIBC_2.0
> __deregister_frame_info
> 0000000000000000      DF *UND*             000000000000032f  GLIBC_2.0
> __xstat
> 0000000000000000      DF *UND*             000000000000032f  GLIBC_2.0
> __fxstat
> 0000000000000000      DF *UND*             000000000000032f  GLIBC_2.0
> __lxstat
> 0000000000000000      DF *UND*             0000000000000197  GLIBC_2.2
> __xstat64
> 0000000000002480 g    DO *ABS*             0000000000000000  Base
> __bss_start
> 000000000000134c g    DF .fini             0000000000000000  Base
> _fini
> 0000000000000000  w   DF *UND*             000000000000009d  GLIBC_2.1.3
> __cxa_finalize
> 00000000000009f4 g    DF .text             00000000000000d3  Base
> gconv_init
> 0000000000000000      DF *UND*             0000000000000197  GLIBC_2.2
> __lxstat64
> 0000000000000ad0 g    DF .text             000000000000068b  Base
> gconv
> 0000000000002480 g    DO *ABS*             0000000000000000  Base
> _edata
> 0000000000002398 g    DO *ABS*             0000000000000000  Base
> _GLOBAL_OFFSET_TABLE_
> 00000000000024a0 g    DO *ABS*             0000000000000000  Base
> _end
> 0000000000000000      DF *UND*             000000000000007c  GLIBC_2.0
> __xmknod
> 0000000000000000      DF *UND*             0000000000000197  GLIBC_2.2
> __fxstat64
> 0000000000000000  w   D  *UND*             0000000000000000
> __gmon_start__
> 
> 
> [13] /tmp/agar/ftped32 # ./iconvopen.sh
> iconv_open() worked.
> 
> 
> ILLUSTRATION COMMENTARY
> =======================
> 
> [02]: The directory /tmp/agar/native64 holds the source code and 64-bit
> binary
>       of the test program.
> 
> [03]: The test program simply tries to call iconv_open() specifying some
>       common codesets.
> 
> [04]: objdump shows the binary is a 64-bit binary.
> 
> [05]: The 64-bit binary works.
> 
> [07]: The directory /tmp/agar/ftped32 holds the source code and 32-bit
> binary
>       of the test program that had been ftp'ed from another machine.
> 
> [08]: objdump shows the binary is a 32-bit binary.
> 
> [09]: The 32-bit binary fails.
> 
> [10]: The shell script sets GCONV_PATH and runs the 32-bit binary.
> 
> [11]: The directory the shell script references in its setting of
> GCONV_PATH
>       contains the gconv modules I ftp'ed from an i686 system.
> 
> [12]: objdump shows one of the gconv binaries is a 32-bit binary.
> 
> [13]: When the 32-bit binary test program is run with the 32-bit binary
> gconv
>       shared objects, it works.
> 
> 
> 
> Eric M. Agar
> agar@us.ibm.com
> 
> 
> _______________________________________________
> Linux-IA64 mailing list
> Linux-IA64@linuxia64.org
> http://lists.linuxia64.org/lists/listinfo/linux-ia64

-- 
Don Dugger
"Censeo Toto nos in Kansa esse decisse." - D. Gale
n0ano@indstorage.com
Ph: 303/652-0870x117
Received on Wed Mar 20 11:35:12 2002

This archive was generated by hypermail 2.1.8 : 2005-08-02 09:20:07 EST