Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / fpc-devel / 2000-10

to FPC/2 development team

3 messages · 3 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

KO Myung-Hun

Hi/2 all.

I downloaded FPC/2 1.0.2(actually 1.0.3, dated 10/17). I try to recompile RTL source as before. I could success. Thanks.

But in report of FPC/2 with option -viuf, I found problem. That is like past problems. Below is the part of report of FPC/2 while making.

-------
ppc386.exe -Fi../inc -Fi../i386 -FE. -viut -di386 -I../objpas ../objpas/objpas.pp
Compiler: ppc386.exe
Target OS: OS/2 via EMX
...
load from OBJPAS (interface) unit SYSOS2
Unitsearch: sysos2.ppo
PPU Loading sysos2.ppo
PPU Name: sysos2.ppo
PPU Time: 2000/10/20 22:41:06
PPU Flags: 145
PPU Crc: 1060779653
PPU Crc: 1798719114 (intfc)
PPU Check file sysos2.oo2 time Not Found
PPU Check file sysos2.so2 time 2000/10/20 22:41:06 Recompiling unit, obj is older than asm
Unitsearch: sysos2.ppo
PPU Loading sysos2.ppo
PPU Name: sysos2.ppo
PPU Time: 2000/10/20 22:41:06
PPU Flags: 145
PPU Crc: 1060779653
PPU Crc: 1798719114 (intfc)
PPU Check file sysos2.oo2 time Not Found
PPU Check file sysos2.so2 time 2000/10/20 22:41:06 Recompiling unit, obj is older than asm
Unitsearch: sysos2.pas
Compiling sysos2.pas
...
Writing .\sysos2.ppo
Assembling sysos2
Parsing interface of unit OBJPAS
Writing .\objpas.ppo
Parsing implementation of OBJPAS
Parsing implementation of OBJPAS
Writing .\objpas.ppo
Closing script .\ppas.cmd
12740 Lines compiled, 5.7 sec
-------

Above msg, I found that FPC/2 do not object files. So, FPC/2 try to compile three units were created, any object
file are not created. So whenever making, every units which need .oo2 file are recompiled. Therefore overall compiling time of FPC/2 is slower. Also if I run 'make install' and compile other apps, RTL do not operate. FPC/2 report that it could not found units( i.e sysos2 ). Fortunatelly, because there are .so2 files in RTL directory, after assembling every .so2, and copying assembled files to the UNIT directory, I could compile apps hardly.
Why FPC/2 do not created .oo2 files ?

And I suggest about DosCalls.pas.

In DosCalls.PAS of 1.00 and 1.0.2, prototype of DosGetInfoBlocks is changed to pointer type, and remark variant type. But FPC supports function overloading. So It is regardless that we would enable both prototypes.
Therefore, unremark DosGetInfoBlocks of variant type, and adding 'external' implementation part like below.

--------
{OS/2 keeps information about the current process and the current thread

is the datastructures Tprocessinfoblock and Tthreadinfoblock. All data can both be read and be changed. Use DosGetInfoBlocks to get their address. The service cannot fail, so it is defined as procedure. The second version of the call might be useful if you only want address

of one of those datastructures, since you can supply nil for the other parameter then.}

(* FPC supports function overloading. So enabled both prototypes. *)
procedure DosGetInfoBlocks(var ATIB:PThreadInfoBlock;
                           var APIB:PProcessInfoBlock); cdecl;
procedure DosGetInfoBlocks(PATIB:PPThreadInfoBlock;
                           PAPIB:PPProcessInfoBlock); cdecl;
...
procedure DosGetInfoBlocks(var ATIB:PThreadInfoBlock;
                           var APIB:PProcessInfoBlock); cdecl;
external 'DOSCALLS' index 312;
procedure DosGetInfoBlocks(PATIB:PPThreadInfoBlock;
                           PAPIB:PPProcessInfoBlock); cdecl;
external 'DOSCALLS' index 312;
-------

for better FPC/2 !!!

from KO Myung-Hun...

Reply by email

Unknown author
to KO Myung-Hun

Date sent: Sat, 21 Oct 2000 00:05:48 +0900
From: KO Myung-Hun
To: FPC mail
Subject: [fpc-devel]to FPC/2 development team Send reply to:

Hi,

thanks for your report.

.
.

Fortunatelly, because there are .so2 files in RTL directory, after assembling every .so2, and copying assembled files to the UNIT directory, I could compile apps hardly. Why FPC/2 do not created .oo2 files ?

I'd guess some problems with your configuration, since it works without problems on other PCs. Try to get and OS/2 version of unixish "which" tool and run "which as" on your command line. It must be possible to resolve this problem.

In DosCalls.PAS of 1.00 and 1.0.2, prototype of DosGetInfoBlocks is changed to pointer type, and remark variant type. But FPC supports function overloading. So It is regardless that we would enable both

That's what I wanted first, actually. However, it isn't possible, because both variants would use pointers as parameters (although one is a pointer to a structure, while the other is a pointer to another pointer), and FPC cannot distinguish there (imagine a situation where you'd call it with a variable of the base type "pointer" - that one is assignment-compatible to both of these).

Have a nice day

Tomas Hajny, on Internet
in urgent cases

Reply by email

Jonas Maebe
Why FPC/2 do not created .oo2 files ?

Is your \pp\bin\os2 directory within the first 255 chars of your path statement? If not, the compiler won't be able to find the assembler. We still have to fix this (adding a getenvansi() function to the Dos unit)

Jonas

Reply by email