Board.KolibriOS.org

Official KolibriOS board
It is currently Wed Dec 11, 2019 12:17 am

All times are UTC+03:00




Post new topic  Reply to topic  [ 226 posts ]  Go to page Previous 1 2 3 4 516 Next
Author Message
 Post subject: Re: Newlib
PostPosted: Sat Nov 27, 2010 12:20 am 
Offline

Joined: Thu Nov 25, 2010 8:26 pm
Posts: 41
Прошу прощения. Скомпилированная мною программа также работает. Оказалось, что рамдиск был заполнен, и бинарник копировался неполностью. Основательно все проверю позже.


Top
   
 Post subject: Re: Newlib
PostPosted: Sat Nov 27, 2010 1:53 am 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
ключ -fno-builtin-printf больше не нужен.


Top
   
 Post subject: Re: Newlib
PostPosted: Wed Dec 01, 2010 12:26 am 
Offline

Joined: Thu Nov 25, 2010 8:26 pm
Posts: 41
Serge

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

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


Top
   
 Post subject: Re: Newlib
PostPosted: Wed Dec 01, 2010 10:23 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Foldl

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


Top
   
 Post subject: Re: Newlib
PostPosted: Wed Mar 09, 2011 12:42 pm 
Offline

Joined: Mon Sep 24, 2007 11:11 am
Posts: 2814
На svn лежат исходники newlib, но без makefiles. Где можно на мэйкфайлы посмотреть?


Top
   
 Post subject: Re: Newlib
PostPosted: Wed Mar 09, 2011 1:06 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Я собираю из домашнего репозитория. Там специальный makefile. Очень много обновлено. Добавил оператор __thread, часть libsupc++ и обработчик исключений С++, загрузчик PE. К концу недели постараюсь всё залить.


Top
   
 Post subject: Re: Newlib
PostPosted: Sat Mar 12, 2011 12:29 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Сделал Дллки. В архиве демка 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 тоже можно паковать, но это не рекомендуется - ненужная фрагментация кучи и памяти.


Top
   
 Post subject: Re: Newlib
PostPosted: Mon Mar 14, 2011 12:32 pm 
Offline

Joined: Mon Sep 24, 2007 11:11 am
Posts: 2814
Очень вкусно. Но это, как я понимаю, нужно в первую очередь для тяжелых программ, или, по крайней мере, для большого количества программ, использующих одни и те же библиотеки очень плотно?


Top
   
 Post subject: Re: Newlib
PostPosted: Fri Mar 18, 2011 11:56 pm 
Offline
User avatar

Joined: Tue Aug 25, 2009 4:45 pm
Posts: 796
Посмотрите в сторону musl - он заметно легче, быстрее и портируемее чем newlibc - к тому же активно развивается.
Смотрите сравнение с остальными Си библиотеками http://www.etalabs.net/compare_libcs.html

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

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


Top
   
 Post subject: Re: Newlib
PostPosted: Sat Mar 19, 2011 11:06 am 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
XVilka

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


Top
   
 Post subject: Re: Newlib
PostPosted: Thu Mar 31, 2011 9:53 pm 
Offline

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


Top
   
 Post subject: Re: Newlib
PostPosted: Thu Mar 31, 2011 10:22 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
http://kolibri-pe.googlecode.com/files/newlib.7z


Top
   
 Post subject: Re: Newlib
PostPosted: Thu Mar 31, 2011 10:42 pm 
Offline

Joined: Mon Sep 24, 2007 11:11 am
Posts: 2814
Ой, спасибо! А можно еще новый libc.obj?


Top
   
 Post subject: Re: Newlib
PostPosted: Thu Mar 31, 2011 10:51 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Там в архиве новый.


Top
   
 Post subject: Re: Newlib
PostPosted: Thu Mar 31, 2011 11:03 pm 
Offline

Joined: Mon Sep 24, 2007 11:11 am
Posts: 2814
Прошу прощения, не заметил! Спасибо большое.. Заработало :lol: :P :D


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 226 posts ]  Go to page Previous 1 2 3 4 516 Next

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited