Кросс-компиляция 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 для всех групп пользователей.
Другие вопросы по тегам