Page 10 of 16

Re: Newlib

Posted: Sat Aug 02, 2014 4:03 pm
by pascualle
Serge,
дополнение
просто подменив libc.dll -- Fplay работает
создал "песочницу", на отдельном диске для чистоты эксперимента -- Fplay работает

теперь нужно собрать Fplay, используя исходники newlib

Re: Newlib

Posted: Sun Aug 03, 2014 12:16 am
by Serge
pascualle
Объявление есть в fplay.h, конечно надо перенести в kos32sys.h. Функция обязательна при создании потоков, использующих функции newlib.
int create_thread(int (*proc)(void *param), void *param, int stack_size);
...какой мне пример для изучения брать лучше?
Если это игровой движок, смотри исходники Doom: i_sound.c s_sound.c функции I_UpdateSound() S_Init() sound_proc().
Spoiler:Doom собирался OpenWatcom с ваткомовской же CLib, поэтому есть расхождения в именах функций.

Re: Newlib

Posted: Tue Aug 05, 2014 2:40 am
by pascualle
Serge,
осваиваю звук, newlib содержит файл kolibri\contrib\sdk\sources\newlib\libc\include\sound.h, но не содержит ни obj-файла, ни lib-файла, ни исходника, реализующего функционал. Приходит на мысль, что реализация находится по пути (svn)/programs/develop/sdk/trunk/sound/src. Так ли это?

update:
спасибо!

Re: Newlib

Posted: Thu Aug 07, 2014 2:48 pm
by Serge
pascualle
Сделал мейкфайлы, смотри последние коммиты на svn

Re: Newlib

Posted: Sat Aug 09, 2014 12:33 am
by pascualle
Serge,
Проверил работоспособность newlib, sdk, fplay

библиотека render
обнаружено две опечатки, исправил
contrib\sdk\sources\render\render.c

библиотека pixman
не правильно формируется имя библиотеки, нужно переименовать pixlib.dll.a --> libpixlib.dll.a
переименовал вручную

fplay работает

Все исправления, отчет о работе и бинарники здесь:
https://bitbucket.org/pascualle/tengine ... 080814.zip
(доступ временный, скачай пожалуйста)

очень надеюсь увидеть новую newlib в дистрибутиве kolibrios

Re: Newlib

Posted: Sat Aug 09, 2014 9:22 am
by Mario_r4
pascualle wrote:очень надеюсь увидеть новую newlib в дистрибутиве kolibrios
В ISO образ можно размещать почти все, но вот в IMG образ класть тяжелые ЯВУ библиотеки не стоит, там и так места впритык.

Re: Newlib

Posted: Sat Aug 09, 2014 10:28 am
by Unusual
Удалить тяжелые игры, демки, 3D и появиться относительно много места для нужных вещей.

Re: Newlib

Posted: Sat Aug 09, 2014 12:18 pm
by Mario_r4
Unusual wrote:Удалить тяжелые игры, демки, 3D и появиться относительно много места для нужных вещей.
На самом деле все тяжелые "игры, демки, 3D" уже давно удалены. То что осталось "тяжелого" потянет на 150 КБ, а если удалить все то для 80-90% тех кто хоть раз запускает систему она вообще потеряет интерес.

Re: Newlib

Posted: Sat Aug 09, 2014 12:49 pm
by pascualle
Сейчас необходимая для запуска newlib-based программ libc.dll весит 232кБ.
Много это или мало -- решать не мне, но я знаю точно, что поддержка ЯВУ привлекает разработчиков прикладных программ, что в свою очередь популяризирует операционную систему.

В данном случае речь идет о с/с++, потому надо канонизировать единую библиотеку и включить ее в дистрибутив IMG, все это сделает мир чуточку светлее, поверьте мне.

Re: Newlib

Posted: Sat Aug 09, 2014 1:37 pm
by Serge
Если упаковать будет 95Кб, но одной libc мало. Всё равно нужен дистрибутив с установщиком на диск.

Re: Newlib

Posted: Sun Aug 10, 2014 1:20 am
by Mario_r4
pascualle wrote:В данном случае речь идет о с/с++, потому надо канонизировать единую библиотеку и включить ее в дистрибутив IMG, все это сделает мир чуточку светлее, поверьте мне.
Торвальдс об Упячке ЦэПласПлас:
http://harmful.cat-v.org/software/c++/linus
Подробности на русском:
https://toster.ru/q/27307
Spoiler:Мир уже наполнен говном, в нем нет места свету.

Re: Newlib

Posted: Sun Aug 10, 2014 5:11 pm
by pascualle
Mario_r4,
довольно странны слова твои, как по мне, похоже на какое-то агрессивное православие (с)

Хочу заметить, что мы находимся в ветке "Проекты » Прикладные библиотеки", это автоматически означает, что никто не зарится на целостность и принципы операционной системы kolibriOS. С другой стороны, ни для кого не секрет, что только прикладные программы делают операционную систему популярной. Логично, что разработчики тоже должны разделяться на две группы.
Первая группа -- kernel-разработчики, довольно закрытое сообщество, бдящие принципы операционной системы. Тут все понятно, ядро должно быть стабильным, неубиваемым и быстрым. Здесь четко определен язык разработки, стиль кода, критерии приемки и т.д.
Вторая группа -- разработчики прикладных программ. Единственное что их связывает -- операционная система. Никто не в праве запретить разработчику этой группы на чем писать и как писать, ибо прикладная программа пишется для пользователей. Только пользователи решают -- будут они пользоваться этой программой, или же сочтут ее как не соответствующей их потребностям. Чем больше языков программирования поддерживается операционной системой -- тем она более привлекательнее для разработчиков.

Теперь о с/с++. Я сам многие годы пишу на с и на с++, четко их разделяя. Мое мнение простое: каждому инструменту -- свое применение.

Posted: Sun Aug 10, 2014 5:58 pm
by punk_joker
Прикладные программисты, если они пишут программу с нуля, также должны пытаться сделать ее максимально менее требовательной к ресурсам компьютера и быстрой в работе.

Re: Newlib

Posted: Mon Aug 11, 2014 1:52 am
by Mario_r4
pascualle wrote:Mario_r4,
довольно странны слова твои, как по мне, похоже на какое-то агрессивное православие (с)
Это не православие - это у меня FASM. Заболевание неизлечимое, ну, разве что совсем бросить программировать.
Насчет инструментов мог бы и согласиться, но "... широк человек, слишком даже широк, я бы сузил."

З.Ы. Не надо понимать мои слова превратно. В проекте никто никому не запрещает пользоваться чем душе угодно. Однако стремление к оптимизации кода, в том числе за счет используемых инструментов, очень приветствуется.

Re: Newlib

Posted: Wed Aug 27, 2014 10:49 pm
by pascualle
Обновились кросскомпиляторы от Serge.

Инструкция по установке не поменялась, находится здесь (пункты "Установка toolchain" и "Установка libc", обновить (root)/contrib/sdk/sources/newlib)

В дистрибутиве "25 авг 2014" находится более старая и не совместимая с текущим транком newlib библиотека libc.dll, так что после сборки приложения нужно подменить старую библиотеку на новую (или воспользоваться функционалом "searchapp")

p.s. Serge как всегда спасибо и почет!