Warning: touch() [function.touch]: Unable to create file /home/starterkit/starterkit.ru/html/error.log because Permission denied in /home/starterkit/starterkit.ru/html/errorhandler.php on line 51
Бинарь не видит конца файла. - Embedded Linux - Форум - starterkit.ru
Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru
Партнеры:
otladka.com.ua - г.Киев

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:2
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:6
Форум » starterkit.ru » Embedded Linux
Бинарь не видит конца файла.
splinter
Добавлено 29.08.2012 16:24
0
Сообщение: 1
splinter
0

Пункты: 1549
Регистрация: 16.12.2011
Пол: Мужчина
Здравствуйте. На собранной билдрутом системе пытаюсь собрать билдрутовским компилятором gcc-4.6.2 для ARM простой код, в результате на стандартный вывод должно выйти содержимое файла tableID.csv (пробовал и другие файлы ситуация такая же) но почему то пройдя до конца файла программа не останавливается а продолжает сыпать какую то чушь:
Код
4889,ENTERMTZ5.setVal,BOOLEAN,E,SG,,,false,38144,4
4890,CONTROLRPV,SPG,S,,,SHM,,38148,4
4891,CONTROLRPV.setVal,BOOLEAN,E,SG,,,false,38148,4
4892,SOUNDDELAY,ING,S,,,SHM,,38152,16
4893,SOUNDDELAY.setVal,INT32,,SG,,,60000,38152,4
4894,SOUNDDELAY.minVal,INT32,,RCF,,,5000,38156,4
4895,SOUNDDELAY.maxVal,INT32,,RCF,,,60000,38160,4
4896,SOUNDDELAY.stepSize,INT32U,E,RCF,,,1000,38164,4
4897,PRISNDVALUE,SPG,S,,,SHM,,38168,4
4898,PRISNDVALUE.setVal,BOOLEAN,E,SG,,,false,38168,44444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444.... и так пока не прервешь процесс ^C

Вот код, он работает нормально работает на x86:
Код
#include <fstream>
#include <iostream>
#include <ostream>

using namespace std;

int main()
{
char ch;
ifstream infile("tableID.csv");

while (infile.good())
{
infile.get(ch);
cout<<ch;
}
cout << endl;
return 0;
}

Вот еще вариант, результат тот же:
Код

#include <iostream>
#include <fstream>
using namespace std;

int main (int argc, char *argv[])
{
char ch;
ifstream fin("tableID.csv") ;
if(!fin) {
cout << "Can not open file\n" ;
return 1;
}
while (!fin.eof())
{
fin>>ch;
cout<<ch;
}
return 0;
}

Дело не в tableID.csv, так как вместо него пытался подсовывать и другие и /etc/passwd. Buildroot от 2012.02, Released February 29th. Флаги g++:
Код

bash-4.1$ /mnt/filestore/buildroot-2012.02/output/host/usr/bin/arm-unknown-linux-uclibcgnueabi-g++ -v
Используются внутренние спецификации.
Целевая архитектура: arm-unknown-linux-uclibcgnueabi
Параметры конфигурации: /mnt/filestore/buildroot-2012.02/output/toolchain/gcc-4.3.6/configure --prefix=/mnt/filestore/buildroot-2012.02/output/host/usr --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --target=arm-unknown-linux-uclibcgnueabi --enable-languages=c,c++ --with-sysroot=/mnt/filestore/buildroot-2012.02/output/host/usr/arm-unknown-linux-uclibcgnueabi/sysroot --with-build-time-tools=/mnt/filestore/buildroot-2012.02/output/host/usr/arm-unknown-linux-uclibcgnueabi/bin --disable-__cxa_atexit --enable-target-optspace --disable-libgomp --with-gnu-ld --disable-libssp --disable-multilib --enable-tls --enable-shared --with-gmp=/mnt/filestore/buildroot-2012.02/output/host/usr --with-mpfr=/mnt/filestore/buildroot-2012.02/output/host/usr --enable-threads --disable-decimal-float --with-float=soft --with-abi=aapcs-linux --with-arch=armv5te --with-tune=arm926ej-s --with-pkgversion='Buildroot 2012.02' --with-bugurl=http://bugs.buildroot.net/
Модель многопоточности: posix
gcc версия 4.3.6 (Buildroot 2012.02)

