Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Вс дек 16, 2018 4:04 pm

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




Начать новую тему  Ответить на тему  [ 52 сообщения ]  На страницу Пред. 1 2 3 4
Автор Сообщение
 Заголовок сообщения: Re: FreePascal
СообщениеДобавлено: Пт июл 22, 2011 12:54 am 
Не в сети
Аватара пользователя

Зарегистрирован: Чт мар 01, 2007 4:16 pm
Сообщения: 426
> после заголовка километровое пустое место идет
Ну как я и обещал, какая-то секция, возможно стэк. Хотя могу врать, забыл всё нахрен.

Про файлы. В играх есть lrl. В develop/fp/media есть fliplay.
И не бойся лазить по исходникам :-).

..bw


Вернуться к началу
 Заголовок сообщения: Re: FreePascal
СообщениеДобавлено: Пт июл 22, 2011 7:26 am 
Для стека как показывает практика достаточно 4 кб (по крайней мере для ассемблерных программ) и размещается он за пределами бинарника. Получается с данными в программе, либо с кодом в компиляторе, либо с кодом в преобразователе что-то не то.


Вернуться к началу
   
 Заголовок сообщения: Re: FreePascal
СообщениеДобавлено: Сб июл 30, 2011 3:07 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Ср фев 23, 2011 5:11 pm
Сообщения: 14
Кому лень искать, я нагуглил исходники 2.2.0

http://ignum.dl.sourceforge.net/project/lazarus/Lazarus%20Zip%20_%20GZip/Old%20releases/Lazarus%200.9.24/fpc-2.2.0.source.tar.gz

Сам FPC потом куданить сброшу.

_________________
Нуб обыкновенный
Изображение


Вернуться к началу
 Заголовок сообщения: Re: FreePascal
СообщениеДобавлено: Ср сен 26, 2018 7:22 pm 
Не в сети

Зарегистрирован: Вт мар 08, 2016 11:00 pm
Сообщения: 417
Апну я данную темку, наконец дошли но нее руки.

Собственно, итого - вариант кросс-компиляции Паскаля работает, хотя не слишком просто его запустить.
В теории, на svn лежит RTL, но она просто так не собирается. Потому тут выкладываю готовую RTL в приложении и инструкцию.
Инструкция для пользователя Win, но разницы с Lin никакой, кроме расширения скрипта сборки.

1.На sourceforge скачиваем компилятор старой версии 2.2.2 для Win32 (Linux-32)
Это принципиально, т.к. более новая RTL (даже 2.2.4) несовместима с портом RTL для Колибри.
Предположим, версия установлена как у меня в D:\_bin\FPC222

2. Настраиваем пути к D:\_bin\FPC222

3. Переименовываем каталог D:\_bin\FPC222\units\i386-win32\rtl , поскольку Колибри RTL хочет именно туда.
А он еще пригодится, если нужно будет этим же компилятором собирать Win32_приложения, например exe2kos

4. Распаковываем приложенный архив RTL поверх паскаля. в архиве 2 утилиты - exe2kos и kpack

5. Всё. Смотрим вызов компилятора в батнике build_sample.bat, там должно быть что то вроде
set KFPCDIR=D:\_bin\FPC222
set FPCDIR=D:\_bin\FPC222
fpc -Twin32 sample.pp
kpack sample.exe sample.kex

Как вариант, в батнике build.bat вызов fpcmake для готового makefile для проектов посложнее


Вложения:
FPC222rtl4KOS.7z [657.85 КБ]
15 скачиваний


Последний раз редактировалось Siemargl Ср сен 26, 2018 7:48 pm, всего редактировалось 1 раз.
Вернуться к началу
 Заголовок сообщения: Re: FreePascal
СообщениеДобавлено: Ср сен 26, 2018 7:42 pm 
Не в сети

Зарегистрирован: Вт мар 08, 2016 11:00 pm
Сообщения: 417
Теперь инструкция по компиляции RTL.
Поскольку она несовершенна и может потребовать пофиксить какие либо баги или добавить недостающие функции.
Кроме того, возможно сюда добавить наработки из KolibriOS.lib для Delphi.

1. В исходниках на SVN есть небольшие ошибки (я в душе не чаю, как работает автосборка, потому их коммитить пока не буду, чтобы не сломать). Fix под спойлером
Спойлер: Показать
===================================================================
--- kos_def.inc (revision 7375)
+++ kos_def.inc (working copy)
@@ -113,3 +113,10 @@
VK_F10 = 121;
VK_F11 = 122;
VK_F12 = 123;
+
+/// siemargl add
+const
+ ExtensionSeparator = '.';
+ AllowDirectorySeparators : set of char = ['/'];
+ AllowDriveSeparators : set of char = [];
+
Index: system.pp
===================================================================
--- system.pp (revision 7375)
+++ system.pp (working copy)
@@ -19,6 +19,10 @@
MaxExitCode = 65535;
MaxPathLen = 512;

+ InitialStkLen = 4096; /// siemargl
+
+
+
UnusedHandle : THandle = -1;
StdInputHandle : THandle = 0;
StdOutputHandle: THandle = 0;
Index: sysutils.pp
===================================================================
--- sysutils.pp (revision 7375)
+++ sysutils.pp (working copy)
@@ -162,7 +162,7 @@
ReleaseFileRecord(Handle);
end;

-function FileTruncate(Handle: THandle; Size: Longint): Boolean;
+function FileTruncate(Handle: THandle; Size: Int64): Boolean;
begin
Result := False;
end;
===================================================================
--- build.bat (revision 7375)
+++ build.bat (working copy)
@@ -1,3 +1,4 @@
@echo off
+set FPCDIR=D:\_bin\FPC222\fpcbuild-2.2.2\fpcsrc
fpcmake -Twin32
make
\ No newline at end of file


2. Скачиваем файл исходников fpcbuild-2.2.2.zip из каталога https://sourceforge.net/projects/freepa ... rce/2.2.2/
и распаковываем куда укажем в build.bat RTL Kolibri

3. Компилируем RTL с помощью fp/rtl/build.bat

4. папочку fp/units/rtl копируем поверх D:\_bin\FPC\units\i386-win32\rtl

5. при необходимости скомпилировать fp/utils/exe2kos,
создаем сначала руками папку fp/bin - туда попадет exe-шник (или он станет файлом bin. если не создать)

и не забываем подсунуть rtl от win32


Вернуться к началу
 Заголовок сообщения: Re: FreePascal
СообщениеДобавлено: Пт сен 28, 2018 3:38 pm 
Не в сети

Зарегистрирован: Пн мар 27, 2006 6:33 am
Сообщения: 642
Неплохо и на форуме freepascal.ru обновить информацию в
Этой теме


Вернуться к началу
 Заголовок сообщения: Re: FreePascal
СообщениеДобавлено: Пт сен 28, 2018 10:51 pm 
Не в сети

Зарегистрирован: Вт мар 08, 2016 11:00 pm
Сообщения: 417
Kopa писал(а):
Неплохо и на форуме freepascal.ru обновить информацию в
Этой теме
Чего там обновлять, нового то ничего не появилось.

И такая непереносимость даже между минорными субверсиями это грустно - плохой код RTL в FPC.


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

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


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

Сейчас этот форум просматривают: plastictown и 2 гостя


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

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