Кросс-компиляция GMP и Openswan для ARM в Ubuntu 12.04 32 Bit
Я должен скомпилировать opensawn
для платы OMAP4 и GMP является обязательным условием. Сначала я попробовал это на 64-битной ОС, но это дало мне эту ошибку:
configure: error: Упс, mp_limb_t составляет 64 бита, но код ассемблера в этой конфигурации ожидает 32 бита.
Затем я перешел на Ubuntu 12.04 32 Bit и GMP V6.0.0 был скомпилирован после нескольких испытаний. Даже после появления переменных ARCH, TOOLCHAIN и CROSS_COMPILER в .bashrc
Мне пришлось export
следующие:
export ARCH=arm<BR>
export PATH=/home/harsh32bit/Work/Projects/BSQ_VVDN/BISQUARE/gcc-SourceryCodeBenchLite-arm/bin/:$PATH<BR>
export CROSS_COMPILE=arm-none-linux-gnueabi-<BR>
Затем были соблюдены следующие команды:
./configure --build=i686-pc-linux-gnu --host=arm-none-linux-gnueabi --prefix=/home/harsh32bit/Work/Projects/BSQ_VVDN/BISQUARE/gcc-SourceryCodeBenchLite-arm/
make clean
make
make install
Затем мягкая связь библиотеки GMP с набором инструментов
~/Work/Projects/BSQ_VVDN/BISQUARE/gcc-SourceryCodeBenchLite-arm/lib/gcc/arm-none-linux-gnueabi/4.7.3
# ln -s ~/Work/Projects/BSQ_VVDN/packages/gmp-6.0.0/.libs/libgmp.so libgmp.so
Я успешно собрал GMP, хотя make check
сообщил, что все испытания не пройдены
9 of 9 tests failed.
Теперь, когда я пытаюсь сделать кросс-компиляцию Openswan-2.6.41 после внесения изменений в CROSSCOMPILE.sh и сделать это make programs
Я получаю эту ошибку:
В файл включены из /home/harsh32bit/Work/Projects/BSQ_VVDN/packages/openswan-2.6.41/include/certs.h:24:0,from /home/harsh32bit/Work/Projects/BSQ_VVDN/packages/openswan-2.6.41/lib/libopenswan/id.c:42: /home/harsh32bit/Work/Projects/BSQ_VVDN/packages/openswan-2.6.41/include/secrets.h:20:41: фатальная ошибка: gmp.h: нет такая компиляция файлов или каталогов прекращена
Я зашел на сайт TI E2E, за последние 4 недели выискивал указатели в интернете, но не смог разобраться. Если у кого-нибудь есть подсказки о кросс-компиляции openswan
а также GMP
для ARM, пожалуйста, посоветуйте мне.
1 ответ
Так по сути
- Статическое связывание файлов gmp должно быть сделано без
sudo
- с каких пор ты звонишьmake programs
из пакета openswan безsudo
вы не root, а обычный пользователь, и если вы используетеmake programs
сsudo
он пропускает некоторые экспортируемые переменные особенноARCH
, Он принимает архитектуру по умолчанию вместо целевой архитектуры, для которой вы хотите скомпилировать; как в моем случае это было дляarm
, - Если вы должны использовать
sudo
, сделать его читабельно-записываемым для всех. То есть после связывания файлов библиотеки в цепочке инструментов вы можете вызватьchmod 777
на этот файл - потому что тогда он будет доступен для rw для всех групп пользователей.