Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Вт сен 26, 2017 8:38 am

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 20 сообщений ]  На страницу 1 2 След.
Автор Сообщение
 Заголовок сообщения: Либы на ЯВУ
СообщениеДобавлено: Пт сен 24, 2010 9:50 pm 
Serge писал(а):
А вот писать на асме обычный код имхо тратить время впустую.

Ну, проект ведь сугубо добровольный и даже выбор инструментов сугубо добровольный. Однако к сожалению под саму Колибри ничего нет кроме Fasm (великого и могучего как Русский язык). Так что в данный момент и обсуждать в этом плане относительно Колибри бессмысленно. Все что не может быть скомпилировано в самой ОС - навязывает зависимость от сторонних программ и систем.


Вернуться к началу
   
 Заголовок сообщения: Re: Fast Fourier Transform
СообщениеДобавлено: Сб сен 25, 2010 12:26 am 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3928
Mario

С этим тоже согласен. Попробую как нибудь собрать gcc для Колибри. Тогда не отвертитесь :D


Вернуться к началу
 Заголовок сообщения: Re: Fast Fourier Transform
СообщениеДобавлено: Сб сен 25, 2010 1:28 am 
Serge
А че не отвертитесь то? Я бы рад был получить библиотеку распаковки Видео и Звука. Если бы это была работа уровня распаковки картинок как в zSea, то видеоплеер был бы не за горами, даже учитывая что пишу на ассемблере. А уж как работать с RAW данными кодом на ассемблере - это я умею. :lol:

К тому же работа будет считаться 100% зачтенной лишь в случае, если собранный GCC соберет себя сам под Колибри, как в свое время FASM собрал себя сам у Томаша (не под Колибри и не под Menuet было дело правда, хотя хз каким путем Вилле портировал).


Вернуться к началу
   
 Заголовок сообщения: Re: Fast Fourier Transform
СообщениеДобавлено: Сб сен 25, 2010 11:30 am 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3928
Mario

Так есть оно все. И mpg123 и ffpmeg. Первый в PE DLL, вторые пока в обычной либе для статической компоновки. C ffmpeg проблема в том что нормально он работает только в виде DLL. Под винду статику уже давно не выкладывают. Сделал специальный лаунчер чтобы запускать PE приложения с прилинковкой DLL. Всё работает в usermode. Но теперь в Колибри библиотеки расшарены и такой вариант проигрывает по расходу памяти. Хотя у многих сейчас памяти больше, чем может использовать ядро.


Вернуться к началу
 Заголовок сообщения: Re: Fast Fourier Transform
СообщениеДобавлено: Сб сен 25, 2010 12:28 pm 
Serge
Статические для меня лично не удобны не тем, что их приходится ликовать при компиляции, а FASM это не кушает. :oops: Столкнулся этим при прикручивании OpenDialog к kpack - код под Tasm я переписал на Fasm, а вот со статической библиотекой упаковки LZMA облом. Была мысль "линковать" через опцию file, но как оказалось сама библиотека LIB имеет хитрую структуру и при линковке в Tasm значительно модернизируется. Все хитрости относительно LIB я узнал у diamond'a через мессенджер.

В общем при любом раскладе мне нужно получить используемый в Колибри MS COFF OBJ для работы с ним в Fasm и было бы здорово придумать и отладить универсальную и достаточной простую методику получения. Или в текущем яре есть возможность загружать не только MS COFF OBJ? Позиция по этому вопросу не принципиальная, лишь бы была возможность простого вызова из приложения.


Вернуться к началу
   
 Заголовок сообщения: Re: Fast Fourier Transform
СообщениеДобавлено: Сб сен 25, 2010 12:53 pm 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3928
Mario

Дохлый номер. В больших библиотеках тысячи файлов. Часто пишут так что одна функция - один файл и соответственно один *.obj. Не случайно компоновщики несколько сот килибайт занимают и памяти требуют много. Вообще идея использовать COFF.obj для длл была крайне неудачной. Надо было сразу делать PE. А все это дурацкое общее стремление сэкономить пару байт. Теперь оно выходит боком. С одной стороны DLL вроде и есть и даже расшарены, а с другой попробуй скомпилируй freetype, ffmpeg или mesa в один файл.


