Компиляция и отладка программ в cross-режиме
Введение
Для использования кросс-компиляции под платформу “Эльбрус” потребуется следующий набор ПО:
- e2k cross toolchain – кросс-компилятор со всеми необходимыми ему кросс-библиотеками и кросс-отладчик
- crossroot – дерево библиотек и заголовочных файлов, получаемое с целевой машины, для которой планируется выполнять кросс-сборку и кросс-отладку.
Предполагается, что для разработки используется Debian 7.8.0 Wheezy.
Установка e2k cross toolchain
Cross toolchain включает в себя следующие компоненты:
- Кросс-компилятор для архитектуры e2k
- Библиотеки нижнего уровня
- Отладчик gdb
- Трассировщик системных вызовов
Cross toolchain распространяется в виде бинарных deb пакетов для архитектуры i386.
Установка cross toolchain осуществляется при помощи следующих команд:
i386# wget http://212.59.102.250/opensource-heap/instrumental/toolchains/spo-19/cross/lcc-e2k-cross_1.1_i386.deb
i386# dpkg -i lcc-e2k-cross_1.1_i386.deb
После успешного завершения установки на машине i386 появляется каталог opt/mcst и каталоги bin, bin.toolchain и gdb внутри него.
Установка crossroot
Crossroot можно получить двумя способами:
- Скачать с 212.59.102.250 архив с crossroot
- Подготовить самостоятельно, используя ВК с установленной системой.
Получение образа crossroot, соответствующего последнему рабочему образу ОС
i386# cd /opt/mcst/
i386# wget http://212.59.102.250/opensource-heap/instrumental/toolchains/spo-19/cross/crossroot_e2c+_911.tar.gz
i386# tar xvf crossroot_e2c+_911.tar.gz
Самостоятельное получение crossroot
Чтобы самостоятельно получить crossroot на монокубе необходимо воспользоваться следующими инструкциями:
i386# ssh root@<target_machine>
cd /
mkdir crossroot
cd crossroot
cp -a /lib32 .
cp -a /lib64 .
ln -s lib64 lib
mkdir usr
cp -a /usr/lib32 usr/
cp -a /usr/lib64 usr/
ln -s usr/lib64 usr/lib
cp -a /usr/libexec usr/
cp -a /usr/include usr/
cp -a /usr/local usr/
sync
cd ..
tar -cvf crossroot_selfmade.tar ./crossroot
gzip -9 ./crossroot_selfmade.tar