Newlib

Discussing libraries simplifying applications development
  • 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\
    Программист не тот, кто постоянно пишет КОД, а тот кто сможет понять чужой КОД!!!
  • Artyom wrote:У меня вопрос решился копированием данного файла сюда c:\MinGW\msys\1.0\bin\
    Спасибо, только что сделал, помогло. Сообщение уже не выскакивает, появился текст с указанием версии.
  • Добавил в сборку libstdc++. Теперь есть базовый набор для разработки на С++.
    Готовые бинарники и библиотеки
  • How I can use network.obj in C with Newlib?
    I can ask in Russian if needed.
  • Ok. To make the question more general.
    How I can load a library like network.obj using the Newlib?
  • 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?
    "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
  • 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.
  • Symbol not found, is probably caused by the fact that you did not link in that elf file I told you need to assemble..
    "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
  • Maybe I'm doing it the wrong way.
  • 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?
  • Я ставил инсталлятором MinGW и Msys. Bison идёт дополнением к Msys. Тулчейн установлен в d:\MinGW\msys\1.0\home\autobuild\tools\win32
  • 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)
  • pascualle
    Я сразу не врубился, у тебя не должен вызываться yacc/bison. Всё уже сгенерировано. Ты каким образом Mesa собираешь ?
  • 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
  • Who is online

    Users browsing this forum: Yandex [Bot] and 1 guest