Вернуться к началу
 Заголовок сообщения: Re: Fast Fourier Transform
СообщениеДобавлено: Сб сен 25, 2010 2:22 pm 
Serge
Но ведь есть утилиты которые собирают LIB из OBJ - неужели нельзя написать обратную процедуру, чтобы распотрошила LIB на кучу OBJ?


Вернуться к началу
   
 Заголовок сообщения: Re: Fast Fourier Transform
СообщениеДобавлено: Сб сен 25, 2010 4:41 pm 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3928
Mario

Те же самые утилиты и потрошат. Это ведь архив. ar -x имя_библиотеки. Извлекает все объекты. Только их там сотни и между ними прекрёстные ссылки. Один тянет за собой десяток других. Вот для примера список объектов в libavcodec.a


Вложения:
libavcodec.txt [3.48 КБ]
117 скачиваний
Вернуться к началу
 Заголовок сообщения: Re: Fast Fourier Transform
СообщениеДобавлено: Сб сен 25, 2010 6:20 pm 
Serge
Т.е. линковщик эти самые перекрестные связи анализирует и оставляет только нужные?


Вернуться к началу
   
 Заголовок сообщения: Re: Fast Fourier Transform
СообщениеДобавлено: Сб сен 25, 2010 8:24 pm 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3928
Mario

Да. Строятся списки имён переменных и функций по всем объектным файлам и дерево зависимостей. Если на переменные и функции из объектного файла нет ссылок он не включается в конечную программу. Eщё проводится масса различных оптимизаций. Последние версии компоновщиков вообще сами генерируют окончательный код (Link-time code generation). Компилятор создаёт промежуточный псевдокод для программы и библиотечных функций из которого компоновщик собирает программу. Bochs после такой компиляции получается процентов на 20 меньше и заметно быстрее.


Вернуться к началу
 Заголовок сообщения: Re: Либы на ЯВУ
СообщениеДобавлено: Вт сен 28, 2010 9:39 am 
Serge
Вопрос тогда такой: те OBJ которые в LIB - они имеют формат подобный Колибри OBJ или отличаются, т.е. их нельзя загрузить и использовать в Колибри без переделки?


Вернуться к началу
   
 Заголовок сообщения: Re: Либы на ЯВУ
СообщениеДобавлено: Вт сен 28, 2010 10:20 am 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3928
Если там MS COFF то формат файла совпадает. Но в библиотеке Колибри должна быть самодельная таблица экспорта и метка EXPORTS. Без неё импорт из библиотеки невозможен.


Вернуться к началу
 Заголовок сообщения: Re: Либы на ЯВУ
СообщениеДобавлено: Вт сен 28, 2010 3:13 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Чт мар 01, 2007 4:16 pm
Сообщения: 426
> мне нужно получить используемый в Колибри MS COFF OBJ
diamond же сделал утиль по конвертации DLL в OBJ, чуть ли не по моей просьбе (kex, без сорцев). Работает, я проверял. Костыль конечно, но лучше чем ничего.

..bw


Вернуться к началу
 Заголовок сообщения: Re: Либы на ЯВУ
СообщениеДобавлено: Вт сен 28, 2010 3:40 pm 
DLL в OBJ это конечно замечательно, но мне в конкретном случае надо kpack доковырять с уже имеющейся LIB библиотекой. :?
Спасибо за сведения - в любом случае пригодится.


Вернуться к началу
   
 Заголовок сообщения: Re: Fast Fourier Transform
СообщениеДобавлено: Чт сен 30, 2010 6:43 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пт июн 27, 2008 3:22 pm
Сообщения: 974
Serge писал(а):
Вообще идея использовать COFF.obj для длл была крайне неудачной. Надо было сразу делать PE.


Надеюсь к драйверам это отношения не имеет.


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 20 сообщений ]  На страницу 1 2 След.

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB