Sign in Join

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

Mailing lists / fpc-devel / 2000-09

sysos2.pas recompiling result

4 messages · 2 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.

I try to make RTL again with -viut option. Below is result from MAKE.

--------
F:/LANG/EMX/BIN/MAKE.EXE -C os2 all
MAKE.EXE[1]: Entering directory `/lang/fpc/source/rtl/os2' as -o prt0.oo2 prt0.as
as -o prt1.oo2 prt1.as
as -o code2.oo2 code2.as
as -o code3.oo2 code3.as
ppc386.exe -Fi../inc -Fi../i386 -FE. -viut -di386 -Us -Sg sysos2.pas Compiler: ppc386.exe
Target OS: OS/2 via EMX
Using executable path:
Using unit path: .\
Using include path: f:\lang\fpc\source\rtl\inc\
Using include path: f:\lang\fpc\source\rtl\i386\
Using library path: .\
Using object path: .\
Compiling sysos2.pas
Start reading includefile f:\lang\fpc\source\rtl\inc\systemh.inc Parsing interface of SYSOS2
Parsing interface of unit SYSOS2
Start reading includefile f:\lang\fpc\source\rtl\inc\mathh.inc Back in systemh.inc
Start reading includefile f:\lang\fpc\source\rtl\i386\setjumph.inc Back in systemh.inc
Start reading includefile f:\lang\fpc\source\rtl\inc\objpash.inc Back in systemh.inc
Back in sysos2.pas
Start reading includefile f:\lang\fpc\source\rtl\inc\heaph.inc Back in sysos2.pas
Start reading includefile f:\lang\fpc\source\rtl\inc\system.inc Start reading includefile f:\lang\fpc\source\rtl\inc\filerec.inc Parsing implementation of SYSOS2
Parsing implementation of SYSOS2
Back in system.inc
Start reading includefile f:\lang\fpc\source\rtl\inc\textrec.inc Back in system.inc
Start reading includefile f:\lang\fpc\source\rtl\inc\innr.inc Back in system.inc
Start reading includefile f:\lang\fpc\source\rtl\i386\i386.inc Back in system.inc
Start reading includefile f:\lang\fpc\source\rtl\inc\generic.inc Back in system.inc
Start reading includefile f:\lang\fpc\source\rtl\i386\set.inc Back in system.inc
Start reading includefile f:\lang\fpc\source\rtl\i386\math.inc Back in system.inc
Start reading includefile f:\lang\fpc\source\rtl\inc\sstrings.inc Start reading includefile f:\lang\fpc\source\rtl\inc\real2str.inc Back in sstrings.inc
Back in system.inc
Start reading includefile f:\lang\fpc\source\rtl\inc\astrings.inc Back in system.inc
Start reading includefile f:\lang\fpc\source\rtl\inc\wstrings.inc Back in system.inc
Start reading includefile f:\lang\fpc\source\rtl\inc\rtti.inc Start reading includefile f:\lang\fpc\source\rtl\i386\rttip.inc Back in rtti.inc
Back in system.inc
Start reading includefile f:\lang\fpc\source\rtl\i386\setjump.inc Back in system.inc
Start reading includefile f:\lang\fpc\source\rtl\inc\objpas.inc Start reading includefile f:\lang\fpc\source\rtl\inc\except.inc Back in objpas.inc
Back in system.inc
Back in sysos2.pas
Start reading includefile f:\lang\fpc\source\rtl\inc\heap.inc Back in sysos2.pas
Start reading includefile f:\lang\fpc\source\rtl\inc\file.inc Back in sysos2.pas
Start reading includefile f:\lang\fpc\source\rtl\inc\typefile.inc Back in sysos2.pas
Start reading includefile f:\lang\fpc\source\rtl\inc\text.inc Back in sysos2.pas
Writing .\sysos2.ppo
Assembling sysos2
Closing script .\ppas.cmd
11602 Lines compiled, 5.5 sec
ppc386.exe -Fi../inc -Fi../i386 -FE. -viut -di386 -I../objpas ../objpas/objpas.pp
Compiler: ppc386.exe
Target OS: OS/2 via EMX
Using executable path:
Using unit path: f:\lang\fpc\source\rtl\objpas\
Using unit path: .\
Using include path: f:\lang\fpc\source\rtl\inc\
Using include path: f:\lang\fpc\source\rtl\i386\
Using include path: f:\lang\fpc\source\rtl\objpas\ Using library path: f:\lang\fpc\source\rtl\objpas\ Using library path: .\
Using object path: f:\lang\fpc\source\rtl\objpas\
Using object path: .\
Compiling ..\objpas\objpas.pp
Parsing interface of OBJPAS
Load from OBJPAS (interface) unit SYSOS2
Unitsearch: sysos2.ppo
PPU Loading sysos2.ppo
PPU Name: sysos2.ppo
PPU Time: 2000/09/23 15:27:30
PPU Flags: 145
PPU Crc: 606574890
PPU Crc: -1533064517 (intfc)
PPU Check file sysos2.oo2 time Not Found
PPU Check file sysos2.so2 time 2000/09/23 15:27:30 Recompiling unit, obj is older than asm
Unitsearch: sysos2.ppo
PPU Loading sysos2.ppo
PPU Name: sysos2.ppo
PPU File too short
Unitsearch: sysos2.pas
Compiling sysos2.pas
Start reading includefile f:\lang\fpc\source\rtl\inc\systemh.inc Parsing interface of SYSOS2
Parsing interface of unit SYSOS2
Start reading includefile f:\lang\fpc\source\rtl\inc\mathh.inc Back in systemh.inc
Start reading includefile f:\lang\fpc\source\rtl\i386\setjumph.inc Back in systemh.inc
Start reading includefile f:\lang\fpc\source\rtl\inc\objpash.inc Back in systemh.inc
Back in sysos2.pas
Start reading includefile f:\lang\fpc\source\rtl\inc\heaph.inc Back in sysos2.pas
Start reading includefile f:\lang\fpc\source\rtl\inc\system.inc Start reading includefile f:\lang\fpc\source\rtl\inc\filerec.inc Parsing implementation of SYSOS2
Parsing implementation of SYSOS2
Back in system.inc
Start reading includefile f:\lang\fpc\source\rtl\inc\textrec.inc Back in system.inc
Start reading includefile f:\lang\fpc\source\rtl\inc\innr.inc Back in system.inc
Start reading includefile f:\lang\fpc\source\rtl\i386\i386.inc Back in system.inc
Start reading includefile f:\lang\fpc\source\rtl\inc\generic.inc Back in system.inc
Start reading includefile f:\lang\fpc\source\rtl\i386\set.inc Back in system.inc
Start reading includefile f:\lang\fpc\source\rtl\i386\math.inc Back in system.inc
Start reading includefile f:\lang\fpc\source\rtl\inc\sstrings.inc Start reading includefile f:\lang\fpc\source\rtl\inc\real2str.inc Back in sstrings.inc
Back in system.inc
Start reading includefile f:\lang\fpc\source\rtl\inc\astrings.inc Back in system.inc
Start reading includefile f:\lang\fpc\source\rtl\inc\wstrings.inc Back in system.inc
Start reading includefile f:\lang\fpc\source\rtl\inc\rtti.inc Start reading includefile f:\lang\fpc\source\rtl\i386\rttip.inc Back in rtti.inc
Back in system.inc
Start reading includefile f:\lang\fpc\source\rtl\i386\setjump.inc Back in system.inc
Start reading includefile f:\lang\fpc\source\rtl\inc\objpas.inc Start reading includefile f:\lang\fpc\source\rtl\inc\except.inc Back in objpas.inc
Back in system.inc
Back in sysos2.pas
Start reading includefile f:\lang\fpc\source\rtl\inc\heap.inc Back in sysos2.pas
Start reading includefile f:\lang\fpc\source\rtl\inc\file.inc Back in sysos2.pas
Start reading includefile f:\lang\fpc\source\rtl\inc\typefile.inc Back in sysos2.pas
Start reading includefile f:\lang\fpc\source\rtl\inc\text.inc Back in sysos2.pas
Writing .\sysos2.ppo
sysos2.pas(865) Fatal: Can't Write PPU-File
MAKE.EXE[1]: *** [objpas.ppo] Error 1
MAKE.EXE[1]: Leaving directory `/lang/fpc/source/rtl/os2' F:/LANG/EMX/BIN/MAKE.EXE: *** [os2_all] Error 2
--------

