Newlib
-
Прошу прощения. Скомпилированная мною программа также работает. Оказалось, что рамдиск был заполнен, и бинарник копировался неполностью. Основательно все проверю позже.
ключ -fno-builtin-printf больше не нужен.
Serge
Если добавить ключ -nostdinc, то компиляция прерывается с ошибкой
Получается, что newlibc зависима от системной libc?
Если добавить ключ -nostdinc, то компиляция прерывается с ошибкой
Code: Select all
../libc/include/stdio.h:34:20: фатальная ошибка: stddef.h: Нет такого файла или каталога
Foldl
Скорее это часть компилятора, как stdarg.h и limits.h. Стандартно поставляется с gcc и не входит в исходники libc.
Скорее это часть компилятора, как stdarg.h и limits.h. Стандартно поставляется с gcc и не входит в исходники libc.
На svn лежат исходники newlib, но без makefiles. Где можно на мэйкфайлы посмотреть?
Я собираю из домашнего репозитория. Там специальный makefile. Очень много обновлено. Добавил оператор __thread, часть libsupc++ и обработчик исключений С++, загрузчик PE. К концу недели постараюсь всё залить.
Сделал Дллки. В архиве демка Cairo и набор библиотек. Для запуска необходимо
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 тоже можно паковать, но это не рекомендуется - ненужная фрагментация кучи и памяти.
- Скопировать все *.dll в папку с доступом на чтение из Колибри. Можно использовать несколько папок.
- Прописать пути в system.env Например PATH=/hd0/1/os/kolibri/shared/:/sys/lib/
Пути разделяются только двоеточиями :
Завершающий слеш / обязателен - Скопировать system.env в /rd/1/
- Скопировать libc.obj в /rd/1/lib/
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 тоже можно паковать, но это не рекомендуется - ненужная фрагментация кучи и памяти.
Очень вкусно. Но это, как я понимаю, нужно в первую очередь для тяжелых программ, или, по крайней мере, для большого количества программ, использующих одни и те же библиотеки очень плотно?
Посмотрите в сторону musl - он заметно легче, быстрее и портируемее чем newlibc - к тому же активно развивается.
Смотрите сравнение с остальными Си библиотеками http://www.etalabs.net/compare_libcs.html
По-моему идеальный вариант для философии Колибри, при полной поддержке С99 стандартов
Для портирования достаточно поменять реализацию вызовов syscall в файле arch/i386/syscall.h
Смотрите сравнение с остальными Си библиотеками http://www.etalabs.net/compare_libcs.html
По-моему идеальный вариант для философии Колибри, при полной поддержке С99 стандартов
Для портирования достаточно поменять реализацию вызовов syscall в файле arch/i386/syscall.h
XVilka
Не пойдёт. За newlib стоит RedHat и уже много лет, а это самодеятельная разработка. Таких в сети очень много, появляются и замирают, как только автору надоест. Гарантий никаких.
Не пойдёт. За newlib стоит RedHat и уже много лет, а это самодеятельная разработка. Таких в сети очень много, появляются и замирают, как только автору надоест. Гарантий никаких.
Request: очень хочу макрос fileno.
Желательно версии libc и для статической, и для динамической линковки.
Это единственный undefined reference для программы, позволяющей распаковывать iso-образы.
Желательно версии libc и для статической, и для динамической линковки.
Это единственный undefined reference для программы, позволяющей распаковывать iso-образы.
Ой, спасибо! А можно еще новый libc.obj?
Там в архиве новый.
Прошу прощения, не заметил! Спасибо большое.. Заработало
Who is online
Users browsing this forum: No registered users and 17 guests