Page 12 of 16

Re: Newlib

Posted: Sun Sep 21, 2014 1:31 am
by pascualle
IgorA,
посмотри свой PATH, есть гипотеза, что у тебя уже стоит что-то типа cygwin или подобное и оно упомянуто в PATH, что может делать серьезные наводки при запуске msys.bat, содержимое этого батника очень нетривиальное.

Re: Newlib

Posted: Sun Sep 21, 2014 1:54 pm
by Artyom
IgorA wrote:Файл по пути c:\MinGW\bin\libiconv-2.dll оказался более новый чем тот что я загрузил из интернета, заменил его но всеравно не пошло.
pascualle wrote:можно ли подробнее описать установку MinGW?
Все вродебы делал как написано в инструкции. Загрузил 2 файла msys-kos32-4.8.2.7z и mingw-get-setup.exe . Поставил установку на диск C (по умолчанию так и стояло). Флажка с подписью "..support for graphics user interface" там не было, но вместо нее был какой-то очень похожий на него, я его отметил. Выбрал 2 пакета mingw32-base и msys-base в окне и запустил установку через меню.
У меня вопрос решился копированием данного файла сюда c:\MinGW\msys\1.0\bin\

Re: Newlib

Posted: Sun Sep 21, 2014 8:20 pm
by IgorA
Artyom wrote:У меня вопрос решился копированием данного файла сюда c:\MinGW\msys\1.0\bin\
Спасибо, только что сделал, помогло. Сообщение уже не выскакивает, появился текст с указанием версии.

Re: Newlib

Posted: Sun Sep 21, 2014 8:33 pm
by Serge
Добавил в сборку libstdc++. Теперь есть базовый набор для разработки на С++.
Готовые бинарники и библиотеки

Re: Newlib

Posted: Fri Oct 03, 2014 8:25 am
by stefano
How I can use network.obj in C with Newlib?
I can ask in Russian if needed.

Re: Newlib

Posted: Mon Oct 06, 2014 10:00 am
by stefano
Ok. To make the question more general.
How I can load a library like network.obj using the Newlib?

Re: Newlib

Posted: Mon Oct 06, 2014 12:16 pm
by hidnplayr
esevece wrote:How I can load a library like network.obj using the Newlib?
You can take a look at how netsurf uses http.obj
It looks like a hack to me, but works, and nobody else here seems to care..
http://websvn.kolibrios.org/filedetails ... s%2Fhttp.c
Other files you'll need:
http://websvn.kolibrios.org/filedetails ... Fcofflib.c
http://websvn.kolibrios.org/filedetails ... %2Fdll.asm (this file must be assembled and then linked in to your project)

PS: this relies on menuetlibc rather then newlib, but a similar approach should be possible?

Re: Newlib

Posted: Mon Oct 06, 2014 1:18 pm
by stefano
Thanks hidnplayr.
SoUrcerer pointed me a similar approach but I wanted to use Newlib.

I tried to implement the same on Newlib (creating the function __kolibri__cofflib_load, etc) but I get these errors:

Code: Select all

Cannot export dll_load: symbol not found
Cannot export mem_Alloc: symbol not found
Cannot export mem_Free: symbol not found
Cannot export mem_ReAlloc: symbol not found
sys/network.o:network.c:(.text+0x1d7): undefined reference to `network_init'
sys/network.o:network.c:(.text+0x20b): undefined reference to `network_init'
sys/network.o:network.c:(.text+0x224): undefined reference to `freeaddrinfo'
sys/network.o:network.c:(.text+0x23d): undefined reference to `getaddrinfo'
sys/network.o:network.c:(.text+0x256): undefined reference to `getaddrinfo_start'
sys/network.o:network.c:(.text+0x26f): undefined reference to `getaddrinfo_process'
sys/network.o:network.c:(.text+0x288): undefined reference to `getaddrinfo_abort'
sys/network.o:network.c:(.text+0x2a1): undefined reference to `inet_ntoa'
sys/network.o:network.c:(.text+0x2b6): undefined reference to `inet_addr'
sys/network.o:network.c:(.text+0x2df): undefined reference to `network_init'
The ones that says "undefined reference" are the ones like:

Code: Select all

network_init = ( __stdcall int(*)())
... etc
Maybe I should use Menuetlibc.

Re: Newlib

Posted: Mon Oct 06, 2014 4:49 pm
by hidnplayr
Symbol not found, is probably caused by the fact that you did not link in that elf file I told you need to assemble..

Re: Newlib

Posted: Tue Oct 07, 2014 12:05 am
by stefano
Maybe I'm doing it the wrong way.

Re: Newlib

Posted: Thu Nov 06, 2014 12:06 am
by pascualle
Serge,
оговорюсь сразу, некоторое время совсем не было времени и я давненько не собирал newlib
сегодня взял r5173, собираю contrib\sdk\sources\Makefile твоими стандартными тулзами (+nasm +fasm)

ошибка:

Code: Select all

make[2]: Entering directory `/d/kolibri/contrib/sdk/sources/Mesa/src/glsl'
yacc  glcpp/glcpp-parse.y
make[2]: yacc: Command not found
Я не силен в mesa, но примерно понял что искать, нашел:
Mesa uses Lex and Yacc (actually Flex and Bison in GNU/Linux) to automatically generate a scanner and parser from the files glsl_lexer.ll and glsl_parser.yy respectively (to be exact there is also some extra manually created parser code in glsl_parser_extras.cpp).

чем ты компилишь под windows?

Re: Newlib

Posted: Thu Nov 06, 2014 7:09 am
by Serge
Я ставил инсталлятором MinGW и Msys. Bison идёт дополнением к Msys. Тулчейн установлен в d:\MinGW\msys\1.0\home\autobuild\tools\win32

Re: Newlib

Posted: Thu Nov 13, 2014 12:58 am
by pascualle
Serge,
переставил MinGW с более сложными настройками (обещаю обновить инструкцию)
теперь получаю такую ошибку:

Code: Select all

d:/kolibri/contrib/sdk/lib/libglsl.a(pp.o):pp.c:(.text+0x22a): undefined reference to `glcpp_parser_parse'
d:/kolibri/contrib/sdk/lib/libglsl.a(glcpp-parse.o):glcpp-parse.c:(.text+0x16bb): undefined reference to `yylex'
make[2]: *** [osmesa.dll] Error 1
Посмотрел поиском по contrib\sdk\sources\Mesa, например "glcpp_parser_parse" упоминается
в contrib\sdk\sources\Mesa\src\glsl\glcpp\pp.c:149 но реализации функции я не нашел.

(revision: 5176)

Re: Newlib

Posted: Thu Nov 13, 2014 11:12 am
by Serge
pascualle
Я сразу не врубился, у тебя не должен вызываться yacc/bison. Всё уже сгенерировано. Ты каким образом Mesa собираешь ?

Re: Newlib

Posted: Thu Nov 13, 2014 12:31 pm
by pascualle
Serge,

для более прозрачности привожу полный список действий:
(MinGW находится по пути c:/MinGW, contrib находится по пути d:/kolibri/contrib)

c:\MinGW\msys\1.0\msys.bat
в командной строке набираю
cd d:/kolibri/contrib/sdk/sources
export PATH=$PATH:/home/autobuild/tools/win32/bin
export PATH=$PATH:/d/kolibri/fasm
export PATH=$PATH:/d/kolibri/nasm
make