I make RTL after 'make clean' command.

For Better FPC !!!

from KO Myung-Hun...

Reply by email

Jonas Maebe
to KO Myung-Hun
KO Myung-Hun wrote 10 lines
Back in sysos2.pas Writing .\sysos2.ppo Assembling sysos2 Closing script .\ppas.cmd 11602 Lines compiled, 5.5 sec ppc386.exe -Fi../inc -Fi../i386 -FE. -viut -di386 -I../objpas ../objpas/objpas.pp Compiler: ppc386.exe Target OS: OS/2 via EMX Using executable path:

[cut]

Show quoted text 13 lines
Compiling ..\objpas\objpas.pp Parsing interface of OBJPAS Load from OBJPAS (interface) unit SYSOS2 Unitsearch: sysos2.ppo PPU Loading sysos2.ppo PPU Name: sysos2.ppo PPU Time: 2000/09/23 15:27:30 PPU Flags: 145 PPU Crc: 606574890 PPU Crc: -1533064517 (intfc) PPU Check file sysos2.oo2 time Not Found PPU Check file sysos2.so2 time 2000/09/23 15:27:30 Recompiling unit, obj is older than asm

That's strange, those two times look the same to me. Maybe there's some uninitialized field in the date/time record for the OS/2 RTL or so?

