|
Сборка GNU toolchains, может кто подсказать? |
|
|
|
May 13 2008, 09:05
|
Частый гость
 
Группа: Свой
Сообщений: 107
Регистрация: 27-06-05
Из: Россия
Пользователь №: 6 324

|
Озадачился я самостоятельной сборкой gnu toolchains. В Линуксе я мягко говоря новичок, поэтому пару недель ушло на поиск и усвоение информации про что и как делать. Использую дистрибутив Debian Etch 4.0r1, в нем присутствуют свои заморочки, но в принципе разобрался. Много чего почерпнул на этом форуме, но осталось пару непоняток. Прошу знающих людей разъяснить, в свою очередь обязуюсь написать подробный манул по сборке, потому как проити через такое оно конечно и полезно в плане навыков, но времени и нервов на это уходит масса. Итак, вопросы. 1. По сборке binutils вопросов нет, разобрался. 2. Далее рекомендуется собрать gcc c опцией --without-headers, потом с помощью собранного gcc собрать newlib, и уже потом пересобрать gcc заново. Вот здесь я и застопорился. После двухдневных плясок с бубном gcc-4.3 я собрал: /usr/local/arm/src/build/gcc-4.3/src/configure --prefix=/usr/local/arm --target=arm-elf --disable-nls --disable-werror --enable-threads --disable-shared --disable-win32-registry --enable-languages=c --enable-interwork --enable-multlib --with-float=soft --disable-libssp --with-newlib --without-headers make make install а вот как с его помощью собрать newlib? Пробовал конфигурировать так: CC=arm-elf-gcc ./configure --target=arm-elf --prefix=/usr/local/arm --enable-interwork --enable-multlib так ругаецца, говорит, что указанный компиллятор не может создавать исполняемые файлы  . Оно вроде бы как и понятно,собран с опцией --target=arm-elf, то есть будет генерировать файлы elf, но тогда как надо? И нужен ли вообще этот этап? Таким вот макаром ./configure --target=arm-elf --prefix=/usr/local/arm --enable-interwork --enable-multlib нормально конфигурится и затем собирается. Но это я так понимаю с помощью системного gcc. Может, так и надо?
|
|
|
|
|
 |
Ответов
|
May 16 2008, 06:03
|
Частый гость
 
Группа: Свой
Сообщений: 107
Регистрация: 27-06-05
Из: Россия
Пользователь №: 6 324

|
Огромное всем спасибо, счас буду пробовать, ежели что - не обессудьте, опять приставать буду  Железа у меня до фига всякого, правда все для ARM7 и Cortex M3, закончим со сборкой начнем тестить. О, сразу вопрос - а insight для чего нужно и нужно ли вообще? Если нужно, с какими опциями собирать? Смотрел,в сборках у уважаемого klen эти библиотеки отсутствуют... Цитата(amw @ May 15 2008, 23:47)  Скрипт и патчи прилагаю. А расшифруйте мне, плиз, значение следующих строк из патча gcc-cortex.diff -#MULTILIB_OPTIONS += march=armv7 -#MULTILIB_DIRNAMES += thumb2 -#MULTILIB_EXCEPTIONS += march=armv7* marm/*march=armv7* +MULTILIB_OPTIONS += march=armv7 +MULTILIB_DIRNAMES += thumb2 В принципе строчка с "+" вначале понятна, а что значит -#MULTILIB_OPTIONS += march=armv7? Удалить строку? Сорри за чаниковские вопросы, но в Линуксе я пока чайник и есть. Но учусь  emdebian я смотрел, но там какой-то совсем уж debian-way способ сборки, по которому, как мне кажется, и проконсультироваться-то будет не у кого. Позже будем разбираться.
|
|
|
|
|
May 16 2008, 07:53
|
Знающий
   
Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847

