2009-04-20 99 views
5

Sto cercando di compilare staticamente Mono per MIPS. Sono in grado di compilare Mono, ma è sempre collegato dinamicamente con le sue dipendenze, anche se specificherò static al compilatore.Qualcuno ha cross compilato Mono per MIPS 64 usando uClibc?

Ho scritto un programma di test e sono in grado di compilarlo staticamente con la mia toolchain ed eseguirlo sulla piattaforma di destinazione. Non sono sicuro se mi manca qualcosa o se non è possibile. Ho creato la mia toolchain utilizzando buildroot.

EDIT

Per rendere le cose un po 'più chiaro, vorrei compilare staticamente mono con il suo dipendenze. Le dipendenze su cui si basa mono sono: GLib, pkg-config e gettext. Credo che GLib sia una dipendenza diretta e GLib dipende da pkg-config e gettext.

Posso postare le mie variabili di ambiente e configurare il comando se necessario.

risposta

1

Beh, è ​​passato un po 'di tempo da quando l'ho provato, ma volevo segnalare ciò che ho imparato. Per uno, ho scoperto che il processore MIPS è a 64-bit e non a 32-bit come inizialmente mi è stato detto per il dispositivo incorporato che stavo prendendo di mira. In secondo luogo, mentre stavo lavorando su questo, Mono non aveva ancora il supporto MIPS a 64 bit. Dopo una piccola ricerca, ho visto che un gruppo allo N-iX stava eseguendo il porting di Mono per supportare l'architettura MIPS a 64 bit basata sulla porta a 32 bit che era già stata eseguita. La porta a 64 bit veniva eseguita per un'azienda denominata SiCortex, Inc. e N-iX stava cercando di applicare le patch al trunk principale di sviluppo Mono. È possibile controllare questo forum thread per ulteriori informazioni. Ho pubblicato affermando che volevo aiutare con i test, ma non ho mai avuto una risposta.

Per quanto riguarda la compilazione statica di Mono, ho appreso che Mono utilizza libtool per collegare le sue librerie insieme. Avrò bisogno di saperne di più su questo strumento, prima di provare a compilare staticamente. Mi sono fermato dopo aver appreso che Mono non supportava ancora MIPS a 64 bit. Dovrò anche vedere se le patch delle porte a 64 bit siano mai state applicate a Mono.

Spero che questo aiuti.

1

Per ottenere un Mono completamente collegato staticamente, è necessario creare tutte le sue dipendenze (e le loro dipendenze in modo ricorsivo) come librerie statiche. Solo così puoi costruire un Mono veramente statico.

+0

Avevo paura che questa potesse essere la risposta. In buildroot, ho scelto i pacchetti da cui dipendeva mono per essere costruiti con la toolchain, quindi dovevano trovarsi nelle cartelle lib e bin della toolchain per il collegamento. Non volevo dover passare attraverso il processo senza che nessun altro pensasse la stessa cosa. Farò un tentativo e riferire i passaggi. –

0

In uno dei podcast di StackOverflow di recente, Miguel ha detto di aver portato Mono su iPhone, usando un sacco di elettricità statica. Anche se non a 64 bit, mostra che cose brutte possono essere fatte a Mono.

+0

Quello che hanno fatto è stato compilare staticamente un'applicazione .NET, che ha molti svantaggi. Vicino a quello che sto cercando, ma non del tutto. Sto cercando di compilare staticamente il runtime Mono. Ciò negherebbe la necessità di compilare staticamente un'applicazione .NET, poiché il runtime sarà disponibile. –

Problemi correlati