OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Суббота, 27 Апрель, 2024 22:08

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 163 ]  На страницу Пред.  1, 2, 3, 4, 5, 6 ... 9  След.
Автор Сообщение
 Заголовок сообщения: Re: ElfLinker
СообщениеДобавлено: Среда, 19 Октябрь, 2016 17:19 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1429
Свой, но не совсем свеженький :). Я его лет 10 назад писал, да забросил.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ElfLinker
СообщениеДобавлено: Среда, 19 Октябрь, 2016 19:35 
Аватара пользователя

Зарегистрирован: Среда, 29 Март, 2006 12:09
Сообщения: 495
Trurl писал(а):
Свой, но не совсем свеженький :). Я его лет 10 назад писал, да забросил.

Ха, мы тут копья ломаем, а у вас все уже есть ;)
Таки может выложите куда, GitHub, там, или Bitbucket? Совместными усилиями доведем до ума, FreeBSD починим да Linux-версию, наконец, native сделаем?
На полноценный новый компоновщик у меня нет сил и времени, а вот доводить до ума работающий вполне могу помочь.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ElfLinker
СообщениеДобавлено: Среда, 19 Октябрь, 2016 22:51 
Аватара пользователя

Зарегистрирован: Воскресенье, 12 Апрель, 2015 18:12
Сообщения: 1134
Откуда: СССР v2.0 rc 1
Если вариант дл Linux починить это будет супер. Тут многие будут пищать от счастья.))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ElfLinker
СообщениеДобавлено: Четверг, 20 Октябрь, 2016 04:38 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3778
prospero78 писал(а):
Если вариант дл Linux починить это будет супер. Тут многие будут пищать от счастья.))

BlackBox работает с сишным загрузчиком в общем отлично. Просто это не очень элегантно. Но, конечно, интересно будет, если дело будет развиваться дальше.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ElfLinker
СообщениеДобавлено: Суббота, 22 Октябрь, 2016 14:44 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1429
Да, самомоу блэкбоксу линкер и не нужен. Он будет полезен при использовании ББ в качесиве IDE.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ElfLinker
СообщениеДобавлено: Вторник, 25 Октябрь, 2016 09:30 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1429
Чертовщина какая то. На выходных попробовал - не работает. В очень старых версиях линукса все работает, а в новых выдает ошибку: неверный формат файла. Причем, objdump и readelf показывают все нормально, IDA тоже все дизассемблирует, статически линкованные и сошки работают. Какой-то мелкий противный баг.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ElfLinker
СообщениеДобавлено: Вторник, 25 Октябрь, 2016 10:57 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Trurl писал(а):
Какой-то мелкий противный баг.
Из сложения мелких противностей рождается меганенависть.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ElfLinker
СообщениеДобавлено: Вторник, 25 Октябрь, 2016 11:24 
Аватара пользователя

Зарегистрирован: Среда, 29 Март, 2006 12:09
Сообщения: 495
Trurl писал(а):
Чертовщина какая то. На выходных попробовал - не работает. В очень старых версиях линукса все работает, а в новых выдает ошибку: неверный формат файла. Причем, objdump и readelf показывают все нормально, IDA тоже все дизассемблирует, статически линкованные и сошки работают. Какой-то мелкий противный баг.

Может опубликуете что есть, совместными усилиями поправим?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ElfLinker
СообщениеДобавлено: Вторник, 25 Октябрь, 2016 11:55 

Зарегистрирован: Вторник, 29 Ноябрь, 2005 21:41
Сообщения: 1030
Info21 писал(а):
Trurl писал(а):
Какой-то мелкий противный баг.
Из сложения мелких противностей рождается меганенависть.

Надо себя беречь, однако.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ElfLinker
СообщениеДобавлено: Вторник, 25 Октябрь, 2016 21:12 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1429
Отловил-таки я его. :evil:
Вот. Отдаю в добрые руки.
Вложение:
bb_lnk_2.zip [34.89 КБ]
Скачиваний: 216

Допиливать и перепиливать там ещё прилично, но работает. Умееет линковать Elf и PE (ресурсы не умеет). Автоматически загружает импортированные модули.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ElfLinker
СообщениеДобавлено: Среда, 26 Октябрь, 2016 10:26 
Аватара пользователя

Зарегистрирован: Среда, 29 Март, 2006 12:09
Сообщения: 495
Trurl писал(а):
Отловил-таки я его. :evil:
Вот. Отдаю в добрые руки.
Вложение:
bb_lnk_2.zip

Допиливать и перепиливать там ещё прилично, но работает. Умееет линковать Elf и PE (ресурсы не умеет). Автоматически загружает импортированные модули.

