OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Среда, 18 Сентябрь, 2019 08:21

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




Начать новую тему Ответить на тему  [ Сообщений: 297 ]  На страницу Пред.  1 ... 8, 9, 10, 11, 12, 13, 14, 15  След.
Автор Сообщение
 Заголовок сообщения: Re: Перевод BlackBox под Linux
СообщениеДобавлено: Вторник, 07 Апрель, 2009 17:20 

Зарегистрирован: Вторник, 29 Ноябрь, 2005 21:41
Сообщения: 1026
Димыч писал(а):
Все ничего, но это верно для стека приложения, а не для стека библиотеки.
Без разницы совершенно. Для стека библиотеки подобную работу производит её загрузчик.
Код:
  /* Run the initializer functions of new objects.  */
  _dl_init (new, args->argc, args->argv, args->env);

и далее в функции call_init
Код:
      /* Call the function.  */
      init (argc, argv, env);

init - это как раз стартовая функция библиотеки. Не пробовали, наверное.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Перевод BlackBox под Linux
СообщениеДобавлено: Среда, 08 Апрель, 2009 16:40 
Аватара пользователя

Зарегистрирован: Среда, 29 Март, 2006 12:09
Сообщения: 495
GUEST писал(а):
init - это как раз стартовая функция библиотеки. Не пробовали, наверное.

Я все же поступил по-другому.

В модуле Init сделал процедуру
Код:
PROCEDURE InitSystem*(argc, argv: INTEGER);
и в команде сборки библиотеки libBB.so пометил модуль Init символом "#" (экспортировать из *.so).

В модуле BlackBox.c сделал прототип этой функции, с помощью функции dlsym загружаю функцию из *.so, затем вызываю с параметрами (argc, (int)argv). На всякий случай аргумент(ы) приводятся к int.

В процедуру перенесен код, располагающийся в инициализационной секции модуля Init.
Таким образом, процедура инициализации вызывается после фактической инициализации среды.
Решение, может быть не очень корректное с точки зрения Linux, но, на мой взгляд, полностью проглядываемое, нет никаких подразумеваемых вещей (типа структуры стека).

Следующее. Заставил таки я работать подсистему CDev (Dev, отвязанный от графической части).
Текстовый файл (не odc) компилируется, создаются osf, ocf-файлы.
Теперь надо делать разбор командной строки.

Если получится, то до субботы постараюсь все это выложить (на SVN в том числе), если нет, тогда примерно через неделю выложу.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Библиотека libBB.so
СообщениеДобавлено: Среда, 08 Апрель, 2009 23:21 

Зарегистрирован: Суббота, 27 Сентябрь, 2008 09:49
Сообщения: 7
Решил я собрать BlackBox.c ключом -lBB , предварительно убрав оттуда динамическую загрузку, но добавив определение функции
Код:
void InitSystem(int argv, char** argc);

