summaryrefslogtreecommitdiff
path: root/qtopia-dev/document.it.rest.txt
diff options
context:
space:
mode:
Diffstat (limited to 'qtopia-dev/document.it.rest.txt')
-rw-r--r--qtopia-dev/document.it.rest.txt130
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