Очень аккуратно написано, хороший код, спасибо.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ElfLinker
СообщениеДобавлено: Среда, 26 Октябрь, 2016 19:06 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1429
Там в LnkWriteElf_Got.odc версия с линковкой через GOT. Написано несколько сумбурно, но работает. А в некоторых версиях линукса только этот вариант и пригоден. Чтобы подключить, надо раскомментировать строку в LnkBase.Init.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ElfLinker
СообщениеДобавлено: Суббота, 29 Октябрь, 2016 19:28 
Аватара пользователя

Зарегистрирован: Среда, 29 Март, 2006 12:09
Сообщения: 495
Trurl писал(а):
Там в LnkWriteElf_Got.odc версия с линковкой через GOT. Написано несколько сумбурно, но работает. А в некоторых версиях линукса только этот вариант и пригоден. Чтобы подключить, надо раскомментировать строку в LnkBase.Init.

Так, сборка статического и динамического ELF файла прошла успешно, все заработало с первого раза.

Что касается сборки ELF-версии BB, не очень понятно, какие модули Kernel и LinFiles используются, какие брали вы.
Если можете, поясните, пожалуйста!
Для процедур NewRec и NewArr задаются конкретные значения Fingerprint, это значит, что они привязаны к какому-то модулю.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ElfLinker
СообщениеДобавлено: Суббота, 29 Октябрь, 2016 21:15 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1429
До сборки рабочего BB у меня дело не дошло. Насколько помню, некоторые функции из libc отказывались работать. Возможно, из-зв неправильной инициализации библиотеки.

Fingerprint не зависит от модуля, только от сигнатуры процедуры. Но при переходе от 1.5 к 1.6 поменялся алгоритм подсчета, так что зависит и от компилятора.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ElfLinker
СообщениеДобавлено: Суббота, 29 Октябрь, 2016 21:24 
Аватара пользователя

Зарегистрирован: Среда, 29 Март, 2006 12:09
Сообщения: 495
Trurl писал(а):
До сборки рабочего BB у меня дело не дошло. Насколько помню, некоторые функции из libc отказывались работать. Возможно, из-зв неправильной инициализации библиотеки.

Fingerprint не зависит от модуля, только от сигнатуры процедуры. Но при переходе от 1.5 к 1.6 поменялся алгоритм подсчета, так что зависит и от компилятора.

В общем да, сборка ББ не пошла.
Но все-равно, правильно работает сборка статических файлов, а это уже очень и очень круто.

Кроме того, обнаружилась и другая трудность.
Kernel, который сейчас есть в наличии, сильно отличается от того (Lin)Kernel, который был у Ominc.
Так что, наверное, придется начинать с сильно урезанной версии (Win)Kernel и дорабатывать компоновку BB. Хотя, за основу можно будет взять DevElfLinker, думаю так.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ElfLinker
СообщениеДобавлено: Понедельник, 31 Октябрь, 2016 10:36 
Аватара пользователя

Зарегистрирован: Среда, 29 Март, 2006 12:09
Сообщения: 495
Немного странно, что Kernel как-то по другому обрабатывается, не как другие модули.
Видимо из-за процедур NewRec/NewArr.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ElfLinker
СообщениеДобавлено: Понедельник, 31 Октябрь, 2016 10:44 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1429
Вот с этим загружает Init. Но вообще Libc надо подгонять под систему.


Вложения:
Mod.zip [38.93 КБ]
Скачиваний: 202
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ElfLinker
СообщениеДобавлено: Понедельник, 31 Октябрь, 2016 11:01 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1429
Первые две ссылки в любом модуле - NewRec и NewArr. Они есть всегда, но если нет NEW, то они пустые. А если NEW есть, то Kernel может явно и не импортироваться. Поэтому и обрабатываются отдельно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ElfLinker
СообщениеДобавлено: Понедельник, 31 Октябрь, 2016 12:11 
Аватара пользователя

Зарегистрирован: Среда, 29 Март, 2006 12:09
Сообщения: 495
Trurl писал(а):
Вот с этим загружает Init. Но вообще Libc надо подгонять под систему.

BlackBoxElf стабильно трапит, даже с этими модулями.
Какая последовательность вызовов для сборки?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ElfLinker
СообщениеДобавлено: Понедельник, 31 Октябрь, 2016 12:41 
Аватара пользователя

Зарегистрирован: Среда, 29 Март, 2006 12:09
Сообщения: 495
Так, коллеги, заработало!

BB собирается нативно на Линуксе!

Trurl, браво за проделанную работу!!!


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 163 ]  На страницу Пред.  1, 2, 3, 4, 5, 6 ... 9  След.

Часовой пояс: UTC + 3 часа


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

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


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

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB