[LUG.ro] Ejecutables x86 no portables a i386
Ezequiel Garcia
elezegarcia en gmail.com
Mie Ago 29 10:07:13 ART 2012
2012/8/29 Ezequiel Garcia <elezegarcia en gmail.com>:
> Horacio,
>
> 2012/8/29 Horacio Castellini <horacio9573 en yahoo.com.ar>:
>> Recientemente he compilado un ejecutable en una máquina de SO Ubuntu 12.04
>> en un AMD 64 bits (x86). Ese mismo ejecutable lo copio en una máquina con
>> debian la cual es un viejo pero gaucho P4 (i386). Pero al intentar
>> ejecutarlo me dio el error:
>>
>> ./ruido-det: no se puede ejecutar el fichero binario
>>
>> al no entender que pasaba, investigo los permisos y estaban bien, pero al
>> hacer:
>>
>> ldd ruido-det
>> not a dynamic executable
>>
>> Al ver la versión original en el x86 se ve esto:
>>
>> ldd ruido-det
>> linux-vdso.so.1 => (0x00007fff8e1ff000)
>> libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fe5bca59000)
>> libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fe5bc69c000)
>> /lib64/ld-linux-x86-64.so.2 (0x00007fe5bcd72000)
>>
>
> Hay algo que no entiendo... si es x86, porqué apunta a /lib64?
>
> Me parece que esa maquina no es x86, sino x86-64,
> que según entiendo es otra arquitectura.
>
Acá también tengo un AMD64, pero le instalé la distribucion x86.
Fijáte como son mis binarios y mi compilador.
Vas a ver que apunta a /lib y que el gcc dice i686.
$ ldd /bin/ls
linux-gate.so.1 => (0xb773c000)
librt.so.1 => /lib/librt.so.1 (0xb76fd000)
libacl.so.1 => /lib/libacl.so.1 (0xb76f3000)
libc.so.6 => /lib/libc.so.6 (0xb7594000)
libpthread.so.0 => /lib/libpthread.so.0 (0xb757b000)
/lib/ld-linux.so.2 (0xb771f000)
libattr.so.1 => /lib/libattr.so.1 (0xb7574000)
$ gcc -v
Using built-in specs.
COLLECT_GCC=/usr/i686-pc-linux-gnu/gcc-bin/4.7.1/gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/i686-pc-linux-gnu/4.7.1/lto-wrapper
Target: i686-pc-linux-gnu
Configured with:
/var/tmp/portage/sys-devel/gcc-4.7.1/work/gcc-4.7.1/configure
--prefix=/usr --bindir=/usr/i686-pc-linux-gnu/gcc-bin/4.7.1
--includedir=/usr/lib/gcc/i686-pc-linux-gnu/4.7.1/include
--datadir=/usr/share/gcc-data/i686-pc-linux-gnu/4.7.1
--mandir=/usr/share/gcc-data/i686-pc-linux-gnu/4.7.1/man
--infodir=/usr/share/gcc-data/i686-pc-linux-gnu/4.7.1/info
--with-gxx-include-dir=/usr/lib/gcc/i686-pc-linux-gnu/4.7.1/include/g++-v4
--host=i686-pc-linux-gnu --build=i686-pc-linux-gnu --disable-altivec
--disable-fixed-point --without-ppl --without-cloog --enable-lto
--enable-nls --without-included-gettext --with-system-zlib
--enable-obsolete --disable-werror --enable-secureplt
--disable-multilib --enable-libmudflap --disable-libssp
--enable-libgomp
--with-python-dir=/share/gcc-data/i686-pc-linux-gnu/4.7.1/python
--enable-checking=release --disable-libgcj --with-arch=i686
--enable-languages=c,c++,fortran --enable-shared
--enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu
--enable-targets=all --with-bugurl=http://bugs.gentoo.org/
--with-pkgversion='Gentoo 4.7.1 p1.0, pie-0.5.3'
Thread model: posix
gcc version 4.7.1 (Gentoo 4.7.1 p1.0, pie-0.5.3)
Más información sobre la lista de distribución Lugro