Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Пн июн 26, 2017 6:35 am

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 226 сообщений ]  На страницу Пред. 112 13 14 15 16 След.
Автор Сообщение
 Заголовок сообщения: Re: Newlib
СообщениеДобавлено: Сб фев 18, 2017 2:28 pm 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3927
netryx
Код:
buf->st_ino=(unsigned)rand();
У меня вопрос возник. Если использовать rand() при каждом вызове для одного файла будет генерироваться новое значение. Это не создаст проблем?


Вернуться к началу
 Заголовок сообщения: Re: Newlib
СообщениеДобавлено: Сб фев 18, 2017 3:16 pm 
Не в сети

Зарегистрирован: Чт мар 31, 2016 10:18 am
Сообщения: 11
Может быть и создаст. В приведенном мной примере ошибка может получится, если попытаться в tar файл запихнуть этот же tar файл. То есть, если заданы неверные параметры. Во многих приложениях st_ino не требуется, там проблем не будет. Если делать st_ino по хэш сумме абсолютного пути файла в нижнем регистре (если это не ext ФС), то и это в каких то случаях может привести к ошибке, но вероятность этого низкая. Мой код не совсем правильный, делал на скорую руку, st_ino меня тогда не сильно заботило, но он хоть как-то пытается определить корневые папки, как каталоги. Да и ошибка будет, если реально не существует /hd0/5 , но моя функция вернет что есть. Я это делал, чтобы заставить работать busybox, и это (lstat) будет работать, если в командную строку busybox не указывать неправильные параметры.


Вернуться к началу
 Заголовок сообщения: Re: Newlib
СообщениеДобавлено: Чт фев 23, 2017 1:09 pm 
Не в сети

Зарегистрирован: Чт янв 19, 2017 11:48 am
Сообщения: 10
Подскажите, как собрать библиотеку в cygwin?

_________________
О, что-то новенькое!


Вернуться к началу
 Заголовок сообщения: Re: Newlib
СообщениеДобавлено: Вт фев 28, 2017 7:02 pm 
Не в сети
Mentor/Kernel Developer
Аватара пользователя

Зарегистрирован: Чт мар 26, 2015 5:16 pm
Сообщения: 1158
revision #6868
Починил для FAT.


Вернуться к началу
 Заголовок сообщения: Re: Newlib
СообщениеДобавлено: Пн мар 06, 2017 5:34 pm 
Не в сети
Mentor/Kernel Developer
Аватара пользователя

Зарегистрирован: Чт мар 26, 2015 5:16 pm
Сообщения: 1158
revision #6875
Теперь 70.5 должна поддерживать всё.


Вернуться к началу
 Заголовок сообщения: Re: Newlib
СообщениеДобавлено: Пт мар 31, 2017 6:14 pm 
Не в сети
Designer
Аватара пользователя

Зарегистрирован: Чт янв 25, 2007 3:33 pm
Сообщения: 4088
Воу, воу, воу. Вот это уже круто и интересно.
Надо будет запилить.

_________________
Через тернии к звездам


Вернуться к началу
 Заголовок сообщения: Re: Newlib
СообщениеДобавлено: Чт апр 06, 2017 1:53 am 
Не в сети
Mentor

Зарегистрирован: Вт мар 11, 2014 11:37 am
Сообщения: 164
Hi, With the latest toolchain based on GCC 5.x:

$ cat x.c
#include <sys/stat.h>

int main() {
mkdir("somedir", 0660);
return 0;
}

$ kos32-gcc -I ~/kolibrios/contrib/sdk/sources/newlib/libc/include/ -c -fno-ident -O2 -fomit-frame-pointer -U__WIN32__ -U_Win32 -U_WIN32 -U__MINGW32__ -UWIN32 x.c

$ kos32-ld -static -Tapp-static.lds -L~/kolibrios/contrib/sdk/lib/ x.o -lc -lgcc -lc

x.o:x.c:(.text.startup+0x1e): undefined reference to `mkdir'

Any ideas what might be wrong?

_________________
---
Check out the Netsurf Web Browser for KolibriOS.
Read the wiki and happy hacking with KolibriOS!


Вернуться к началу
 Заголовок сообщения: Re: Newlib
СообщениеДобавлено: Чт апр 06, 2017 10:58 am 
Не в сети

Зарегистрирован: Вт мар 08, 2016 11:00 pm
Сообщения: 246
This is not realized in newlib.
I make posix directory funclions for unzip, but not so clean code for including in newlib (unzip checked many times, though)

http://websvn.kolibrios.org/filedetails ... 2Fdirent.c


Вернуться к началу
 Заголовок сообщения: Re: Newlib
СообщениеДобавлено: Сб апр 08, 2017 1:58 pm 
Не в сети
Mentor

Зарегистрирован: Вт мар 11, 2014 11:37 am
Сообщения: 164
Siemargl писал(а):
This is not realized in newlib.
I make posix directory funclions for unzip, but not so clean code for including in newlib (unzip checked many times, though)

http://websvn.kolibrios.org/filedetails ... 2Fdirent.c


That took care of the missing mkdir stuff..Would be nice to have this in newlib.

-----
Found another one:

$ cat x.c
#include <ctype.h>

int main() {
char *c = "abcd";
c[2] = toupper(c[1]);

return 0;
}

$ kos32-gcc -c -fno-ident -O2 -fomit-frame-pointer -U__WIN32__ -U_Win32 -U_WIN32 -U__MINGW32__ -UWIN32 -I$HOME/kolibrios/contrib/sdk/sources/newlib/libc/include x.c

$ kos32-ld -static -Tapp-static.lds -L$HOME/kolibrios/contrib/sdk/lib/ x.o -lc -lgcc -lc

$ x.o:x.c:(.text.startup+0xc): undefined reference to `_imp____ctype_ptr__'