Версии gcc пробовал разные, в том числе 4.6.1, 4.5 результат тот же. ДОбавление пустой строки в конец текстового файла не помогает, он продолжает бежать по пустой строке.
Спуститься к концу Подняться к началу
Персональная информация
splinter
Добавлено 29.08.2012 16:26 Сообщение: 2
splinter
0

Пункты: 1549
Регистрация: 16.12.2011
Пол: Мужчина
В общем такое ощущение что он не знает EOF, не реагирует ни на while (!fin.eof()) ни на while (infile.good()) ни на while (infile.eof()) ни while (infile)
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 29.08.2012 18:00 Редактировалось 29.08.2012 18:03 Сообщение: 3
sasamy
4.70

Пункты: 76182
Регистрация: 14.08.2009
Цитата

--target=arm-unknown-linux-uclibcgnueabi


Есть острая необходимость в uclibc ? я бы не стал с ней связываться - лучше eglibc
Цитата

# uname -a
Linux buildroot 3.2.18-rt29 #1 PREEMPT Mon Jun 11 05:05:47 MSK 2012 armv5tejl GNU/Linux
# ./tst.bin
root:x:0:0:root:/root:/bin/sh
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:100:sync:/bin:/bin/sync
mail:x:8:8:mail:/var/spool/mail:/bin/sh
proxy:x:13:13:proxy:/bin:/bin/sh
www-data:x:33:33:www-data:/var/www:/bin/sh
backup:x:34:34:backup:/var/backups:/bin/sh
operator:x:37:37:Operator:/var:/bin/sh
haldaemon:x:68:68:hald:/:/bin/sh
dbus:x:81:81:dbus:/var/run/dbus:/bin/sh
ftp:x:83:83:ftp:/home/ftp:/bin/sh
nobody:x:99:99:nobody:/home:/bin/sh
sshd:x:103:99:Operator:/var:/bin/sh
default:x:1000:1000:Default non-root user:/home/default:/bin/sh


sasa@sasa-laptop:~/ctng-atmel/bin$ arm-atmel-linux-gnueabi-g++ -v
Using built-in specs.
COLLECT_GCC=arm-atmel-linux-gnueabi-g++
COLLECT_LTO_WRAPPER=/home/sasa/ctng-atmel/libexec/gcc/arm-atmel-linux-gnueabi/4.6.4/lto-wrapper
Target: arm-atmel-linux-gnueabi
Configured with: /home/sasa/work/ctng-build/.build/src/gcc-linaro-4.6-2012.04/configure --build=x86_64-build_unknown-linux-gnu --host=x86_64-build_unknown-linux-gnu --target=arm-atmel-linux-gnueabi --prefix=/home/sasa/ctng-atmel --with-sysroot=/home/sasa/ctng-atmel/arm-atmel-linux-gnueabi/sysroot --enable-languages=c,c++ --with-arch=armv5te --with-tune=arm926ej-s --with-float=soft --with-pkgversion='crosstool-NG 1.15.2' --enable-__cxa_atexit --disable-libmudflap --disable-libgomp --disable-libssp --with-gmp=/home/sasa/work/ctng-build/.build/arm-atmel-linux-gnueabi/buildtools --with-mpfr=/home/sasa/work/ctng-build/.build/arm-atmel-linux-gnueabi/buildtools --with-mpc=/home/sasa/work/ctng-build/.build/arm-atmel-linux-gnueabi/buildtools --with-ppl=/home/sasa/work/ctng-build/.build/arm-atmel-linux-gnueabi/buildtools --with-cloog=/home/sasa/work/ctng-build/.build/arm-atmel-linux-gnueabi/buildtools --with-libelf=/home/sasa/work/ctng-build/.build/arm-atmel-linux-gnueabi/buildtools --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm -L/home/sasa/work/ctng-build/.build/arm-atmel-linux-gnueabi/buildtools/lib -lpwl' --enable-threads=posix --enable-target-optspace --disable-nls --disable-multilib --with-local-prefix=/home/sasa/ctng-atmel/arm-atmel-linux-gnueabi/sysroot --enable-c99 --enable-long-long
Thread model: posix
gcc version 4.6.4 20120402 (prerelease) (crosstool-NG 1.15.2)