|
Цитата(Krom @ May 16 2008, 09:03)  А расшифруйте мне, плиз, значение следующих строк из патча gcc-cortex.diff -#MULTILIB_OPTIONS += march=armv7 -#MULTILIB_DIRNAMES += thumb2 -#MULTILIB_EXCEPTIONS += march=armv7* marm/*march=armv7* +MULTILIB_OPTIONS += march=armv7 +MULTILIB_DIRNAMES += thumb2 Патчи генеряться программой diff и накладываются программой patch. В результате работы diff получаем файл, в котором указано как из старого сделать новое. Строки помеченные минусом впереди означают что их нужно удалить из старого, а помеченные плюсом - добавить в старое. И после такого удаления и добавления получается новое. Для изменяемых строк (удаляемых и добавляемых) diff добавляет в начале минус или плюс, для неизменных - пробел. При накладывании патча программой patch она по неизменяемым строкам и доп инфе начинающейся с @ находит в старом нужное место, те строки, которые помечены минусом удаляет, а те что плюсом - добавляет. И пробелы и минусы и плюсы не вносятся в результирующий файл. 2klen: Ну так вот тестирование и началось  Так все таки не ясно как у Вас newlib собралось и действительно ли его сборка поддерживает cortex. Мож тута какя собака порылась  . У меня в этом setjmp.S тоже ошибка и она естественна, потому как процессор не поддерживает такой операции, а в newlib сие не проверяется. Может патч какой был специфический?
--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть. © Lewis Carroll. Alice's adventures in wonderland.
|
|
|
|
|
May 16 2008, 09:10
|

бессмертным стать можно тремя способами
    
Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912

|
Цитата(amw @ May 16 2008, 11:53)  Может патч какой был специфический? да небыло никакого пача. 1. несобрался setjmp.s 2. грусно... 3. смотру код - ага! видно где ошибка. 4. читаю доку на Cortex M3 и вижу что SP нада запихывать иным от armv4 способом 5. правим файл - добавляем "иной способ" - ветка под дефайном __thumb2 5. собираем ... о! собралось!!! 6. компилирием код и шъем - смотрим (у меня ВРОДЕБЫ РАБОТАЛО на STM Primer - рекламный тамагочи от STM c STM32) 7. Дополнительно симулируем код в симуляторе 2amw: ну и как, работает?
|
|
|
|
|
May 16 2008, 11:20
|
Знающий
   
Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847

|
Цитата(klen @ May 16 2008, 12:10)  2amw: ну и как, работает? Нет. Этого оказалось недостаточно. Код arm-elf-gcc -B/home/amw/devel/ARM/arm-elf-cortex/tools/build/newlib/arm-elf/newlib/ -isystem /home/amw/devel/ARM/arm-elf-cortex/tools/build/newlib/arm-elf/newlib/targ-include -isystem /home/amw/devel/ARM/arm-elf-cortex/tools/src/newlib-1.16.0/newlib/libc/include -B/home/amw/devel/ARM/arm-elf-cortex/tools/build/newlib/arm-elf/libgloss/arm -L/home/amw/devel/ARM/arm-elf-cortex/tools/build/newlib/arm-elf/libgloss/libnosys -L/home/amw/devel/ARM/arm-elf-cortex/tools/src/newlib-1.16.0/libgloss/arm -O2 -g -g -O2 -I. -I/home/amw/devel/ARM/arm-elf-cortex/tools/src/newlib-1.16.0/libgloss/arm/.. -O2 -g -g -O2 -mthumb -march=armv7 -c /home/amw/devel/ARM/arm-elf-cortex/tools/src/newlib-1.16.0/libgloss/arm/crt0.S /home/amw/devel/ARM/arm-elf-cortex/tools/src/newlib-1.16.0/libgloss/arm/crt0.S: Assembler messages: /home/amw/devel/ARM/arm-elf-cortex/tools/src/newlib-1.16.0/libgloss/arm/crt0.S:85: Error: thumb conditional instrunction not in IT block /home/amw/devel/ARM/arm-elf-cortex/tools/src/newlib-1.16.0/libgloss/arm/crt0.S:91: Error: selected processor does not support requested special purpose register %x -- `mrs r2,CPSR' /home/amw/devel/ARM/arm-elf-cortex/tools/src/newlib-1.16.0/libgloss/arm/crt0.S:94: Error: Thumb encoding does not support an immediate here -- `msr CPSR_c,#0xD1' /home/amw/devel/ARM/arm-elf-cortex/tools/src/newlib-1.16.0/libgloss/arm/crt0.S:99: Error: Thumb encoding does not support an immediate here -- `msr CPSR_c,#0xD7' /home/amw/devel/ARM/arm-elf-cortex/tools/src/newlib-1.16.0/libgloss/arm/crt0.S:103: Error: Thumb encoding does not support an immediate here -- `msr CPSR_c,#0xDB' /home/amw/devel/ARM/arm-elf-cortex/tools/src/newlib-1.16.0/libgloss/arm/crt0.S:107: Error: Thumb encoding does not support an immediate here -- `msr CPSR_c,#0xD2' /home/amw/devel/ARM/arm-elf-cortex/tools/src/newlib-1.16.0/libgloss/arm/crt0.S:111: Error: Thumb encoding does not support an immediate here -- `msr CPSR_c,#0xD3' /home/amw/devel/ARM/arm-elf-cortex/tools/src/newlib-1.16.0/libgloss/arm/crt0.S:118: Error: Thumb load/store multiple does not support {reglist}^ -- `ldmdb r3,{sp}^' /home/amw/devel/ARM/arm-elf-cortex/tools/src/newlib-1.16.0/libgloss/arm/crt0.S:121: Error: selected processor does not support requested special purpose register -- `msr CPSR_c,r2' make[5]: *** [crt0.o] Помилка 1 На счет работает - нескажу, нет кортекса. А вот перекомпилить это могем  . Правда пока безуспешно. Цитата(Krom @ May 16 2008, 14:08)  да библиотека есть, как ее только подсунуть... и куда... Собираться она не хочет, требует altgcc. Скачанный бинарный пакет с этой библиотекой тоже не устанавливается из-за зависимостей. Наверное, должен быть другой путь, люди же (/me посматривает в сторону более опытных товарищей  ) как-то собирают Это в дебиан? тогда apt-get install ncurses
--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть. © Lewis Carroll. Alice's adventures in wonderland.
|
|
|
|
|
May 16 2008, 11:59
|
Частый гость
 
