Page 3 of 16
Re: Newlib
Posted: Sat Nov 27, 2010 12:20 am
by Foldl
Прошу прощения. Скомпилированная мною программа также работает. Оказалось, что рамдиск был заполнен, и бинарник копировался неполностью. Основательно все проверю позже.
Re: Newlib
Posted: Sat Nov 27, 2010 1:53 am
by Serge
ключ -fno-builtin-printf больше не нужен.
Re: Newlib
Posted: Wed Dec 01, 2010 12:26 am
by Foldl
Serge
Если добавить ключ -nostdinc, то компиляция прерывается с ошибкой
Code: Select all
../libc/include/stdio.h:34:20: фатальная ошибка: stddef.h: Нет такого файла или каталога
Получается, что newlibc зависима от системной libc?
Re: Newlib
Posted: Wed Dec 01, 2010 10:23 pm
by Serge
Foldl
Скорее это часть компилятора, как stdarg.h и limits.h. Стандартно поставляется с gcc и не входит в исходники libc.
Re: Newlib
Posted: Wed Mar 09, 2011 12:42 pm
by SoUrcerer
На svn лежат исходники newlib, но без makefiles. Где можно на мэйкфайлы посмотреть?
Re: Newlib
Posted: Wed Mar 09, 2011 1:06 pm
by Serge
Я собираю из домашнего репозитория. Там специальный makefile. Очень много обновлено. Добавил оператор __thread, часть libsupc++ и обработчик исключений С++, загрузчик PE. К концу недели постараюсь всё залить.
Re: Newlib
Posted: Sat Mar 12, 2011 12:29 pm
by Serge
Сделал
Дллки. В архиве демка 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 тоже можно паковать, но это не рекомендуется - ненужная фрагментация кучи и памяти.
Re: Newlib
Posted: Mon Mar 14, 2011 12:32 pm
by SoUrcerer
Очень вкусно. Но это, как я понимаю, нужно в первую очередь для тяжелых программ, или, по крайней мере, для большого количества программ, использующих одни и те же библиотеки очень плотно?
Re: Newlib
Posted: Fri Mar 18, 2011 11:56 pm
by XVilka
Посмотрите в сторону musl - он заметно легче, быстрее и портируемее чем newlibc - к тому же активно развивается.
Смотрите сравнение с остальными Си библиотеками
http://www.etalabs.net/compare_libcs.html
По-моему идеальный вариант для философии Колибри, при полной поддержке С99 стандартов
Для портирования достаточно поменять реализацию вызовов syscall в файле arch/i386/syscall.h
Re: Newlib
Posted: Sat Mar 19, 2011 11:06 am
by Serge
XVilka
Не пойдёт. За newlib стоит RedHat и уже много лет, а это самодеятельная разработка. Таких в сети очень много, появляются и замирают, как только автору надоест. Гарантий никаких.
Re: Newlib
Posted: Thu Mar 31, 2011 9:53 pm
by SoUrcerer
Request: очень хочу макрос fileno.
Желательно версии libc и для статической, и для динамической линковки.
Это единственный undefined reference для программы, позволяющей распаковывать iso-образы.
Re: Newlib
Posted: Thu Mar 31, 2011 10:22 pm
by Serge
Re: Newlib
Posted: Thu Mar 31, 2011 10:42 pm
by SoUrcerer
Ой, спасибо! А можно еще новый libc.obj?
Re: Newlib
Posted: Thu Mar 31, 2011 10:51 pm
by Serge
Там в архиве новый.
Re: Newlib
Posted: Thu Mar 31, 2011 11:03 pm
by SoUrcerer