Unitsearch: sysos2.ppo PPU Loading sysos2.ppo PPU Name: sysos2.ppo PPU File too short

??

Unitsearch: sysos2.pas Compiling sysos2.pas

Jonas

Reply by email

Jonas Maebe
to Jonas Maebe
Jonas Maebe wrote
> Back in sysos2.pas > Writing .\sysos2.ppo > Assembling sysos2 > Closing script .\ppas.cmd

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

This shows what the problem is: for some reason, the assembler isn't called (although the compiler doesn't show an error, while it should). I just tried for the first time the OS/2 version at home (because the HD where my Windows was on died recently) and I got exactly the same problem. You can currently work around it by adding "-a -s" to you OPT string (then the ppas.cmd file is called by the compiler).

I think the reason for the "can't write ppu file" (also under win32) is that if no object file is created, but there is a ppu file, then you get

a) sysos2.ppu is created, but no sysos2.oo2
b) compiler wants to compile objpas.pp, but this one requires sysos2 c) compiler loads (opens) sysos2.ppu
d) compiler looks for sysos2.oo2, doesn't find it (this is expressed by saying the dates are different, though it's strange it did show the date on your system) and recompiles sysos2.pas
e) I think the sysos2.ppu file is closed before this recompilation happens, but on some OS'es (e.g. win32, and it seems under EMX as well) it takes a while before the files are really closed. So when the compiler tries the ppu file, it gets an access denied error

This is what I *think* that happens anyway :)

Jonas

Reply by email

Jonas Maebe
to Jonas Maebe
Jonas Maebe wrote 16 lines
On Sat, 23 Sep 2000, Jonas Maebe wrote: > > Back in sysos2.pas > > Writing .\sysos2.ppo > > Assembling sysos2 > > Closing script .\ppas.cmd ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This shows what the problem is: for some reason, the assembler isn't called (although the compiler doesn't show an error, while it should). I just tried for the first time the OS/2 version at home (because the HD where my Windows was on died recently) and I got exactly the same problem. You can currently work around it by adding "-a -s" to you OPT string (then the ppas.cmd file is called by the compiler).

And another follow-up: there's also a bug in the makefile, which causes this not to work correctly. Search in "makefile" for the line

$(SYSTEMPPU) : sysos2.pas $(SYSDEPS)

and add below the $(COMPILER) line under it the following:

$(EXECPPAS)

Do the same for objpas$(PPUEXT) (it's the next unit that has to be compiled).

Note that you have to ad a <TAB> before the $(EXECPPAS) statement (and that you have to use an editor which preserves <TABS> when editing a file).

Jonas

Reply by email