Группа: Свой
Сообщений: 107
Регистрация: 27-06-05
Из: Россия
Пользователь №: 6 324

|
Цитата(amw @ May 16 2008, 15:20)  тогда apt-get install ncurses установка libncurses5-dev помогла. То есть на текущий момент собрано практически все. Сегодня буду прикручивать к Эклипсу, ну а потом пробовать на железке - у меня STM3210B-EVAL (это в первую очередь пойдет), STR710-EVAL и LPC2468 OEM Boad. Бум тестить  . Мануал, как и обещал, за мной. Думаю, лишним на форуме не будет. Да, еще вопрос. insight - нужны будут при работе в Eclipse-GDB-...? Если да, то как их собирать?
|
|
|
|
|
May 16 2008, 12:10
|
Знающий
   
Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847

|
Цитата(Krom @ May 16 2008, 14:59)  установка libncurses5-dev помогла. То есть на текущий момент собрано практически все. Сегодня буду прикручивать к Эклипсу, ну а потом пробовать на железке - у меня STM3210B-EVAL (это в первую очередь пойдет), STR710-EVAL и LPC2468 OEM Boad. Бум тестить  . Мануал, как и обещал, за мной. Думаю, лишним на форуме не будет. Да, еще вопрос. insight - нужны будут при работе в Eclipse-GDB-...? Если да, то как их собирать? insight это как бы "графический gdb". Для работы с eclipse он не нужен. Для eclipse нужен какраз gdb. После сборки insight появится его собственный arm-elf-gdb. Хотя по чесному он не его собственный, а пропатченный и включенный в insight "просто" gdb.
--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть. © Lewis Carroll. Alice's adventures in wonderland.
|
|
|
|
Сообщений в этой теме
Krom Сборка GNU toolchains, может кто подсказать? May 13 2008, 09:05 Andy Great Дык Вы загляньте в Makefile после ./configure. Там... May 13 2008, 09:13 amw Цитата(Krom @ May 13 2008, 12:05) Озадачи... May 13 2008, 09:18 Krom Цитата(amw @ May 13 2008, 13:18) Вот тут ... May 13 2008, 09:50  amw Цитата(Krom @ May 13 2008, 12:50) Спасибо... May 13 2008, 10:00 Krom Ok. Буду дальше разбираться. А какие проблемы в gc... May 13 2008, 10:10 amw Цитата(Krom @ May 13 2008, 13:10) Ok. Буд... May 13 2008, 10:21 Krom Судя по тому, что поддержка ARMv7 появилась только... May 14 2008, 06:03 Andy Great Возьмите CodeSourcery уже скомпилированный. May 14 2008, 06:38 Krom Такие вот дела: binutils, gcc и newlib в принципе ... May 14 2008, 14:00 amw Цитата(Krom @ May 14 2008, 17:00) Если же... May 15 2008, 07:30  Krom Цитата(amw @ May 15 2008, 11:30) А newlib... May 15 2008, 12:34   klen Цитата(Krom @ May 15 2008, 16:34) По идее... May 15 2008, 14:47 zltigo Цитата(Krom @ May 13 2008, 11:05) Озадачи... May 14 2008, 14:23 Andy Great klen делает дистрибутивы, так что, похоже, дружит. May 15 2008, 08:39 Krom О, на вас вся надежда!
Повторюсь немного:
1... May 15 2008, 15:12 amw Цитата(Krom @ May 15 2008, 18:12) Все исх... May 15 2008, 18:29 amw Цитата(Krom @ May 15 2008, 18:12) MULTILI... May 15 2008, 19:47  klen извиняюсь - забыл укаать, ессесено функции лежат ... May 16 2008, 04:52 klen Все прально не собираецца! не должен
нада под... May 15 2008, 19:28 Andy Great Цитата(Krom @ May 16 2008, 09:03) -#MULTI... May 16 2008, 07:27      Krom Цитата(amw @ May 16 2008, 16:10) Для рабо... May 16 2008, 12:34 Krom Итак, промежуточные результаты.
С помощью шаманско... May 16 2008, 09:51 Cyber_RAT * sys-libs/libtermcap-compat
Homepage: ... May 16 2008, 10:31 Krom да библиотека есть, как ее только подсунуть... и к... May 16 2008, 11:08 amw Нашел вот это
http://www.nabble.com/arm-elf-thumb-... May 16 2008, 13:12 Krom А примера makefile для STM32 под рукой ни у кого н... May 16 2008, 13:42 amw Цитата(Krom @ May 16 2008, 16:42) А приме... May 16 2008, 13:53 Krom Всем привет! Снова вопросы
Никак не могу прик... May 19 2008, 11:53 Leen Ну вообще-то subclipse.tigris.org - это плагин sub... May 19 2008, 12:05 Krom Цитата(Leen @ May 19 2008, 16:05) Ну вооб... May 19 2008, 12:28 Leen Я делал так:
- собрал свой тулчейн (binutils/gcc/g... May 19 2008, 21:37 Krom Цитата(Leen @ May 20 2008, 01:37) - распа... May 20 2008, 07:44 Krom Цитата(Leen @ May 20 2008, 01:37) - а дал... May 20 2008, 10:33  Leen Цитата(Krom @ May 20 2008, 21:33) 1. Уста... May 20 2008, 11:12   Krom Цитата(Leen @ May 20 2008, 15:12) о том, ... May 20 2008, 12:03    Leen Цитата(Krom @ May 20 2008, 22:46) А где э... May 20 2008, 12:09 Krom На самом деле все просто: там же, где определяются... May 21 2008, 11:57 Krom C тулчейном и средой в принципе разобрался. Застря... May 26 2008, 11:07 Andy Great Код.fpu softfpa Может так? May 26 2008, 13:26 Krom Цитата(Andy Great @ May 26 2008, 17:26) К... May 26 2008, 13:30 COMA Добрый день,
никто не пробовал собирать GNU tool... Oct 22 2008, 07:07 klen Цитата(COMA @ Oct 22 2008, 11:07) Добрый ... Oct 23 2008, 17:57 COMA Можно поподробнее? Почему не понравилось?
Просто ... Oct 24 2008, 03:59 klen Цитата(COMA @ Oct 24 2008, 06:59) Можно п... Nov 17 2008, 19:08 COMA Спасибо за ответ. Nov 18 2008, 05:00
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|