Instal·lació del Toolchain de GNU per al target OpenRISC
Dualitat de toolchains
Hi ha dues toolchains alternatives que poden usar-se sobre aquesta arquitectura:
La toolchain que linka amb la llibreria newlib, que està pensada per a generar programes standalone que s'executen sobre OpenRISC sense sistema operatiu. Les ordres d'aquesta toolchain es prefixen amb or32-elf.
- La toolchain que genera executables per a ser executats sobre el Linux de OpenRISC i
amb la llibreria uClibc. En aquest cas les ordres de la toolchain es prefixen amb or32-linux.
Ambdos jocs d'eines poden conviure.
Instal·lació
La referència és http://opencores.org/openrisc,gnu_toolchain
- Cal instal·lar alguns paquets de desenvolupament imprescindibles:
En el directori openrisc que hem creat anteriorment per instal·lar el simulador (vegeu ../InstalacioOr1ksim), baixeu la darrera versió dels fonts del toolchain directament de subversion fent:
La baixada necessita força ample de banda i triga uns minuts...1 $ svn co http://opencores.org/ocsvn/openrisc/openrisc/trunk/gnu-src
Baixeu-vos ara els fonts de la llibreria uClibc. Ara cal usar git. A tal efecte preneu openrisc/gnu-src com a directori de treball i descarregueu:
- A continuació feu el mateix per als fonts de Linux. En aquest cas cal que feu:
$ git clone git://git.openrisc.net/jonas/linux
Aquesta baixada és dura i pot ocupar una bona estona. Preneu paciència. Ara compilem només el toolchain per newlib fent:
Fem el mateix per a la toolchain alternativa:1 $ sudo ./bld-all.sh --force --prefix /opt/openrisc --or1ksim-dir /opt/or1ksim --no-uclibc --no-or32-linux
1 $ sudo ./bld-all.sh --force --prefix /opt/openrisc --or1ksim-dir /opt/or1ksim --uclibc-dir uClibc --linux-dir linux --no-newlib --no-or32-elf
De nou, cal prendre paciència. La comanda instalarà el resultat a /opt/openrisc si tot va bé.
Modifiquem la variable d'entorn PATH per afegir el directori amb les noves ordres fent:
1 $ export PATH=/opt/openrisc/bin:$PATH
Com sempre, si es vol que el canvi a PATH sigui permanent cal modificar .bashrc.