Krom 0 15 апреля, 2011 Опубликовано 15 апреля, 2011 · Жалоба Решил-таки перебраться из Линукс в Винду, ибо много чего требуется в ней, а перегружаться туда-сюда надоело уже... Установил MinGW, пытаюсь собрать toolchain для Cortex (в Дебиан процесс освоен давно) - не выходит. Спустя минут 10 после начала сборки самого gcc (binutils собрались нормально) вываливается с ошибкой. Думал, скрипты оптимизировал под винду неверно. Взял скрипты yagarto. Результат аналогичный. Крутил и так, и эдак, пока не заметил странную вещь: в процессе сборки постоянно растет объем используемой памяти (смотрю в Диспетчере задач) и когда доходит до 1.72ГБ (+/- несколько процентов) вываливаемся с ошибкой fork: Resource temporarily unavailable или ля-ля-ля: Permission denied. Память освобождается только после перезагрузки компа. Работаю на ноутбуке, проц Core 2 Duo 2.2 ГГц T7500, ОЗУ 2 ГБ. Ось - Win XP Pro (32 бит). Манипуляции с файлом покачки не помогли - похоже, MinGW его просто не видит (пробовал отключать вообще - тоже самое). Встречался кто-нибудь с аналогичной проблемой? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RISCovyj 0 23 апреля, 2011 Опубликовано 23 апреля, 2011 · Жалоба А этот пойдет? Sourcery G++ Lite Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Krom 0 27 апреля, 2011 Опубликовано 27 апреля, 2011 · Жалоба А этот пойдет? Sourcery G++ Lite Предпочитаю собирать собственноручно :). В принципе, я уже вышел из положения - отказался от автоматизированной сборки с помощью скрипта и собрал поэтапно (геморрой еще тот я вам скажу). Осталось только разобраться как OpenOCD в MinGW собирать :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 123 28 апреля, 2011 Опубликовано 28 апреля, 2011 · Жалоба Осталось только разобраться как OpenOCD в MinGW собирать :)Было бы неплохо, если бы вы записали и выложили здесь весь процесс сборки, начиная от скачивания/установки git (в идеале - и mingw). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MrYuran 17 28 апреля, 2011 Опубликовано 28 апреля, 2011 · Жалоба Было бы неплохо, если бы вы записали и выложили здесь весь процесс сборки, начиная от скачивания/установки git (в идеале - и mingw). ++ Давно мечтаю mspgcc собрать, времени урывками по полтора-два часа хватает только на то, чтобы начать разбираться и опять отложить до следующего раза. Более подробная инструкция с картой потенциальных граблей очень бы помогла. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Krom 0 28 апреля, 2011 Опубликовано 28 апреля, 2011 · Жалоба Было бы неплохо, если бы вы записали и выложили здесь весь процесс сборки, начиная от скачивания/установки git (в идеале - и mingw). Ну надеюсь домучить это дело в ближайшие пару дней. Как только получится - распишу. В Цигвине собралось без особых проблем, но хотелось бы обойтись только MinGW. ЗЫ. Собрал, но попробовать не на чем, все на работе :(. Завтра притащу с работы какую-нить железяку и проверю на счет работоспособности. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Krom 0 4 мая, 2011 Опубликовано 4 мая, 2011 · Жалоба В общем, практически все собрал. Open OCD тоже, прошивка через него заливается, а отладку проверить не могу. Оказывается, финальная сборка gcc до конца не проходит, и проект собрать невозможно. Для проверки заливки через собранный OpenOCD брал бинарник, собранный в никсах. А вот в Винде под MinGW финальная сборка gcc никак не идет :(. Пробовал и 4.5.3, и 4.6.0 - вылетает на этапе сборки libgcc с сообщением: In file included .../arm-elf/include/sys/types.h:126:16: error: expected identifier or '(' before 'char' ПРичем ничего такого особенного там нет: typedef long daddr_t; typedef char * caddr_t; // ругаеццо сюда С этими же скриптами собирал 4.5.1 под никсами без проблем. Кто-нить сталкивался с подобным? ПРобовал ягартовские скрипты(только собирал arm-elf, а не arm-none-eabi) - аналогично. В общей сложности дня три уже потратил :crying: Думаю, проще было бы собрать в nix-ах, но хотелось бы освоить процесс сборки именно в MinGW под вынем gcc для сборки newlib собирается вот этим скриптом: if [ "$OSTYPE" == "msys" ] then export CFLAGS=-D__USE_MINGW_ACCESS fi CFLAGS="-I$PREFIX/include" \ LDFLAGS="-L$PREFIX/lib" \ ../$GCC_SRC/configure \ --target=$TARGET --prefix=$PREFIX \ --disable-nls --disable-shared --disable-threads \ --with-gcc --with-gnu-ld --with-gnu-as --with-dwarf2 \ --enable-languages=c,c++ --enable-interwork --enable-multilib \ --with-newlib --with-headers=../newlib-$NEWLIB_VER/newlib/libc/include \ --with-gmp=$PREFIX \ --with-mffr=$PREFIX \ --with-mpc=$PREFIX \ --disable-libssp --disable-libstdcxx-pch --disable-libmudflap \ --disable-libgomp -v \ || { echo "Error configuring gcc"; exit 1; } mkdir -p libiberty libcpp fixincludes $MAKE all-gcc || { echo "Error building gcc"; exit 1; } $MAKE install-gcc || { echo "Error installing gcc"; exit 1; } сами newlib: ../$NEWLIB_SRC/configure \ --target=$TARGET --prefix=$PREFIX \ --enable-interwork --enable-multilib \ --disable-newlib-supplied-syscalls \ || { echo "Error configuring newlib"; exit 1; } $MAKE || { echo "Error building newlib"; exit 1; } $MAKE install || { echo "Error installing newlib"; exit 1; } финальная сборка gcc: if [ "$OSTYPE" == "msys" ] then export CFLAGS=-D__USE_MINGW_ACCESS fi CFLAGS="-I$PREFIX/include" \ LDFLAGS="-L$PREFIX/lib" \ ../$GCC_SRC/configure \ --target=$TARGET --prefix=$PREFIX \ --disable-nls --disable-shared --disable-threads \ --with-gcc --with-gnu-ld --with-gnu-as --with-dwarf2 \ --enable-languages=c,c++ --enable-interwork --enable-multilib \ --with-newlib --with-headers=$PREFIX/$TARGET/include \ --with-gmp=$PREFIX \ --with-mffr=$PREFIX \ --with-mpc=$PREFIX \ --disable-libssp --disable-libstdcxx-pch --disable-libmudflap \ --disable-libgomp -v \ || { echo "Error configuring gcc"; exit 1; } mkdir -p libiberty libcpp fixincludes $MAKE all || { echo "Error building gcc"; exit 1; } $MAKE install || { echo "Error installing gcc"; exit 1; } никак не въеду, где собака порылась :cranky: ЗЫ. Только тут увидел ошибку в скрипте: --with-mffr=$PREFIX \ а надо ведь --with-mpfr=$PREFIX \ Ну, сделаю еще попытку Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Krom 0 5 мая, 2011 Опубликовано 5 мая, 2011 · Жалоба Что интересно - под никсами и для никсов все собирается прекрасно. ЗЫ. Что еще интереснее - под никсами, но для Виндовса ( с опцией --host=i586-mingw32msvc ) таже хрень - финальная сборка gcc падает на том же месте и с той же ошибкой: -c ../../gcc-4.6.0/gcc/crtstuff.c -DCRT_BEGIN \ -o /home/krom/arm-elf-tool/fingcc-build/arm-elf/thumb/libgcc/crtbegin.o In file included from /usr/local/lib/gcc/arm-elf/4.5.1/../../../../arm-elf/sys-include/stdio.h:46:0, from ../../gcc-4.6.0/gcc/tsystem.h:87, from ../../gcc-4.6.0/gcc/crtstuff.c:61: /usr/local/lib/gcc/arm-elf/4.5.1/../../../../arm-elf/sys-include/sys/types.h:126:16: error: expected identifier or '(' before 'char' make[5]: *** [/home/krom/arm-elf-tool/fingcc-build/arm-elf/thumb/libgcc/crtbegin.o] Ошибка 1 make[5]: Leaving directory `/home/krom/arm-elf-tool/fingcc-build/gcc' make[4]: *** [gcc-extra-parts] Ошибка 2 make[4]: Leaving directory `/home/krom/arm-elf-tool/fingcc-build/arm-elf/thumb/libgcc' make[3]: *** [multi-do] Ошибка 1 make[3]: Leaving directory `/home/krom/arm-elf-tool/fingcc-build/arm-elf/libgcc' make[2]: *** [all-multi] Ошибка 2 make[2]: Leaving directory `/home/krom/arm-elf-tool/fingcc-build/arm-elf/libgcc' make[1]: *** [all-target-libgcc] Ошибка 2 make[1]: Leaving directory `/home/krom/arm-elf-tool/fingcc-build' make: *** [all] Ошибка 2 Error building gcc Что еще заметил - какого-то хрена лезет в /usr/local/lib/gcc/arm-elf/4.5.1/ - вообще непонятка, зачем ему туда Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Krom 0 11 мая, 2011 Опубликовано 11 мая, 2011 · Жалоба В общем, так и не нашел я откуда у этой ошибки ноги растут. Пробовал собирать и под MinGW в Windows, и в Линуксе для Виндовса - результат один и то же. На версиях 4.5.3, 4.6.0 и 4.6.1. Причем все три версии под Линуксом собираются прекрасно и с первого тыка. Нифига непонятно, как у ягарто собиралось - пробовал его же скриптами, с теми же исходниками - ошибка остается. Видимо, патчик какой приныкал. Пока остановился на таком варианте: финальную сборку gcc провожу командами make all-gcc и make install-gcc (а надо бы make и install), а библиотеки подсовываю от собранной в линуксе версии. Бинарник собирал, прошивал, тестил - работает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MrYuran 17 11 мая, 2011 Опубликовано 11 мая, 2011 · Жалоба Пока остановился на таком варианте: финальную сборку gcc провожу командами make all-gcc и make install-gcc (а надо бы make и install), а библиотеки подсовываю от собранной в линуксе версии. Ну а что - тоже мысль. Библиотеки же от системы вообще никак не зависят. Надо будет тоже попробовать таки чего-нето собрать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Krom 0 12 мая, 2011 Опубликовано 12 мая, 2011 · Жалоба Ну а что - тоже мысль. Библиотеки же от системы вообще никак не зависят. Надо будет тоже попробовать таки чего-нето собрать. Не зависят, но нет ощущения завершенности. Опять же собирать в двух OS это как-то совсем садо-мазо (хотя под Линукс собирается почти в два раза быстрее ;) )... Но пока выхода другого не вижу, и так чистым временем дней пять на эти эксперименты убил... В общем, могу выложить на фтп полный комплект (Эклипс со всеми плагинами и собраный тулчейн arm-elf под кортексы, включая openocd 0.4.0). Смысл есть? Нужно кому? ЗЫ. Прошу прощения за чайниковский вопрос, но все-таки - а чем в двух словах отличаются arm-elf и arm-none-eabi? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
demiurg_spb 0 12 мая, 2011 Опубликовано 12 мая, 2011 · Жалоба а чем в двух словах отличаются arm-elf и arm-none-eabi?ИМХО практически ничем. Вот нашёл по теме: http://embdev.net/topic/129737 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
John Doe 0 6 февраля, 2012 Опубликовано 6 февраля, 2012 · Жалоба Что интересно - под никсами и для никсов все собирается прекрасно. ЗЫ. Что еще интереснее - под никсами, но для Виндовса ( с опцией --host=i586-mingw32msvc ) таже хрень - финальная сборка gcc падает на том же месте и с той же ошибкой: -c ../../gcc-4.6.0/gcc/crtstuff.c -DCRT_BEGIN \ -o /home/krom/arm-elf-tool/fingcc-build/arm-elf/thumb/libgcc/crtbegin.o In file included from /usr/local/lib/gcc/arm-elf/4.5.1/../../../../arm-elf/sys-include/stdio.h:46:0, from ../../gcc-4.6.0/gcc/tsystem.h:87, from ../../gcc-4.6.0/gcc/crtstuff.c:61: /usr/local/lib/gcc/arm-elf/4.5.1/../../../../arm-elf/sys-include/sys/types.h:126:16: error: expected identifier or '(' before 'char' make[5]: *** [/home/krom/arm-elf-tool/fingcc-build/arm-elf/thumb/libgcc/crtbegin.o] Ошибка 1 make[5]: Leaving directory `/home/krom/arm-elf-tool/fingcc-build/gcc' make[4]: *** [gcc-extra-parts] Ошибка 2 make[4]: Leaving directory `/home/krom/arm-elf-tool/fingcc-build/arm-elf/thumb/libgcc' make[3]: *** [multi-do] Ошибка 1 make[3]: Leaving directory `/home/krom/arm-elf-tool/fingcc-build/arm-elf/libgcc' make[2]: *** [all-multi] Ошибка 2 make[2]: Leaving directory `/home/krom/arm-elf-tool/fingcc-build/arm-elf/libgcc' make[1]: *** [all-target-libgcc] Ошибка 2 make[1]: Leaving directory `/home/krom/arm-elf-tool/fingcc-build' make: *** [all] Ошибка 2 Error building gcc Что еще заметил - какого-то хрена лезет в /usr/local/lib/gcc/arm-elf/4.5.1/ - вообще непонятка, зачем ему туда Столкнулся с той же проблемой при сборке gcc 4.6.2. Оказалось, что косяк в файле auto_host.h, который неправильно генерит configure. Если точнее, то проблема в этой строчке (пишу по памяти): #define caddr_t char * Для исправления проблемы достаточно закомментировать (/*...*/) эту строчку в $(gcc_source_dir)/gcc/configure. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Krom 0 6 марта, 2012 Опубликовано 6 марта, 2012 · Жалоба Попробую. Хорошо бы, если бы все было так просто. Интересно, как тогда все остальные собирают? Пробовал даже ягартовскими скриптами собирать - та же хрень. А ведь он собирал 4.6.2, и патчи у него к скриптам прилагаются... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться