Hatred's Log Place

DON'T PANIC!

Feb 24, 2012 - 1 minute read - Comments - linux

Набор для кросс-компиляции для Linux на ARM

Потребовалось сделать окружение для отстройки приложений для системы Linux, запущенной на платформе с процессором ARM.

Внутри есть eglibc, поэтому решено было попробовать сделать окружение с этой библиотекой Си, а не повсеместно используемой newlib.

Процесс чтения манов, проб, нервов занял около двух дней. Помогли разобраться следующие документы: * http://www.eglibc.org/cgi-bin/viewvc.cgi/trunk/libc/EGLIBC.cross-building?view=markup - официальное руководство по кросс-компиляции eglibc * http://www.pgroup.com/userforum/viewtopic.php?t=1636 - помогло разобраться в одной ошибке * http://gcc.gnu.org/install/configure.html - изучение секции Cross-Compiler-Specific Options в частности на предмет опций --with-sysroot и --with-build-sysroot

Особо поразило мозг решение проблемы “кто первый: курица или яйцо?”

В результате получился набор правил для сборки окружение под ArchLinux (пакеты идут в порядке сборки): * arm-linux-gnueabi-binutils * arm-linux-gnueabi-linux-api-headers * arm-linux-gnueabi-gcc-stage1 - первый кросс-компилятор для отстройки базовых компонент стандартной библиотеки * arm-linux-gnueabi-eglibc-headers - базовый набор стандартной библиотеки - только заголовочные файлы и несколько стабов. Ещё не пригодна для линковки. * arm-linux-gnueabi-gcc-stage2 - компилятор уже пригодный для отстройки стандартной библиотеки * arm-linux-gnueabi-eglibc - готовая стандартная библиотека Си * arm-linux-gnueabi-gcc - компиляторы Си и Си++

Ну и несколько библиотек сразу в придачу: * arm-linux-gnueabi-zlib-static * arm-linux-gnueabi-bzlib-static * arm-linux-gnueabi-boost