и скопировав libBB.so в /lib
Так, у меня gcc выдал
Код:
/lib/../lib/libBB.so: warning: the `gets' function is dangerous and should not be used.
/usr/bin/ld: errno: TLS definition in /lib/libc.so.6 section .tbss mismatches non-TLS reference in /lib/../lib/libBB.so
/lib/libc.so.6: could not read symbols: Bad value
collect2: выполнение ld завершилось с кодом возврата 1
:?
Хотя, при использовании libdl всё идёт нормально, в чём тут проблема :?:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Перевод BlackBox под Linux
СообщениеДобавлено: Четверг, 09 Апрель, 2009 15:34 

Зарегистрирован: Понедельник, 30 Июль, 2007 10:53
Сообщения: 1538
Откуда: Беларусь, Минск
Первое, что нашёл в гугле по TLS definitioin: errno: TLS definition in /lib/libc.so.6 section .tbss mismatches


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Перевод BlackBox под Linux
СообщениеДобавлено: Пятница, 10 Апрель, 2009 18:48 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2601
Откуда: Россия, Ярославль
Почему-то давно нет обновлений в официальном репозитарии проекта. Как же кто-то сможет вам помочь, если не понятно, что уже сделано, и над чем ведутся работы.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Перевод BlackBox под Linux
СообщениеДобавлено: Среда, 22 Апрель, 2009 10:38 
Аватара пользователя

Зарегистрирован: Среда, 29 Март, 2006 12:09
Сообщения: 495
После вынужденного молчания обновил репозиторий по адресу https://svn.oberoncore.ru/community/BlackBox-Linux/

Что изменилось.
1) Внесены изменения от GUEST касаемо защиты памяти. См. модули Kernel, Libc.
2) Изменен механизм инициализации самого ББ. Вместо вызова кода Init производится вызов процедуры Init.InitSystem. Подробности в BlackBox.c
3) Изменен модуль Lin/Docu/Build-Tool.odc. Модуль Init помечен символом "#", что приводит к экспорту процедур из этого модуля в libBB.so;
4) Добавлена подсистема Gnome (она же вызывается при старте, см. Init).
5) Добавлена подсистема CDev. Пример работы CDev\Mod\Test.odc и CDev\Mod\Test.ob2
6) Добавлены файлы с лицензией, изменениями и пустой (пока) README.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Перевод BlackBox под Linux
СообщениеДобавлено: Среда, 22 Апрель, 2009 23:39 

Зарегистрирован: Вторник, 29 Ноябрь, 2005 21:41
Сообщения: 1026
После копирования библиотек pango* в /usr/lib32/ и редактирования путей в файле /usr/lib32/pango/1.6.0/module-files.d последняя сборка заработала на 64-разрядной Debian. Но трассировка по strace при этом завершается аварийно. Возможно, из-за проблем с самим strace. Если у кого-то похожая ситуация дайте знать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Перевод BlackBox под Linux
СообщениеДобавлено: Четверг, 30 Апрель, 2009 15:45 
Администратор

Зарегистрирован: Вторник, 15 Ноябрь, 2005 01:14
Сообщения: 4302
Откуда: Россия, Орёл
Обсуждение графической части: viewtopic.php?f=34&t=1538


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Перевод BlackBox под Linux
СообщениеДобавлено: Вторник, 14 Июль, 2009 08:39 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 10:37
Сообщения: 875
Откуда: Россия, Владивосток
Димыч, стандартный вопрос :wink:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Перевод BlackBox под Linux
СообщениеДобавлено: Вторник, 14 Июль, 2009 10:33 
Аватара пользователя

Зарегистрирован: Среда, 29 Март, 2006 12:09
Сообщения: 495
Иван Горячев писал(а):
Димыч, стандартный вопрос :wink:

тупо глядя на стопку стандартов
Какой именно?
:)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Перевод BlackBox под Linux
СообщениеДобавлено: Вторник, 14 Июль, 2009 19:23 
Аватара пользователя

Зарегистрирован: Среда, 29 Март, 2006 12:09
Сообщения: 495
Мой предыдущий пост был написан под гнётом убийственного чувства юмора и рабочей обстановки :)

Если говорить конкретно о том, как идут дела с переводом, то я сейчас разбираюсь со внутренностями ББ с тем, чтобы понять, как модель обработки событий GTK наложить на модель обработки сообщений ББ (1) и разбираюсь со структурой подсистемы host для тех же целей (2).

Работа была приостановлена на 2 месяца по двум причинам: сессия и отпуск.
Планировал, что будет возможность уделять время этой работе, но оказалось, что нет.

Сейчас работа возобновлена. О результатах напишу позже (приблизительно через 2 недели).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Перевод BlackBox под Linux
СообщениеДобавлено: Понедельник, 24 Август, 2009 03:23 
Аватара пользователя

Зарегистрирован: Среда, 29 Март, 2006 12:09
Сообщения: 495
Работа по переводу BlackBox на Linux переезжает на сайт http://oberonrevival.sourceforge.net.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Перевод BlackBox под Linux
СообщениеДобавлено: Воскресенье, 18 Октябрь, 2009 23:13 
Аватара пользователя

Зарегистрирован: Пятница, 25 Сентябрь, 2009 13:10
Сообщения: 1162
Откуда: Tel-Aviv
Есть ли какие-либо новости с фронта? Димыч ещё занимается переносом в Линукс или дело уже заглохло?

Хотелось бы определиться с составом проекта:
  • какие части необходимы для переноса
  • где какие имеются проблемные места
  • как распределить между собой обязанности


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

Зарегистрирован: Среда, 29 Март, 2006 12:09
Сообщения: 495
Роман М. писал(а):
Есть ли какие-либо новости с фронта? Димыч ещё занимается переносом в Линукс или дело уже заглохло?

Хотелось бы определиться с составом проекта:
  • какие части необходимы для переноса
  • где какие имеются проблемные места
  • как распределить между собой обязанности

Предыдущее сообщение в теме видели? :)
Если я скажу, что работа заглохла, это, конечно, будет неправдой. Но работа ведется значительно медленнее, чем хотелось бы. Специально для того, чтобы работой мог заниматься не только один я, и был сделан сайт. Все вопросы практического характера - туда. Welcome!


Последний раз редактировалось Димыч Понедельник, 19 Октябрь, 2009 16:08, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Перевод BlackBox под Linux
СообщениеДобавлено: Понедельник, 19 Октябрь, 2009 16:02 

Зарегистрирован: Вторник, 25 Апрель, 2006 16:21
Сообщения: 2180
Откуда: Нижний Новгород
Димыч писал(а):
Роман М. писал(а):
Есть ли какие-либо новости с фронта? Димыч ещё занимается переносом в Линукс или дело уже заглохло?

Хотелось бы определиться с составом проекта:
  • какие части необходимы для переноса
  • где какие имеются проблемные места
  • как распределить между собой обязанности

Предыдущее сообщение в теме видели? :)
Если я скажу, что работа заглохла, это, конечно, будет неправдой. Но работа ведется значительно медленнее, чем хотелось бы. Специально для того, чтобы работой мог заниматься не только один я, и был сделан сайт. Все вопросы практического характера - туда.


А куда там задавать вопросы? По ссылке форума не находится.


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

Зарегистрирован: Среда, 29 Март, 2006 12:09
Сообщения: 495
Alexey Veselovsky писал(а):
А куда там задавать вопросы? По ссылке форума не находится.
На странице разработки есть адреса списков рассылки.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Компиляция в Linux
СообщениеДобавлено: Пятница, 30 Октябрь, 2009 13:54 
Аватара пользователя

Зарегистрирован: Среда, 29 Март, 2006 12:09
Сообщения: 495
Я запустил в Linux компиляцию модулей, записанных в текстовых файлах.
Исходники выложу чуть позже, пока только описание.

Компиляция:
./BlackBox compile CDev/Mod/Test.ob2

Содержимое Test.ob2:
MODULE Test;

IMPORT
Log;

PROCEDURE Abc*();
BEGIN
Log.String("CDevTest => OK"); Log.Ln;
END Abc;

END Test;

Запуск:
./BlackBox run CDevTest.Abc
CDevTest => OK

*.odc таким образом не компилируются, надо еще думать.

Обнаружилась странная ошибка/особенность.
Переменные из *.so файла не импортируются, в частности, не импортировалась
переменная errno из <errno.h>. Пришлось передавать ее явно в Kernel и заменять вызовы Libc.errno на Kernel.errno(). Может я чего не понимаю?

(опубликовано в списке рассылки, здесь дубль)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Компиляция в Linux
СообщениеДобавлено: Воскресенье, 01 Ноябрь, 2009 11:56 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4489
Откуда: Россия, Орёл
Димыч писал(а):
Обнаружилась странная ошибка/особенность.
Переменные из *.so файла не импортируются, в частности, не импортировалась
переменная errno из <errno.h>. Пришлось передавать ее явно в Kernel и заменять вызовы Libc.errno на Kernel.errno(). Может я чего не понимаю?
Странность заключается в том, что errno с некоторых пор не просто переменная - смотрите как "оно" определено в errno.h

Дружно кидаем скалу в огород макросов.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Компиляция в Linux
СообщениеДобавлено: Воскресенье, 01 Ноябрь, 2009 12:53 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8174
Откуда: Троицк, Москва
Евгений Темиргалеев писал(а):
Дружно кидаем скалу в огород макросов.
Много мелких камней лучше, чем один большой :)

( И это не просто остроумство :) )


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Компиляция в Linux
СообщениеДобавлено: Воскресенье, 01 Ноябрь, 2009 15:13 
Аватара пользователя

Зарегистрирован: Среда, 29 Март, 2006 12:09
Сообщения: 495
Евгений Темиргалеев писал(а):
Димыч писал(а):
Обнаружилась странная ошибка/особенность.
Переменные из *.so файла не импортируются, в частности, не импортировалась
переменная errno из <errno.h>. Пришлось передавать ее явно в Kernel и заменять вызовы Libc.errno на Kernel.errno(). Может я чего не понимаю?
Странность заключается в том, что errno с некоторых пор не просто переменная - смотрите как "оно" определено в errno.h
Тем не менее, в libc.so errno присутствует...


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 297 ]  На страницу Пред.  1 ... 8, 9, 10, 11, 12, 13, 14, 15  След.

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


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

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


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

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