[LUG.ro] Ejecutables x86 no portables a i386

Ezequiel Garcia elezegarcia en gmail.com
Mie Ago 29 14:29:05 ART 2012


Horacio,

2012/8/29 Horacio Castellini <horacio9573 en yahoo.com.ar>:

>>>
>>
>> Hay algo que no entiendo... si es x86, porqué apunta a /lib64?
>
> Fijate que puse...
>
> AMD 64 bits (x86)
>

Claro que me fijé!

Me parece que están haciendo flor de embrollo. Mirá, te paso a explicar.
(Igual, el tema no es sencillo de entender, así que no se apuren.)

Una cosa es la "maquina" (o sea el hardware, el uP).
En este caso tenés un Intel P4 y un AMD Athlon64, ¿no?

Bueno. Otra cosa es la "arquitectura" del kernel y del sistema en
general. En tu caso tenés:

1. El AMD Athlon 64 con un kernel x86-64 (podés hacer el uname -a y lo
vas a ver).
Además, te das cuenta al toque cuándo haces ldd o cuando hacés gcc -v.
(Si te copás mandános todo eso, así les muestro.)
Esta x86-64:
* No es x86. Es una arquitectura DIFERENTE de x86.

2. Un P4 con un kernel x86. Nuevamente podés hacer uname -a, ldd, gcc -v.

Ahora bien, con toda esta info (y sí no me equivoqué). El verdadero
subject del hilo debería ser:
"Ejecutables x86-64 no portables a x86"

Lo cuál es bastante lógico, no? Puesto que x86-64 es diferente de x86
y es una extensión
(por decirlo de manera simple) no podés esperar de ningún modo que el
kernel x86 sepa que
hacer con el binario, compilado y linkeado para x86-64.

---

Por otro lado, respecto de lo que plantea Manuel, de la compatibilidad
entre i386 y i686.
Acá no estoy seguro, pero depende del *compilador* y de las opciones utilizadas.
La ejecución de un binario es un tema complejo y entra a jugar el
kernel en combinación
con el ld-linux (el dynamic linker).
A mí me parece que i386 y i686 pertenecen a la mismo arquitectura (x86) y
seguramente existe un conjunto común de instrucciones.

Por lo tanto, si los binarios se compilan correctamente se tiene que
poder ejecutar
en ambas máquinas. Es más, yo diría que Horacio nos mandé el binario del P4
y lo vemos.

Espero que les sirva, por lo menos para dejar de pelear :P

Saludos,
Ezequiel.


Más información sobre la lista de distribución Lugro