#gcc #raspberry-pi #cross-compiling #crosstool-ng
#gcc #raspberry-pi #перекрестная компиляция #crosstool-ng
Вопрос:
В настоящее время я пытаюсь создать crosstool-ng для моей кросс-компиляции raspberry pi, но у меня возникли некоторые проблемы. Я получаю следующую ошибку при попытке собрать crosstool версии 1.19.0:
[CFG ] checking for arm-unknown-linux-gnueabi-gcc... (cached) arm-unknown-linux-gnueabi-gcc
[CFG ] checking version of arm-unknown-linux-gnueabi-gcc ... 4.8.2, ok
[CFG ] checking for gnumake... no
[CFG ] checking for gmake... no
[CFG ] checking for make... make
[CFG ] checking version of make... 4.0, bad
[CFG ] checking for gnumsgfmt... no
[CFG ] checking for gmsgfmt... no
[CFG ] checking for msgfmt... msgfmt
[CFG ] checking version of msgfmt... 0.19.1, ok
[CFG ] checking for makeinfo... makeinfo
[CFG ] checking version of makeinfo... 5.2, ok
[CFG ] checking for sed... sed
[CFG ] checking version of sed... 4.2.2, ok
[CFG ] checking for gawk... gawk
[CFG ] checking version of gawk... 4.1.1, ok
[CFG ] checking for arm-unknown-linux-gnueabi-nm... arm-unknown-linux-gnueabi-nm
[CFG ] checking for autoconf... autoconf
[CFG ] checking whether autoconf works... no
[ERROR] configure: error:
[CFG ] *** These critical programs are missing or too old: make
[CFG ] *** Check the INSTALL file for required versions.
[ERROR]
[ERROR] >>
[ERROR] >> Build failed in step 'Installing C library headers amp; start files'
[ERROR] >> called in step '(top-level)'
[ERROR] >>
[ERROR] >> Error happened in: CT_DoExecLog[scripts/functions@257]
[ERROR] >> called from: do_libc_backend_once[scripts/build/libc/glibc-eglibc.sh-common@347]
[ERROR] >> called from: do_libc_backend[scripts/build/libc/glibc-eglibc.sh-common@143]
[ERROR] >> called from: do_libc_start_files[scripts/build/libc/glibc-eglibc.sh-common@60]
[ERROR] >> called from: main[scripts/crosstool-NG.sh@632]
Согласно этому веб-сайту: http://colocsbar.blogspot.fr/2014/01/crosstool-ng-1190-et-make-40.html
Я должен исправить сценарий настройки eglibc. Но я не могу найти, что это такое, я пытался исправить каждый скрипт glibc, который я мог найти, в папке crosstool, но исправление каждый раз не удавалось.
Есть ли у кого-нибудь решение, чтобы избавиться от этой ошибки? Спасибо
Ответ №1:
Ну, это немного поздно, но я столкнулся с той же проблемой, и информации мало. Похоже, это недальновидное ограничение версии в eglibc. В INSTALL
файле указано значение 3.79 или новее, но фактическая конфигурация проверяется на соответствие 3.79 и 3.89 (я думаю, не уверен в используемом синтаксисе сопоставления с образцом) и в противном случае происходит сбой. По этой ссылке доступен файл .patch, но я также не смог найти информацию о том, какой это был файл.
Итак, я переписал весь каталог, для ac_prog_version=
которого выдал кучу обращений, но настройка для eglibc была там.
Файл, который я изменил, был: .build/src/eglibc-2_13/configure
Это около строки ~ 5000; зависит от ваших версий. Я изменил его на 4.1, поскольку это моя версия make (патч делает 4.0 — хотя на самом деле он должен быть 3.79 или новее, как указано в INSTALL
файле).
Ответ №2:
Позвольте мне указать, что eglibc больше не разрабатывается, и вместо этого рекомендуется использовать glibc. Я столкнулся с проблемами, связанными с eglibc, при попытке создать набор инструментов для Raspberry Pi. eglibc может быть удален из crosstools-ng в ближайшее время. Пожалуйста, ознакомьтесь с этой проблемой: https://github.com/crosstool-ng/crosstool-ng/issues/8 .