tst.bin - это тот который "Вот еще вариант, результат тот же:"
Спуститься к концу Подняться к началу
Персональная информация
splinter
Добавлено 29.08.2012 18:19 Сообщение: 4
splinter
0

Пункты: 1549
Регистрация: 16.12.2011
Пол: Мужчина
Наверное нет, но хотелось бы все таки знать причину, а есть возможность подружить eglibc с buildroot? я как то про eglibc мало знаю, и не использовал.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 29.08.2012 18:40 Редактировалось 29.08.2012 18:48 Сообщение: 5
sasamy
4.70

Пункты: 76182
Регистрация: 14.08.2009
http://code.google.com/p/starterkit-org/wiki/CrosstoolNg
http://code.google.com/p/starterkit-org/wiki/QtBuildroot

в buildroot можно использовать любой внешний кросскомпилятор который поддерживает sysroot
Спуститься к концу Подняться к началу
Персональная информация
splinter
Добавлено 30.08.2012 14:48 Сообщение: 6
splinter
0

Пункты: 1549
Регистрация: 16.12.2011
Пол: Мужчина
Извините за оффтоп но при попытке собрать с eglibc не могу забрать с выполнить svn export -r HEAD svn://svn.eglibc.org/branches/eglibc-2_16/libc eglibc-2_16, не могли бы проверить доступность линка, в инет хожу через проксю, настройки нормальные другие svn-репозитории чекятся нормально.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 30.08.2012 14:59 Редактировалось 30.08.2012 15:01 Сообщение: 7
sasamy
4.70

Пункты: 76182
Регистрация: 14.08.2009
Цитата

eglibc-2_16


все же пренебрегли советом :)

Цитата

версия 2.13 - последняя с которой вы не испытаете проблем при сборке расширенного варианта busybox


c 2.16 busybox не собрется

Цитата

не могли бы проверить доступность линка


линк рабочий
Спуститься к концу Подняться к началу
Персональная информация
splinter
Добавлено 30.08.2012 15:06 Сообщение: 8
splinter
0

Пункты: 1549
Регистрация: 16.12.2011
Пол: Мужчина
а если ресурсы позволяют использовать glibc, есть ли смысл использовать его вместо eglibc?
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 30.08.2012 15:17 Редактировалось 30.08.2012 15:20 Сообщение: 9
sasamy
4.70

Пункты: 76182
Регистрация: 14.08.2009
Не знаю - можно и glibc.
http://linux.slashdot.org/story/09/05/06/2050216/debian-switching-from-glibc-to-eglibc

вам лучше прямо в буилдруте указать на использование готового кросскомпилятора - там они есть на выбор от Code Sourcery, просто вы время зря тратите похоже - есть ли смысл самому собирать ?
Спуститься к концу Подняться к началу
Персональная информация
splinter
Добавлено 30.08.2012 15:53 Сообщение: 10
splinter
0

Пункты: 1549
Регистрация: 16.12.2011
Пол: Мужчина
Code Sourcery как я понимаю только собран с glibc, дело в том что у меня есть прошивка(от предыдущего разработчика) к которой надо собрать программы, эта прошивка использует uclibc, как вариант для следующего устройства я буду использовать eglibc/glibc, но мне все равно понадобится компилятор uclibc-gnueabi для написания программ к предыдущей прошивке.
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux