Board.KolibriOS.org
http://board.kolibrios.org/

Newlib
http://board.kolibrios.org/viewtopic.php?f=24&t=1587
Page 3 of 16

Author:  Foldl [ Sat Nov 27, 2010 12:20 am ]
Post subject:  Re: Newlib

Прошу прощения. Скомпилированная мною программа также работает. Оказалось, что рамдиск был заполнен, и бинарник копировался неполностью. Основательно все проверю позже.

Author:  Serge [ Sat Nov 27, 2010 1:53 am ]
Post subject:  Re: Newlib

ключ -fno-builtin-printf больше не нужен.

Author:  Foldl [ Wed Dec 01, 2010 12:26 am ]
Post subject:  Re: Newlib

Serge

Если добавить ключ -nostdinc, то компиляция прерывается с ошибкой
Code:
../libc/include/stdio.h:34:20: фатальная ошибка: stddef.h: Нет такого файла или каталога

Получается, что newlibc зависима от системной libc?

Author:  Serge [ Wed Dec 01, 2010 10:23 pm ]
Post subject:  Re: Newlib

Foldl

Скорее это часть компилятора, как stdarg.h и limits.h. Стандартно поставляется с gcc и не входит в исходники libc.

Author:  SoUrcerer [ Wed Mar 09, 2011 12:42 pm ]
Post subject:  Re: Newlib

На svn лежат исходники newlib, но без makefiles. Где можно на мэйкфайлы посмотреть?

Author:  Serge [ Wed Mar 09, 2011 1:06 pm ]
Post subject:  Re: Newlib

Я собираю из домашнего репозитория. Там специальный makefile. Очень много обновлено. Добавил оператор __thread, часть libsupc++ и обработчик исключений С++, загрузчик PE. К концу недели постараюсь всё залить.

Author:  Serge [ Sat Mar 12, 2011 12:29 pm ]
Post subject:  Re: Newlib

Сделал Дллки. В архиве демка Cairo и набор библиотек. Для запуска необходимо
  • Скопировать все *.dll в папку с доступом на чтение из Колибри. Можно использовать несколько папок.
  • Прописать пути в system.env Например PATH=/hd0/1/os/kolibri/shared/:/sys/lib/
    Пути разделяются только двоеточиями :
    Завершающий слеш / обязателен
  • Скопировать system.env в /rd/1/
  • Скопировать libc.obj в /rd/1/lib/

Библиотеки импорта и скрипты для ld - pe_app.lds для приложений и dll.lds для dll соответственно.

DLL линкуется
ld -nostdlib -shared -s -T dll.lds --image-base 0 --out-implib my_dllimp.a -o my_dll.dll $(OBJECTS) libamz.a <import libraries> <my_dll.def>

Приложение линкуется
ld -nostdlib -pie -s -T pe_app.lds --image-base 0 --stack 0x100000 -o my_app.exe $(OBJECTS) libamz.a libcimp.a <import libraries>
Помещается в контейнер
fasm demo.asm my_app и пакуется для полного счастья kpack. DLL тоже можно паковать, но это не рекомендуется - ненужная фрагментация кучи и памяти.

Author:  SoUrcerer [ Mon Mar 14, 2011 12:32 pm ]
Post subject:  Re: Newlib

Очень вкусно. Но это, как я понимаю, нужно в первую очередь для тяжелых программ, или, по крайней мере, для большого количества программ, использующих одни и те же библиотеки очень плотно?

Author:  XVilka [ Fri Mar 18, 2011 11:56 pm ]
Post subject:  Re: Newlib

Посмотрите в сторону musl - он заметно легче, быстрее и портируемее чем newlibc - к тому же активно развивается.
Смотрите сравнение с остальными Си библиотеками http://www.etalabs.net/compare_libcs.html

По-моему идеальный вариант для философии Колибри, при полной поддержке С99 стандартов

Для портирования достаточно поменять реализацию вызовов syscall в файле arch/i386/syscall.h

Author:  Serge [ Sat Mar 19, 2011 11:06 am ]
Post subject:  Re: Newlib

XVilka

Не пойдёт. За newlib стоит RedHat и уже много лет, а это самодеятельная разработка. Таких в сети очень много, появляются и замирают, как только автору надоест. Гарантий никаких.

Author:  SoUrcerer [ Thu Mar 31, 2011 9:53 pm ]
Post subject:  Re: Newlib

Request: очень хочу макрос fileno.
Желательно версии libc и для статической, и для динамической линковки.
Это единственный undefined reference для программы, позволяющей распаковывать iso-образы.

Author:  Serge [ Thu Mar 31, 2011 10:22 pm ]
Post subject:  Re: Newlib

http://kolibri-pe.googlecode.com/files/newlib.7z

Author:  SoUrcerer [ Thu Mar 31, 2011 10:42 pm ]
Post subject:  Re: Newlib

Ой, спасибо! А можно еще новый libc.obj?

Author:  Serge [ Thu Mar 31, 2011 10:51 pm ]
Post subject:  Re: Newlib

Там в архиве новый.

Author:  SoUrcerer [ Thu Mar 31, 2011 11:03 pm ]
Post subject:  Re: Newlib

Прошу прощения, не заметил! Спасибо большое.. Заработало :lol: :P :D

Page 3 of 16 All times are UTC+03:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/