Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проблемы при компиляции uCLinux для STR710
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы
Ivan_Kov
На своем компьютере, я использую ОС debian gnu/linux.
При компиляции uClinux для STR710 возникли 2 проблемы:

Проблема 1.
компилирую в соответствии с указаниями an-2119.pdf: ядро 2.4, uClibc, все настройки – по умолчению. На шаге компиляции «make user_only» возникает ошибка:

gcc -I/usr/include -c -o build/compr_rtime.o compr_rtime.c
compr_rtime.c:31: error: syntax error before "uint32_t"
compr_rtime.c: In function `jffs2_rtime_compress':
compr_rtime.c:39: error: `sourcelen' undeclared (first use in this function)
compr_rtime.c:39: error: (Each undeclared identifier is reported only once
compr_rtime.c:39: error: for each function it appears in.)
compr_rtime.c:39: error: `dstlen' undeclared (first use in this function)
compr_rtime.c:43: error: `data_in' undeclared (first use in this function)
compr_rtime.c:45: error: `cpage_out' undeclared (first use in this function)
compr_rtime.c: At top level:
compr_rtime.c:71: error: syntax error before "uint32_t"
compr_rtime.c: In function `jffs2_rtime_decompress':
compr_rtime.c:79: error: `destlen' undeclared (first use in this function)
compr_rtime.c:84: error: `data_in' undeclared (first use in this function)
compr_rtime.c:85: error: `cpage_out' undeclared (first use in this function)
make[2]: *** [build/compr_rtime.o] ошибка 1
make[2]: Leaving directory `/home/ivan/ucLinux/uClinux-dist/user/mtd-utils'
make[1]: *** [all] ошибка 2
make[1]: Leaving directory `/home/ivan/ucLinux/uClinux-dist/user'
make: *** [user_only] ошибка 2

В принципе, удалось от нее избавиться, заменив uint32_t на __u32. Но правильный ли это путь?

Проблема 2.
Если, при конфигурировании, в ядро добавить gdbserver, то возникает ошибка (make user_only):

arm-elf-gcc -c -O2 -g -fomit-frame-pointer -Dlinux -D__linux__ -Dunix -D__uClinux__ -DEMBED -I/home/ivan/ucLinux/uClinux-dist/lib/uClibc/include -I/home/ivan/ucLinux/uClinux-dist/lib/libm -I/home/ivan/ucLinux/uClinux-dist/lib/libcrypt_old -I/home/ivan/ucLinux/uClinux-dist -fno-builtin -nostartfiles -I/home/ivan/ucLinux/uClinux-dist/linux-2.4.x/include -Ibfd -I./bfd -Igdb -Iinclude -Iconfig -I. gdbreplay.c
cc1: warning: -g with -fomit-frame-pointer may not give sensible debugging
gdbreplay.c: In function `perror_with_name':
gdbreplay.c:58: `sys_nerr' undeclared (first use in this function)
gdbreplay.c:58: (Each undeclared identifier is reported only once
gdbreplay.c:58: for each function it appears in.)
gdbreplay.c:58: `sys_errlist' undeclared (first use in this function)
make[2]: *** [gdbreplay.o] ошибка 1
make[2]: Leaving directory `/home/ivan/ucLinux/uClinux-dist/user/gdbserver'
make[1]: *** [all] ошибка 2
make[1]: Leaving directory `/home/ivan/ucLinux/uClinux-dist/user'
make: *** [user_only] ошибка 2

Подскажите, пожалуйста, как устранить эту проблему.
Ivan_Kov
Не молчите, товарищи, скажите хоть что-нибудь. Неужели ни у кого больше не было такой ошибки? Может, у меня кривая версия закачена?
Ivan_Kov
Проблему удалось решить. Хотя, думаю, не лучшим образом, но все компилируется и вроде как работает.
Я заменил строку 58:
err = (errno < sys_nerr) ? sys_errlist[errno] : "unknown error";
на
char temp[256];
sprintf (temp, "%d", errno);
err=temp;
т.е. вместо строки об ошибке я вывожу ее код.
Таким образом я избавился от использования не объявленных переменных sys_ner и sys_errlist. Но почему эти переменные оказались не объявленными – не ясно.

Может быть, кто-то поделится своими мыслями по этому поводу?
KirillS
Цитата(Ivan_Kov @ Nov 15 2006, 10:00) *
Проблему удалось решить. Хотя, думаю, не лучшим образом, но все компилируется и вроде как работает.
Я заменил строку 58:
err = (errno < sys_nerr) ? sys_errlist[errno] : "unknown error";
на
char temp[256];
sprintf (temp, "%d", errno);
err=temp;
т.е. вместо строки об ошибке я вывожу ее код.
Таким образом я избавился от использования не объявленных переменных sys_ner и sys_errlist. Но почему эти переменные оказались не объявленными – не ясно.

Может быть, кто-то поделится своими мыслями по этому поводу?


Ну, я работаю с дистрибуцией uClinux для MicroBlaze. Подобные проблемы встречаются сплошь да рядом. Средства устранения: искать patch или править самому. Welcome to Linux...
Ivan_Kov
спасибо, в линуксе я - новичек,
но уже начал догадоваться что так оно есть smile.gif ...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.