[eside-ghost] Soporte AMD64 (ERA: Ubuntu 6.06 TLS ha salido!)
Jon Ander Hernández
hernandez en movimage.com
Vie Jun 2 04:42:45 CEST 2006
Aupi!!
On Thu, 2006-06-01 at 18:57 +0200, Juanval wrote:
> El tema de 32-64 bits, más que nada el problema que hay son las
> librerías. Un binario de 32 bits no puede linkarse dinámicamente con
> librerías de 64 bits. Así que si el binario está linkado
> dinamicamente, tendrás que tener por tu sistema librerías de 32 bits
> para que las pueda cargar (de hecho, es lo que hacen con OpenOffice:
> meten unas cuantas librerías en /lib32, para que pueda tirar contra
> ellas).
¿Pero es necesario usar siempre un chroot? ¿No valdría ejecutar con
LD_LIBRARY_PATH=/lib32/?
Supongo que si esto es así se podrá modificar el linker de manera que
leyendo la cabecera del programa sepa si es de 64bit o de 32.
Otro sistema que se me ocurre es usar binfmt-support, que es un modulo
del kernel que te permite asociar un magic number (como los magic de
file) a una aplicación ayudante, en el caso de ubuntu se instala si
instalas mono y sirve para escribir banshee.exe en la terminal y que
banshee.exe se ejecute bajo el interprete de mono.
$ /usr/lib/banshee/banshee.exe y banshee funciona
$ ps aux | grep banshee.exe
jonan 28873 7.9 6.0 80980 31368 pts/0 Tl 02:32
0:02 /usr/bin/cli /usr/lib/banshee/banshee.exe
Luego esta siendo ejecutado encima de mono.
$ file /usr/lib/banshee/banshee.exe
/usr/lib/banshee/banshee.exe: PE executable for MS Windows (console)
Intel 80386 32-bit
El misterio :
$ cat /proc/sys/fs/binfmt_misc/cli
enabled
interpreter /usr/share/binfmt-support/run-detectors
flags:
offset 0
magic 4d5a
Aunque la pista aquí se pierde en ese interprete que es un script en
perl y por lo tanto que mis ojos no saben interpretar :DDD
Pero bueno esta otra entrada es más fácil :
$ cat /proc/sys/fs/binfmt_misc/python2.4
enabled
interpreter /usr/bin/python2.4
flags:
offset 0
magic 6df20d0a
Por lo tanto lo que se me ocurre es crear un script que prepare el
chroot y buscar un magic number que se aplique a las apps de 64bits y
buscar la manera en la que hay que registrar estas lineas para que el
demonio en /etc/init.d las establezca en el inicio.
Alguien se anima a investigarlo?
Un saludete!!
JonAn.
Más información sobre la lista de distribución eside-ghost