реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Сборка toolchain в MinGW, Что-то с памятью моей стало :(
Krom
сообщение Apr 15 2011, 14:25
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 107
Регистрация: 27-06-05
Из: Россия
Пользователь №: 6 324



Решил-таки перебраться из Линукс в Винду, ибо много чего требуется в ней, а перегружаться туда-сюда надоело уже... Установил 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 его просто не видит (пробовал отключать вообще - тоже самое).
Встречался кто-нибудь с аналогичной проблемой?
Go to the top of the page
 
+Quote Post
RISCovyj
сообщение Apr 23 2011, 21:09
Сообщение #2





Группа: Новичок
Сообщений: 9
Регистрация: 6-02-09
Пользователь №: 44 491



А этот пойдет?

Sourcery G++ Lite
Go to the top of the page
 
+Quote Post
Krom
сообщение Apr 27 2011, 21:45
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 107
Регистрация: 27-06-05
Из: Россия
Пользователь №: 6 324



Цитата(RISCovyj @ Apr 24 2011, 01:09) *
А этот пойдет?
Sourcery G++ Lite

Предпочитаю собирать собственноручно sm.gif. В принципе, я уже вышел из положения - отказался от автоматизированной сборки с помощью скрипта и собрал поэтапно (геморрой еще тот я вам скажу). Осталось только разобраться как OpenOCD в MinGW собирать sm.gif
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Apr 28 2011, 06:12
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (Krom @ Apr 28 2011, 00:45) *
Осталось только разобраться как OpenOCD в MinGW собирать sm.gif
Было бы неплохо, если бы вы записали и выложили здесь весь процесс сборки, начиная от скачивания/установки git (в идеале - и mingw).


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Apr 28 2011, 06:59
Сообщение #5


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(Сергей Борщ @ Apr 28 2011, 10:12) *
Было бы неплохо, если бы вы записали и выложили здесь весь процесс сборки, начиная от скачивания/установки git (в идеале - и mingw).

++
Давно мечтаю mspgcc собрать, времени урывками по полтора-два часа хватает только на то, чтобы начать разбираться и опять отложить до следующего раза.
Более подробная инструкция с картой потенциальных граблей очень бы помогла.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
Krom
сообщение Apr 28 2011, 10:25
Сообщение #6


Частый гость
**

Группа: Свой
Сообщений: 107
Регистрация: 27-06-05
Из: Россия
Пользователь №: 6 324



Цитата(Сергей Борщ @ Apr 28 2011, 10:12) *
Было бы неплохо, если бы вы записали и выложили здесь весь процесс сборки, начиная от скачивания/установки git (в идеале - и mingw).

Ну надеюсь домучить это дело в ближайшие пару дней. Как только получится - распишу. В Цигвине собралось без особых проблем, но хотелось бы обойтись только MinGW.
ЗЫ. Собрал, но попробовать не на чем, все на работе sad.gif. Завтра притащу с работы какую-нить железяку и проверю на счет работоспособности.
Go to the top of the page
 
+Quote Post
Krom
сообщение May 4 2011, 12:49
Сообщение #7


Частый гость
**

Группа: Свой
Сообщений: 107
Регистрация: 27-06-05
Из: Россия
Пользователь №: 6 324



В общем, практически все собрал. Open OCD тоже, прошивка через него заливается, а отладку проверить не могу. Оказывается, финальная сборка gcc до конца не проходит, и проект собрать невозможно. Для проверки заливки через собранный OpenOCD брал бинарник, собранный в никсах. А вот в Винде под MinGW финальная сборка gcc никак не идет sad.gif. Пробовал и 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 под никсами без проблем. Кто-нить сталкивался с подобным? help.gif
ПРобовал ягартовские скрипты(только собирал arm-elf, а не arm-none-eabi) - аналогично. В общей сложности дня три уже потратил crying.gif Думаю, проще было бы собрать в 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.gif
ЗЫ. Только тут увидел ошибку в скрипте: --with-mffr=$PREFIX \ а надо ведь --with-mpfr=$PREFIX \ Ну, сделаю еще попытку
Go to the top of the page
 
+Quote Post
Krom
сообщение May 5 2011, 09:55
Сообщение #8


Частый гость
**

Группа: Свой
Сообщений: 107
Регистрация: 27-06-05
Из: Россия
Пользователь №: 6 324



Что интересно - под никсами и для никсов все собирается прекрасно.
ЗЫ. Что еще интереснее - под никсами, но для Виндовса ( с опцией --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/ - вообще непонятка, зачем ему туда
Go to the top of the page
 
+Quote Post
Krom
сообщение May 11 2011, 14:23
Сообщение #9


Частый гость
**

Группа: Свой
Сообщений: 107
Регистрация: 27-06-05
Из: Россия
Пользователь №: 6 324



В общем, так и не нашел я откуда у этой ошибки ноги растут. Пробовал собирать и под MinGW в Windows, и в Линуксе для Виндовса - результат один и то же. На версиях 4.5.3, 4.6.0 и 4.6.1. Причем все три версии под Линуксом собираются прекрасно и с первого тыка. Нифига непонятно, как у ягарто собиралось - пробовал его же скриптами, с теми же исходниками - ошибка остается. Видимо, патчик какой приныкал.
Пока остановился на таком варианте: финальную сборку gcc провожу командами make all-gcc и make install-gcc (а надо бы make и install), а библиотеки подсовываю от собранной в линуксе версии. Бинарник собирал, прошивал, тестил - работает.
Go to the top of the page
 
+Quote Post
MrYuran
сообщение May 11 2011, 14:47
Сообщение #10


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(Krom @ May 11 2011, 18:23) *
Пока остановился на таком варианте: финальную сборку gcc провожу командами make all-gcc и make install-gcc (а надо бы make и install), а библиотеки подсовываю от собранной в линуксе версии.

Ну а что - тоже мысль. Библиотеки же от системы вообще никак не зависят.
Надо будет тоже попробовать таки чего-нето собрать.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
Krom
сообщение May 12 2011, 06:09
Сообщение #11


Частый гость
**

Группа: Свой
Сообщений: 107
Регистрация: 27-06-05
Из: Россия
Пользователь №: 6 324



Цитата(MrYuran @ May 11 2011, 18:47) *
Ну а что - тоже мысль. Библиотеки же от системы вообще никак не зависят.
Надо будет тоже попробовать таки чего-нето собрать.

Не зависят, но нет ощущения завершенности. Опять же собирать в двух OS это как-то совсем садо-мазо (хотя под Линукс собирается почти в два раза быстрее wink.gif )... Но пока выхода другого не вижу, и так чистым временем дней пять на эти эксперименты убил... В общем, могу выложить на фтп полный комплект (Эклипс со всеми плагинами и собраный тулчейн arm-elf под кортексы, включая openocd 0.4.0). Смысл есть? Нужно кому?
ЗЫ. Прошу прощения за чайниковский вопрос, но все-таки - а чем в двух словах отличаются arm-elf и arm-none-eabi?
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение May 12 2011, 08:52
Сообщение #12


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Цитата(Krom @ May 12 2011, 10:09) *
а чем в двух словах отличаются arm-elf и arm-none-eabi?
ИМХО практически ничем.
Вот нашёл по теме:
http://embdev.net/topic/129737


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
John Doe
сообщение Feb 6 2012, 23:30
Сообщение #13





Группа: Новичок
Сообщений: 1
Регистрация: 6-02-12
Пользователь №: 70 119



Цитата(Krom @ May 5 2011, 13:55) *
Что интересно - под никсами и для никсов все собирается прекрасно.
ЗЫ. Что еще интереснее - под никсами, но для Виндовса ( с опцией --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.
Go to the top of the page
 
+Quote Post
Krom
сообщение Mar 6 2012, 13:39
Сообщение #14


Частый гость
**

Группа: Свой
Сообщений: 107
Регистрация: 27-06-05
Из: Россия
Пользователь №: 6 324



Попробую. Хорошо бы, если бы все было так просто. Интересно, как тогда все остальные собирают? Пробовал даже ягартовскими скриптами собирать - та же хрень. А ведь он собирал 4.6.2, и патчи у него к скриптам прилагаются...
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 26th July 2025 - 07:09
Рейтинг@Mail.ru


Страница сгенерированна за 0.01488 секунд с 7
ELECTRONIX ©2004-2016