From: n0ano@indstorage.com
To: linux-ia64@vger.kernel.org
Subject: Re: [Linux-ia64] Problem with iconv_open() in 32-bit App.
Date: Wed, 20 Mar 2002 19:34:22 +0000 [thread overview]
Message-ID: <marc-linux-ia64-105590701905308@msgid-missing> (raw)
In-Reply-To: <marc-linux-ia64-105590701905307@msgid-missing>
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
prev parent reply other threads:[~2002-03-20 19:34 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-03-20 19:08 [Linux-ia64] Problem with iconv_open() in 32-bit App Eric Agar
2002-03-20 19:34 ` n0ano [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=marc-linux-ia64-105590701905308@msgid-missing \
--to=n0ano@indstorage.com \
--cc=linux-ia64@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.