Any ideas how to fix this?

_________________
---
Check out the Netsurf Web Browser for KolibriOS.
Read the wiki and happy hacking with KolibriOS!


Вернуться к началу
 Заголовок сообщения: Re: Newlib
СообщениеДобавлено: Сб апр 08, 2017 6:34 pm 
Не в сети

Зарегистрирован: Вт мар 08, 2016 11:00 pm
Сообщения: 246
Try to link with libc.dll.a and dynamic.lds
$ kos32-ld -static -Tapp-dynamic.lds -L$HOME/kolibrios/contrib/sdk/lib/ x.o -lc -lgcc -lc.dll
may be need -ldll

Update:
If you wish to use static linking, add -DSTATIC_LIBC to compile options


Вернуться к началу
 Заголовок сообщения: Re: Newlib
СообщениеДобавлено: Чт апр 13, 2017 9:34 pm 
Не в сети
Mentor

Зарегистрирован: Вт мар 11, 2014 11:37 am
Сообщения: 164
Thanks, compiling with dynamic lib instead of static gets it going for now.
Let's see how run time goes down :D

Update: The binary loads and using MTDBG can confirm that libc.dll is found and loaded at run time! Cheers!

_________________
---
Check out the Netsurf Web Browser for KolibriOS.
Read the wiki and happy hacking with KolibriOS!


Вернуться к началу
 Заголовок сообщения: Re: Newlib
СообщениеДобавлено: Сб апр 22, 2017 1:42 am 
Не в сети
Mentor

Зарегистрирован: Вт мар 11, 2014 11:37 am
Сообщения: 164
Hi
Found a possible issue with value of argv array passed to main() :

Sample program :

$ cat x.c

#include <stdio.h>

int main(int argc, char *argv[]) {
fprintf(stderr, "argv[0] = %s\n", argv[0]);
return 0;
}

Compile with :
kos32-gcc -c -fno-ident -O2 -fomit-frame-pointer -U__WIN32__ -U_Win32 -U_WIN32 -U__MINGW32__ -UWIN32 -I$HOME/kolibrios/contrib/sdk/sources/newlib/libc/include x.c

kos32-ld -static -Tapp-static.lds -L$HOME/kolibrios/contrib/sdk/lib/ x.o -lc -lgcc -lc -o bin

objcopy -O binary bin

Executing this "bin" on kolibrios, when the program is run, the debug board shows :
/ /usbhd0/1/bin

This means that the value of argv[0] has a few extra characters at the beginning that it should not have.
Expected result : /usbhd0/1/bin (Just the path of the binary without extra bytes at the start).

Views?

_________________
---
Check out the Netsurf Web Browser for KolibriOS.
Read the wiki and happy hacking with KolibriOS!


Вернуться к началу
 Заголовок сообщения: Re: Newlib
СообщениеДобавлено: Сб апр 22, 2017 5:06 pm 
Не в сети
Mentor/Kernel Developer
Аватара пользователя

Зарегистрирован: Пт июн 30, 2006 9:01 am
Сообщения: 1211
It's likely that the library does not account for the fact that the path given to it by kernel might have a byte indicating the encoding of the string.

_________________
"Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction." Albert Einstein


Вернуться к началу
 Заголовок сообщения: Re: Newlib
СообщениеДобавлено: Вс апр 23, 2017 3:29 pm 
Не в сети
Mentor/Kernel Developer
Аватара пользователя

Зарегистрирован: Чт мар 26, 2015 5:16 pm
Сообщения: 1158
Yes, currently argv[0] contains the encoding marker (3 = UTF-8), but all sysfunctions support such input. So, what might cause the problem?


Вернуться к началу
 Заголовок сообщения: Re: Newlib
СообщениеДобавлено: Пт апр 28, 2017 10:31 pm 
Не в сети
Mentor

Зарегистрирован: Вт мар 11, 2014 11:37 am
Сообщения: 164
The problem was that I expected argv[0][2:] to be argv[0][0:] (without the encoding bytes)
Now that I know what it is, i can safely skip those bytes or do things in the code to use this information.

_________________
---
Check out the Netsurf Web Browser for KolibriOS.
Read the wiki and happy hacking with KolibriOS!


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 226 сообщений ]  На страницу Пред. 112 13 14 15 16 След.

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB