Re: Compilacion cruzada.
On Sun, 14 Nov 2004 22:38:53 +0100, Pablo Guerrero <523958@unizar.es> wrote:
> Os cuento que no se si me he explicado bien. Yo tengo un portátil (ibook G4) y
> un servidor antiguo (pentium2) y estoy haciendo un programa que tiene que
> correr en i386 y como tiene partes en ensamblador tiene que compilarse para
> esa arquitectura. En ese código trabajo tanto desde el servidor como desde el
> portátil, y si estoy en el portátil y quiero compilar lo que hago es subirlo
> al servidor y compilarlo allí.
>
> El problema viene cuando estoy en un sitio sin conexión a internet (ocurre mas
> de lo que desearía) ya que entonces no puedo compilar, y escribir código sin
> poder probarlo me resulta muy difícil. Por eso se me ocurrió la idea de la
> "compilación cruzada", pero si conocéis alguna forma mejor de hacerlo estaré
> encantado de probarlo.
>
Veamos, se están hablando de dos cosas independientes: una es la
compilación cruzada y otra es la ejecución emulada.
Desde el ibook si se puede hacer compilación cruzada, lo único
necesario es bajarse los fuentes de gcc y construirlos en el ibook
para que el código de salida sea para i386. Eso es la compilación
cruzada. Si el programa tiene errores de sintaxis, al compilarlos se
quejará el compilador.
El fruto de dicha compilación cruzada es un binario que NO se puede
ejecutar directamente en el ibook. Luego los errores que tenga en la
lógica (que no de sintaxis) no pueden ser detectados. Ese fruto se
puede ejecutar directamente en el servidor sin necesidad de compilarlo
allí.
Aquí se acaba todo la historia de la compilación cruzada.
Ahora bien, si además se quiere probar que funciona desde el ibook,
necesitas un emulador de i386 para ibook.
¿Quedó respondida la pregunta?
Ahora, si yo tuviese esa situación, separaría del resto todo el
código que necesitase del i386 y realizaria un código para ibook que
simulase el comportamiento de ese código. Compilaría nativamente para
ibook, y lo probaría allí y cuando necesitase la versión de i386 haría
la compilación cruzada (o nativa en el i386). Ojo he dicho que la
libreria de ibook ha de simular el comportamiento, no emular. Es decir
si hay una función que accede en i386 al puerto paralelo, la versión
de powerpc podria sacar por la pantalla "enviando al puerto paralelo"
y devolver el valor adecuado al que llamo la función para que el
programa siga funcionando.
atte. javier m mora
Reply to: