Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[RISOLTO] Cross toolchain: perchè ricompilare?
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian)
View previous topic :: View next topic  
Author Message
Moris_Co
n00b
n00b


Joined: 19 Jan 2006
Posts: 11

PostPosted: Sat Jun 06, 2009 11:57 am    Post subject: [RISOLTO] Cross toolchain: perchè ricompilare? Reply with quote

Ciao a tutti.

Seguendo la guida "Manuale Gentoo Embedded" sto cercando di compilare del software per architettura ARM utilizzando un calcolatore x86.
Sono agli inizi e ci sono alcne cose che mi sfuggono.

Nella guida si parla di ricompilare nell'ordine: binutils, gcc, glibc utilizzando tra l'altro lo stesso gcc (a voi non vi gasa questa cosa? :D ).

Quando compilo le binutils devo specificare l'architettura sia del target che dell'host, compilando in questo modo un eseguibile per il target usando il gcc che ho installato sull'host.
Subito dopo devo compilare una versione di dootstrap di gcc per abilitare il supporto ad ARM ma, dato che ho già compilato le binutils usando il gcc standard, significa che gcc ha già le capacità per compilare per ARM, perchè ricompilare allora?

Mi sfugge qualche particolare o faccio un po di confusione, per favore, qualcuno può spiegarmi meglio?


Last edited by Moris_Co on Wed Jun 10, 2009 8:09 pm; edited 1 time in total
Back to top
View user's profile Send private message
Ic3M4n
Advocate
Advocate


Joined: 02 Nov 2004
Posts: 3489
Location: Bergamo.

PostPosted: Sat Jun 06, 2009 3:18 pm    Post subject: Reply with quote

anche io stavo giochicchiando un po' con il crossdev, soprattutto per architettura arm, la cosa migliore che tu possa fare è installarti crossdev e far fare tutto a lui.
questa guida è specifica per l'openmoko però magari puoi prendere spunto anche da questa.
http://gentoo.mindzoo.de/index.cgi/wiki/cross-compiling
Back to top
View user's profile Send private message
oRDeX
Veteran
Veteran


Joined: 19 Oct 2003
Posts: 1308
Location: world

PostPosted: Sat Jun 06, 2009 4:31 pm    Post subject: Reply with quote

Io penso che le binutils non siano state compilate in codice macchina ARM, ma che siano state create delle binutils capaci di giostrare file binari per ARM.
Back to top
View user's profile Send private message
Moris_Co
n00b
n00b


Joined: 19 Jan 2006
Posts: 11

PostPosted: Sun Jun 07, 2009 9:20 am    Post subject: Reply with quote

@Ic3M4n: grazie per il tuo interessante link. Non appena capisco come si costruisce una cross toolchain utilizzerò il metodo automatico per farlo :D.
Dato che ci hai già giocherellato vorrei farti una domanda ed uscire un tantino fuori topic: volevo sapere come fa crossdev a scegliere le versioni di gcc e libc sicuramente compilabili tra di loro, grazie.


@oRDeX: penso che tu abbia colto nel segno, sto iniziando a capire: quindi, quando io compilo le binutils e il gcc, non sto compilando per ARM, sto semplicemente attivando il supporto a questa architettura che nel gcc e binutils installate nel sistema non c'è, giusto?

Fantastico questo forum, grazie
Back to top
View user's profile Send private message
oRDeX
Veteran
Veteran


Joined: 19 Oct 2003
Posts: 1308
Location: world

PostPosted: Sun Jun 07, 2009 4:21 pm    Post subject: Reply with quote

Moris_Co wrote:
@oRDeX: penso che tu abbia colto nel segno, sto iniziando a capire: quindi, quando io compilo le binutils e il gcc, non sto compilando per ARM, sto semplicemente attivando il supporto a questa architettura che nel gcc e binutils installate nel sistema non c'è, giusto?

Fantastico questo forum, grazie


Più che "attivare il supporto", stai compilando un nuovo set di tool con questa capacità
Back to top
View user's profile Send private message
Ic3M4n
Advocate
Advocate


Joined: 02 Nov 2004
Posts: 3489
Location: Bergamo.

PostPosted: Sun Jun 07, 2009 5:24 pm    Post subject: Reply with quote

di base crossdev prende gcc binutils e compagnia bella marcate in testing. non chiedermi il perchè. credo che il motivo sia che per molte architetture tutto è in testing e quasi nulla stabile.
in ogni caso... dall'output di crossdev:
Code:
# crossdev
Usage: crossdev [options] --target TARGET

Options:
    --b, --binutils ver   Specify version of binutils to use
    --g, --gcc ver        Specify version of gcc to use
    --k, --kernel ver     Specify version of kernel headers to use
    --l, --libc ver       Specify version of libc to use
    -S, --stable          Use latest stable versions as default
    -C, --clean target    Uninstall specified target
    -P, --portage opts    Options to pass to emerge (see emerge(1))
    --with[out]-headers   Build C library headers before C compiler?
Stage Options:
    -s0, --stage0         Build just binutils
    -s1, --stage1         Also build a C compiler (no libc/C++)
    -s2, --stage2         Also build kernel headers
    -s3, --stage3         Also build the C library (no C++)
    -s4, --stage4         Also build a C++ compiler [default]
Extra Fun (must be run after above stages):
    --ex-only             Skip the stage steps above
    --ex-gcc              Build extra gcc targets (gcj/ada/etc...)
    --ex-gdb              Build a cross gdb
    --ex-insight          Build a cross insight

puoi impostare la versione che preferisci, quindi puoi mettere la stessa che hai installato.
Back to top
View user's profile Send private message
Moris_Co
n00b
n00b


Joined: 19 Jan 2006
Posts: 11

PostPosted: Mon Jun 08, 2009 8:50 am    Post subject: Reply with quote

Ora è tutto chiaro e ho compilato la mia prima cross-toolchain.

Grazie mille ad entrambi, siete stati gentilissimi.
Back to top
View user's profile Send private message
Ic3M4n
Advocate
Advocate


Joined: 02 Nov 2004
Posts: 3489
Location: Bergamo.

PostPosted: Mon Jun 08, 2009 11:16 am    Post subject: Reply with quote

figurati... in ogni caso io fino alla compilazione della toolchain non ho avuto problemi. quelli sono nati dopo :P
quasi tutti i pacchetti mi falliscono miseramente e non ho ancora capito come installare determinati pacchetti...
vado a sminchiare tutto tra pacchetti in testing e pacchetti stabili.

se per te è risolto metti pure il tag nel titolo, puoi farlo editando il primo post.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum