Board.KolibriOS.org
http://board.kolibrios.org/

FreePascal
http://board.kolibrios.org/viewtopic.php?f=33&t=1020
Page 4 of 6

Author:  bw [ Fri Jul 22, 2011 12:54 am ]
Post subject:  Re: FreePascal

> после заголовка километровое пустое место идет
Ну как я и обещал, какая-то секция, возможно стэк. Хотя могу врать, забыл всё нахрен.

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

..bw

Author:  Mario [ Fri Jul 22, 2011 7:26 am ]
Post subject:  Re: FreePascal

Для стека как показывает практика достаточно 4 кб (по крайней мере для ассемблерных программ) и размещается он за пределами бинарника. Получается с данными в программе, либо с кодом в компиляторе, либо с кодом в преобразователе что-то не то.

Author:  mozGa_net [ Sat Jul 30, 2011 3:07 pm ]
Post subject:  Re: FreePascal

Кому лень искать, я нагуглил исходники 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 потом куданить сброшу.

Author:  Siemargl [ Wed Sep 26, 2018 7:22 pm ]
Post subject:  Re: FreePascal

Апну я данную темку, наконец дошли но нее руки.

Собственно, итого - вариант кросс-компиляции Паскаля работает, хотя не слишком просто его запустить.
В теории, на 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 для проектов посложнее

Attachments:
FPC222rtl4KOS.7z [657.85 KiB]
Downloaded 190 times

Author:  Siemargl [ Wed Sep 26, 2018 7:42 pm ]
Post subject:  Re: FreePascal

Теперь инструкция по компиляции RTL.
Поскольку она несовершенна и может потребовать пофиксить какие либо баги или добавить недостающие функции.
Кроме того, возможно сюда добавить наработки из KolibriOS.lib для Delphi.

1. В исходниках на SVN есть небольшие ошибки (я в душе не чаю, как работает автосборка, потому их коммитить пока не буду, чтобы не сломать). Fix под спойлером
Spoiler: Show
===================================================================
--- 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

Author:  Kopa [ Fri Sep 28, 2018 3:38 pm ]
Post subject:  Re: FreePascal

Неплохо и на форуме freepascal.ru обновить информацию в
Этой теме

Author:  Siemargl [ Fri Sep 28, 2018 10:51 pm ]
Post subject:  Re: FreePascal

Kopa wrote:
Неплохо и на форуме freepascal.ru обновить информацию в
Этой теме
Чего там обновлять, нового то ничего не появилось.

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

Author:  ConLenov [ Wed Apr 08, 2020 12:16 pm ]
Post subject:  Re: FreePascal

Как под КолибриОС компилировать программу, написанную на FreePascal в Linux или WIndows?

Author:  Leency [ Wed Apr 08, 2020 3:07 pm ]
Post subject:  Re: FreePascal

ConLenov wrote:
Как под КолибриОС компилировать программу, написанную на FreePascal в Linux или WIndows?

Под колибри FreePascal компилятор не портирован. Нужно использовать кросс-компиляцию.

Author:  ConLenov [ Wed Apr 08, 2020 7:58 pm ]
Post subject:  Re: FreePascal

Где должен находится файл "example.pp" для успешной компиляции?

Attachments:
паскаль.PNG
паскаль.PNG [ 43.43 KiB | Viewed 4132 times ]

Author:  Leency [ Thu Apr 09, 2020 3:23 am ]
Post subject:  Re: FreePascal

Сложно сказать, ты читал эту тему, особенно сообщения на этой странице?

Author:  ConLenov [ Fri Apr 10, 2020 11:28 am ]
Post subject:  Re: FreePascal

Я переименовал example.pp в sample.pp Компиляция в формате kex вроде прошла успешно. Но почему kex-файлы не запускаются в Колибри? (я использовал build_sample) C lrl.pp я делал то же самое

Author:  Leency [ Fri Apr 10, 2020 1:28 pm ]
Post subject:  Re: FreePascal

exe2kos есть, используешь?

Author:  Freeman [ Tue Jun 23, 2020 1:32 pm ]
Post subject:  Re: FreePascal

bw wrote:
> после заголовка километровое пустое место идет
Ну как я и обещал, какая-то секция, возможно стэк. Хотя могу врать, забыл всё нахрен.

Это наверняка стандартная база $00400000. Чтобы уменьшить размер, нужно воспользоваться PE Tool:
Code:
pet -strip -trunc -rebase 0 -osver 0.7 -into my.exe

Author:  maxcodehack [ Mon Oct 05, 2020 11:20 am ]
Post subject:  Re: FreePascal

Нашел вот это(папка)?
Это порт fpc для колибри. Пусть может и не допортирован, но на форуме упоминания этого не видел :shock: !
Он собирает примеры отсюда.

Как смешно получилось - кросскомпиляцию завести не удалось, нашел кое какой порт - завелось. Добавил в kolibri de

Page 4 of 6 All times are UTC+03:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/