Board.KolibriOS.org

Official KolibriOS board
It is currently Mon May 27, 2019 12:39 pm

All times are UTC+03:00




Post new topic  Reply to topic  [ 52 posts ]  Go to page Previous 1 2 3 4
Author Message
 Post subject: Re: FreePascal
PostPosted: Fri Jul 22, 2011 12:54 am 
Offline
User avatar

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

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

..bw


Top
   
 Post subject: Re: FreePascal
PostPosted: Fri Jul 22, 2011 7:26 am 
Для стека как показывает практика достаточно 4 кб (по крайней мере для ассемблерных программ) и размещается он за пределами бинарника. Получается с данными в программе, либо с кодом в компиляторе, либо с кодом в преобразователе что-то не то.


Top
   
 Post subject: Re: FreePascal
PostPosted: Sat Jul 30, 2011 3:07 pm 
Offline
User avatar

Joined: Wed Feb 23, 2011 5:11 pm
Posts: 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 потом куданить сброшу.

_________________
Нуб обыкновенный
Image


Top
   
 Post subject: Re: FreePascal
PostPosted: Wed Sep 26, 2018 7:22 pm 
Offline

Joined: Tue Mar 08, 2016 11:00 pm
Posts: 436
Апну я данную темку, наконец дошли но нее руки.

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


Last edited by Siemargl on Wed Sep 26, 2018 7:48 pm, edited 1 time in total.
Top
   
 Post subject: Re: FreePascal
PostPosted: Wed Sep 26, 2018 7:42 pm 
Offline

Joined: Tue Mar 08, 2016 11:00 pm
Posts: 436
Теперь инструкция по компиляции 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


Top
   
 Post subject: Re: FreePascal
PostPosted: Fri Sep 28, 2018 3:38 pm 
Offline

Joined: Mon Mar 27, 2006 6:33 am
Posts: 658
Неплохо и на форуме freepascal.ru обновить информацию в
Этой теме


Top
   
 Post subject: Re: FreePascal
PostPosted: Fri Sep 28, 2018 10:51 pm 
Offline

Joined: Tue Mar 08, 2016 11:00 pm
Posts: 436
Kopa wrote:
Неплохо и на форуме freepascal.ru обновить информацию в
Этой теме
Чего там обновлять, нового то ничего не появилось.

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


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 52 posts ]  Go to page Previous 1 2 3 4

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Limited