PDA

Ver la versión completa : script para crear devkitGP2X gcc-3.4.4 glibc-2.2.5 (dynamic linking en GP2x)



bitrider
28/12/2005, 16:30
Como me gusta tenerlo todo compilado según mi sistema (Gentoo powa !) me puse a instalar el entorno de desarrollo GNU para GP2x, compilandolo desde cero. Para ello utilicé el script que hay en el wiki. Dicho script genera un sistema con gcc 4.0.2 y glibc-2.3.5.

La GP2X utiliza la glibc-2.2.5, la cual tiene un ABI no compatible con la 2.3.5, por lo que si quieres compilar con lo anterior lo tienes que hacer estáticamente. Compilando estáticamente desperdicias memoria en la SD y en la consola (también aumenta el tiempo de lazamiento de la aplicación). Vamos, que no es la mejor solución. (sí, de eso me di cuenta después de tener todo el toolchain compilado + SDL + librerías accesorias -JPEG,ZLIB,PNG,MIKMOD,MAD,VORBIS-).

Después de unos días trasteando me dí por vencido en mi intento de compilar la glibc 2.2.5 usando el gcc-4.0.2 (que, si no recuerdo mal, tenía algunas optimizaciones extra para ARM que no tenía la serie 3.x.x). Me decanté por el gcc-3.4.4, unas cuantas horas de trabajo después (buscando parches y trasteando) conseguí que compilase la jodida glibc-2.2.5 con dicho compilador.

Por si alguien lo necesita, aquí tenéis lo necesario (script+parches) para construir el toolchain basado en gcc-3.4.4 y glibc 2.2.5 en Linux.

efegea
28/12/2005, 16:39
Muchas gracias por el script, usando crossdev en gentoo no me deja compilar glibc 2.2.5, voy a intentar con tu script :brindis:

efegea
28/12/2005, 21:44
Me da error :( dice que glibc usa FP por hardware y gcc por software

Es gcc el que falla pero supongo que lo que hay que hacer es que glibc use FP por software. seguire investigando :loco:

bitrider
28/12/2005, 22:46
Cuando llegue del curro echaré un vistazo, pero a mí me compila a la perfección (bueno, al menos anoche a eso de las 2:30 terminó de compilar).

jotarp
29/12/2005, 01:13
:confused:

No lo entiendo. Yo he instalado el devkitGP2X ejecutando el script "devkitGP2X buildscript for any flavour of linux (http://archive.gp2x.de/cgi-bin/cfiles.cgi?0,0,0,0,14,1040) " (que descarga las glibc-2.3.5 y el gcc-4.0.2) y posteriormente he copiado sobre /usr/local/devkitPro/devkitGP2X las SDL (http://brendan.mine.nu/theoddbot-libs-open2x-soft-float-beta2.tar.gz).
Con ello consigo compilar el ejemplo que aparece aquí (http://www.gp32spain.com/foros/showthread.php?t=24690&page=7&pp=15&highlight=oankali) y la aplicación sterm (cambiando un poco el Makefile).

El tamaño del binario de la prueba de SDL es de 9261 bytes y el sterm de 32775 (un poco mayor que el original de 20896 bytes). Funcionan ambos.

Podeis comprobarlo en los archivos adjuntos.

El devkitGP2X lo he compilado sobre una Mandriva-2006, con gcc-cpp-4.0.1-5mdk y glibc-2.3.5-5mdk. La GP2X tiene la glibc-2.2.5 (he comprobado por si acaso me había venido con la 2.3.5 :D )

Lo que no consigo es compilarlos para PC. Me dice:

/usr/bin/ld: skipping incompatible /usr/lib/libSDL.so when searching for -lSDL


(En realidad es una Mandriva-x86_64 y no se si tengo algún problema con los paquetes -dev).

¿Se supone que no debería poder compilarlos o que no me deberían funcionar?
¿Con qué código habeis tenido que compilarlo static para que funcionase?.

bitrider
29/12/2005, 04:43
Efegea, comprobado de nuevo, me compila todo a las mil maravillas... voy aprobar en una Mandriva que tengo en el equipo de pruebas.

Jotrap, las compilaciones que tu has hecho son estáticas (todas las librerías que utiliza el ejecutable se enlazan y se incluyen en él).

bitrider
29/12/2005, 06:19
Comprobado, también rula en una Mandriva-free-2006, con gcc 4.0.1, lo único que tuve que hacer fué incluir el parche para que la glibc pudiese configurarse sin problemas con el gcc 4.0.1. (en patches/glibc-2.2.5).

Efegea, ¿ no tendrás algún otro toolchain construido para arm-linux en el PATH ?

efegea
29/12/2005, 06:25
Comprobado, también rula en una Mandriva-free-2006, con gcc 4.0.1, lo único que tuve que hacer fué incluir el parche para que la glibc pudiese configurarse sin problemas con el gcc 4.0.1. (en patches/glibc-2.2.5).

Efegea, ¿ no tendrás algún otro toolchain construido para arm-linux en el PATH ?

Ese era el problema, habia otro toolchain de por medio y se confundia. Ahora parece que si funciona