Ver la versión completa : Intentando compilar el GDC
A las wenas.
El caso es que estaba aburrido y me puse a intentar compilar el GDC (http://home.earthlink.net/~dvdfrdmn/d/) como "cross-compiler" para la GP2X. Para el que no lo sepa, GDC es un front-end del lenguaje D (http://digitalmars.com/d/index.html) para GCC. D es una evolución de C y C++ que corrige muchos fallos de estos y añade muchas cosas nuevas.
Después de seguir estas instrucciones (http://wiki.gp2x.org/wiki/Get_insane_by_building_your_own_GCC_environment) e instalar las binutils, las fuentes del kernel, la glibc y el GCC mínimo, voy a compilar el GDC y me da fallos en la biblioteca Phobos.
En fin, si alguien se anima, no me vendría mal que me echase una manita, y si no, seguiré intentándolo yo solo ;)
Todos a la vez no, ¿eh? En vista de que a nadie le interesa, seguiré intentándolo yo solo...
Topochan
04/02/2006, 19:05
Personalmente me interesa, pero te aviso que va ser dificil. Te recomiendo que mires un poco las opcienes que se le pasan al gcc para hacerlo cross-compiler. Si dices que te da fallo en phobos, mira a ver si phobos puede ser cross-compilda, y si necesita parches. ayudaria mas pero estoy hasta arriba de faena. un saludo :)
Un saludo
Hay gente que dice haberlo conseguido para PocketPC (que también usan ARM), así que supongo que sí se puede. Por desgracia no dicen como lo han hecho :(
El problema de Phobos es que necesita unos ficheros de configuración especiales. Cuando creas un compilador nativo, los genera automáticamente y no hay problemas, pero cuando quieres hacer un cross-compiler, hay que hacerlos a mano y suministrarselos tú. El problema es que, después de hacerlo (que no es nada fácil, me llevó bastante tiempo), ¡la ******* me decía que no existían!
En fin, he visto por ahí que quizás se pueda hacer modificando los makefiles a mano, si no hay más remedio...
Pezezin, ¿qué ventajas supondría tener el GDC de cross-compiler? ¿Poder hacer programas en D que GDC (vía gcc) compilara para la consola? No lo digo con segundas, sino que simplemente, no tengo ni idea. Había oído hablar de D pero no he visto nunca nada de código (ya le echaré un vistazo al enlace), y menos aún había oído hablar de GDC.
miq01, tú mismo te respondes ;) La idea es esa, poder compilar programas en D para la GP2X. El problema es que el compilador oficial, el DMD, sólo soporta máquinas x86 de 32 bits, y como es de código cerrado...
Según las instrucciones para obtener compilador cruzado con GCC usando GDC y con soporte del lenguaje D hay que descomprimir el paquete de GDC en el lugar que te indica dentro del directorio de las fuentes de GCC, crear la primera fase del compilador gcc (si lo compilas con soporte de lenguaje D en en el parametro enable-languages de configure dará el error de la librería phobos pero no es importante), es decir, ya tienes un compilador cruzado para ARM (en este caso) con soporte para el lenguaje C.
Entonces hay que compilar con este los archivos gen_config1.c, gen_math.c, gen_unix.c de GDC, y los archivos ejecutables resultantes hay que ejecutarlos desde la GP2X (en el target dice) y estos al parecer generan unos archivos de configuración (presumiblemente se crearan en la misma ruta donde se encuentren estos archivos en la SD) que hay que copiarlos en un directorio cualquiera y volver a recompilar el GCC (supongo que se refiere a la segunda fase) indicandole en el configure la ruta hacia esos archivos de configuración que hemos guardado en un directorio con el parametro --enable-phobos-config-dir=/ruta_a_los_archivos_configuracion y eso debería ser todo para poder hacer el make sin errores y con soporte de lenguaje D en GCC.
¿Has hecho todo eso y te sigue dando errores?
P.D: Todo sea dicho, las intrucciones del autor de GDC no son muy precisas ni extensas...
Pues sí Uncanny, he hecho todo eso y nada. Tienes razón, las instrucciones podrían ser un poco mejores...
He conseguido construir el compilador mínimo de C (eso es fácil) y los ficheros de configuración de Phobos (bastante chungo). El problema es que al ir a construir el entorno definitivo, pasándole la opción --enable-phobos-config-dir y comprobando varias veces que el directorio existe, no lee los ficheros. En serio, me revienta cuando los programas dicen que en fichero que está delante de tus narices no existe...
Pero bueno, ahora que ya tengo un poco más de idea volveré a intentarlo desde 0. ¿Alguien conoce algún programa que permite emular una terminal serie por el puerto USB, a ser posible para Linux?
Pero bueno, ahora que ya tengo un poco más de idea volveré a intentarlo desde 0. ¿Alguien conoce algún programa que permite emular una terminal serie por el puerto USB, a ser posible para Linux?¿Te refieres a esto (http://www.gp32spain.com/foros/downloads.php?do=file&id=338)? En Windows lo normal es usarlo con HyperTerminal, en Linux lo más usado es Minicom, las instrucciones para usar este driver con Minicom están descritas en la doc de los kernel de la rama 2.6.x o aquí (http://developer.osdl.org/dev/robustmutexes/src/fusyn.hg/Documentation/usb/gadget_serial.txt) al final del todo.
¡Gracias! En Windows me funciona con Hyperterminal, pero en Linux no hay forma, a ver si encuentro algo mejor que Minicom...
He intentado leer algo sobre HyperTerminal y he trasteado alg con el pero no consigo hacer nada con el. Vosotros para que lo usais??
Tambien he estado leiendo este hilo aunque no me entero muy bien [wei4]
Perdonad la ignorancia, ya ire aprendiendo.
Seguid asi ;)
Bob, los terminales sirven para poder ejecutar comandos en la GP2X y verlos en tu monitor. Esto está muy bien ya que te permite trabajar con la consola como si fuese un ordenador, con su teclado y todo. Para depurar programas es muy útil.
Por otra parte, lo del GDC, lo dejo. He conseguido construir el entorno open2x entero: kernel, binutils, glibc, GCC y SDL. Funciona perfectamente y sin fallos. Pero no hay manera de compilar Phobos, tengo la impresión de que los propios scripts del GDC están mal. Así que esperaré a que saquen la siguiente versión...
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions Inc. All rights reserved.