diff options
author | dakkar <dakkar@luxion> | 2008-03-02 15:56:16 +0000 |
---|---|---|
committer | dakkar <dakkar@luxion> | 2008-03-02 15:56:16 +0000 |
commit | 05c5b431a8b60d38c39515babd3fb273d2a6babc (patch) | |
tree | 7794962384f27b4abcae26e8ba93a5caff2e6559 /qtopia-dev/document.it.rest.txt | |
download | thenautilus-05c5b431a8b60d38c39515babd3fb273d2a6babc.tar.gz thenautilus-05c5b431a8b60d38c39515babd3fb273d2a6babc.tar.bz2 thenautilus-05c5b431a8b60d38c39515babd3fb273d2a6babc.zip |
re-import del sito, in ReST, da ritoccare parecchio
git-svn-id: svn://luxion/repos/thenautilus@331 fcb26f47-9200-0410-b104-b98ab5b095f3
Diffstat (limited to 'qtopia-dev/document.it.rest.txt')
-rw-r--r-- | qtopia-dev/document.it.rest.txt | 130 |
1 files changed, 130 insertions, 0 deletions
diff --git a/qtopia-dev/document.it.rest.txt b/qtopia-dev/document.it.rest.txt new file mode 100644 index 0000000..9844ba8 --- /dev/null +++ b/qtopia-dev/document.it.rest.txt @@ -0,0 +1,130 @@ +Installare QTopia oggi +====================== + +Se avete `GCC 2.95.x`_ installato +================================= + +Potete seguire le istruzioni di `questo how-to`_, e tutto andrà bene. + +Se avete una versione successiva +================================ + +Ad esempio se fate davvero sviluppo in C++, non potete usare una versione del GCC +precedente la 3.1, visto che mancano componenti findamentali (stingstream, tanto per +dire) e ci sono bug piuttosto grossi. + +Qui arriva il problema: i pacchetti indicati dallo `how-to di cui sopra`_ sono +compilati col GCC 2.95.2, e siccome la ABI è cambiata radicalmente, i programmi +compilati con GCC 3.x non passeranno la fase i linking con le librerie qt-embedded. + +A questo punto bisogna installare il GCC 2.95.2, vero? **Sbagliato!** Il GCC 2.95.2 ha +un bug nella libreria libio (base per gli stream C++) per cui non compila con la glibc +2.2 (e visto che avete il GCC aggiornato, avete di sicuro anche la glibc aggiornata) +(è cambiato il tipo per gli offset nei file: da int a una struct con due int, per +gestire le posizioni a 64 bit). Bisogna usare il GCC 2.95.3, che ha risolto questo +problema (a quanto ho capito dalla diff, non supporta i file oltre i 4GB, ma visto che +vogliamo compilare programmi che poi andranno sullo Zaurus, non è una gran +limitazione) (la ABI del .3 è la stessa del .2). + +A questo punto vogliamo però che il 2.95 non sovrascriva il nostro 3: vogliamo +installarlo in una directory a parte. Questo si ottiene specificando l'opzione +--prefix allo script configure. + +Istruzioni passo-passo +---------------------- + +I pacchetti già fatti +````````````````````` + +Scaricate: + +* `gcc 2.95.2 cross compiler x86-arm`_ + +* `binutils 2.11.2 cross x86-arm`_ + +* `glibc 2.2.2 arm`_ + +* `header Linux 2.4.6 arm`_ + +* `QTopia 1.5.0 free edition, sia x86 che arm`_ + +Installateli tutti (con rpm, a nome di root). Si creeranno le directory /opt/Embedix +con la toolchain per arm, e /opt/Qtopia con le librerie e i programmi per compilare +sia x86 che arm. + +Il GCC +`````` + +Scaricate gcc-core-2.95.3.tar.gz e gcc-g++-2.95.3.tar.gz da un `mirror GNU`_. + +Per compilare (suppongo che abbiate messo i pacchetti del GCC nella /tmp): + +* cd /tmp + +* tar zxvf gcc-core-2.95.3.tar.gz;tar zxvf gcc-g++-2.95.3.tar.gz + +* mkdir gcc-obj;cd gcc-obj + +* ../gcc-2.95.3/configure --prefix=/opt/Embedix/native --enable-shared + +* make bootstrap + +* make install (questo dovreste farlo a nome di root, oppure aver dati permessi in + scrittura al vostro utente normale su /opt/Embedix) + +È un po' strano mettere il compilatore nativo sotto /opt/Embedix, ma mi sembra comodo +per chiarire in quale contesto lo uso. + +Gli script +`````````` + +Fanno comodo un paio di script per impostare variabili d'ambiente nei due casi: +compilazione nativa (durante lo sviluppo) e cross-compile (alla fine, per trasferire +il programma sullo Zaurus) + +Prendete quelli forniti dalla Sharp: `dev-x86-qpe`_ e `dev-arm-qpe`_. + +In dev-x86-qpe cambiate le righe che impostano PATH e LD_LIBRARY_PATH con queste: + +:: + + PATH=$QTDIR/bin:$QPEDIR/bin:/opt/Embedix/tools/bin:/opt/Embedix/native/bin:${ORG_PATH} + LD_LIBRARY_PATH=$QTDIR/lib:/opt/Embedix/native/lib:${ORG_LD_LIBRARY_PATH} +.. + + + +In questo modo verrà usato il GCC 2.95.3 che abbiamo appena compilato. + +.. _`dev-x86-qpe`: + http://docs.zaurus.com/downloads/dev-x86-qpe.sh + +.. _`mirror gnu`: + http://www.gnu.org/server/list-mirrors.html + +.. _`qtopia 1.5.0 free edition, sia x86 che arm`: + http://docs.zaurus.com/downloads/qtopia-free-1.5.0-1.i386.rpm + +.. _`binutils 2.11.2 cross x86-arm`: + http://docs.zaurus.com/downloads/binutils-cross-arm-2.11.2-0.i386.rpm + +.. _`how-to di cui sopra`: + http://docs.zaurus.com/linux_compiler_setup_howto.shtml + +.. _`questo how-to`: + http://docs.zaurus.com/linux_compiler_setup_howto.shtml + +.. _`glibc 2.2.2 arm`: + http://docs.zaurus.com/downloads/glibc-arm-2.2.2-0.i386.rpm + +.. _`header linux 2.4.6 arm`: + http://docs.zaurus.com/downloads/linux-headers-arm-sa1100-2.4.6-3.i386.rpm + +.. _`dev-arm-qpe`: + http://docs.zaurus.com/downloads/dev-arm-qpe.sh + +.. _`gcc 2.95.x`: + http://gcc.gnu.org/gcc-2.95/ + +.. _`gcc 2.95.2 cross compiler x86-arm`: + http://docs.zaurus.com/downloads/gcc-cross-sa1100-2.95.2-0.i386.rpm |