* updates so it works with the ide

This commit is contained in:
peter 2001-08-04 10:23:54 +00:00
parent 43b4274a6d
commit 2a1adf0ee6
7 changed files with 335 additions and 267 deletions

File diff suppressed because it is too large Load Diff

View File

@ -73,6 +73,9 @@ type
{ Total Status } { Total Status }
compiledlines : longint; { the number of lines which are compiled } compiledlines : longint; { the number of lines which are compiled }
errorcount : longint; { number of generated errors } errorcount : longint; { number of generated errors }
{ program info }
isexe,
islibrary : boolean;
{ Settings for the output } { Settings for the output }
verbosity : longint; verbosity : longint;
maxerrorcount : longint; maxerrorcount : longint;
@ -82,7 +85,8 @@ type
skip_error, skip_error,
use_stderr, use_stderr,
use_redir, use_redir,
use_gccoutput : boolean; use_gccoutput,
compiling_current : boolean;
{ Redirection support } { Redirection support }
redirfile : text; redirfile : text;
end; end;
@ -351,7 +355,10 @@ end;
end. end.
{ {
$Log$ $Log$
Revision 1.15 2001-06-07 21:25:57 peter Revision 1.16 2001-08-04 10:23:54 peter
* updates so it works with the ide
Revision 1.15 2001/06/07 21:25:57 peter
* Regenerated * Regenerated
Revision 1.14 2001/06/06 17:20:21 jonas Revision 1.14 2001/06/06 17:20:21 jonas

View File

@ -112,6 +112,8 @@ interface
tmodulebase = class(TLinkedListItem) tmodulebase = class(TLinkedListItem)
{ index } { index }
unit_index : longint; { global counter for browser } unit_index : longint; { global counter for browser }
{ status }
in_compile : boolean; { is it being compiled ?? }
{ sources } { sources }
sourcefiles : tinputfilemanager; sourcefiles : tinputfilemanager;
{ paths and filenames } { paths and filenames }
@ -653,6 +655,8 @@ uses
exefilename:=nil; exefilename:=nil;
outputpath:=nil; outputpath:=nil;
path:=nil; path:=nil;
{ status }
in_compile:=false;
{ unit index } { unit index }
inc(global_unit_count); inc(global_unit_count);
unit_index:=global_unit_count; unit_index:=global_unit_count;
@ -683,7 +687,10 @@ uses
end. end.
{ {
$Log$ $Log$
Revision 1.10 2001-06-03 15:15:31 peter Revision 1.11 2001-08-04 10:23:54 peter
* updates so it works with the ide
Revision 1.10 2001/06/03 15:15:31 peter
* dllprt0 stub for linux shared libs * dllprt0 stub for linux shared libs
* pass -init and -fini for linux shared libs * pass -init and -fini for linux shared libs
* libprefix splitted into staticlibprefix and sharedlibprefix * libprefix splitted into staticlibprefix and sharedlibprefix

View File

@ -90,7 +90,6 @@ interface
sources_avail, { if all sources are reachable } sources_avail, { if all sources are reachable }
sources_checked, { if there is already done a check for the sources } sources_checked, { if there is already done a check for the sources }
is_unit, is_unit,
in_compile, { is it being compiled ?? }
in_second_compile, { is this unit being compiled for the 2nd time? } in_second_compile, { is this unit being compiled for the 2nd time? }
in_second_load, { is this unit PPU loaded a 2nd time? } in_second_load, { is this unit PPU loaded a 2nd time? }
in_implementation, { processing the implementation part? } in_implementation, { processing the implementation part? }
@ -406,7 +405,6 @@ uses
compiled:=false; compiled:=false;
recompile_reason:=rr_unknown; recompile_reason:=rr_unknown;
in_second_load:=false; in_second_load:=false;
in_compile:=false;
in_second_compile:=false; in_second_compile:=false;
in_implementation:=false; in_implementation:=false;
in_global:=true; in_global:=true;
@ -589,7 +587,10 @@ uses
end. end.
{ {
$Log$ $Log$
Revision 1.17 2001-06-04 11:49:08 peter Revision 1.18 2001-08-04 10:23:54 peter
* updates so it works with the ide
Revision 1.17 2001/06/04 11:49:08 peter
* store used units in original type in ppu * store used units in original type in ppu
Revision 1.16 2001/06/03 15:15:31 peter Revision 1.16 2001/06/03 15:15:31 peter

View File

@ -211,7 +211,6 @@ interface
RelocSection : boolean = true; RelocSection : boolean = true;
RelocSectionSetExplicitly : boolean = false; RelocSectionSetExplicitly : boolean = false;
LinkTypeSetExplicitly : boolean = false; LinkTypeSetExplicitly : boolean = false;
IsExe : boolean = false;
DLLsource : boolean = false; DLLsource : boolean = false;
DLLImageBase : pstring = nil; DLLImageBase : pstring = nil;
UseDeffileForExport : boolean = true; UseDeffileForExport : boolean = true;
@ -1250,9 +1249,6 @@ implementation
do_release:=false; do_release:=false;
do_make:=true; do_make:=true;
compile_level:=0; compile_level:=0;
{ these two should not be cleared in
DoneGlobals as the IDE might need their value }
IsExe:=false;
DLLsource:=false; DLLsource:=false;
{ Output } { Output }
@ -1331,7 +1327,10 @@ begin
end. end.
{ {
$Log$ $Log$
Revision 1.39 2001-07-01 20:16:15 peter Revision 1.40 2001-08-04 10:23:54 peter
* updates so it works with the ide
Revision 1.39 2001/07/01 20:16:15 peter
* alignmentinfo record added * alignmentinfo record added
* -Oa argument supports more alignment settings that can be specified * -Oa argument supports more alignment settings that can be specified
per type: PROC,LOOP,VARMIN,VARMAX,CONSTMIN,CONSTMAX,RECORDMIN per type: PROC,LOOP,VARMIN,VARMAX,CONSTMIN,CONSTMAX,RECORDMIN

View File

@ -690,6 +690,8 @@ implementation
begin begin
consume(_UNIT); consume(_UNIT);
if compile_level=1 then
Status.IsExe:=false;
if token=_ID then if token=_ID then
begin begin
@ -1044,13 +1046,15 @@ implementation
if (Errorcount=0) then if (Errorcount=0) then
tppumodule(current_module).writeppu; tppumodule(current_module).writeppu;
if not(cs_compilesystem in aktmoduleswitches) then
if store_interface_crc<>current_module.interface_crc then
Comment(V_Warning,current_module.ppufilename^+' Interface CRC changed '+
hexstr(store_crc,8)+'<>'+hexstr(current_module.interface_crc,8));
{$ifdef EXTDEBUG} {$ifdef EXTDEBUG}
if store_interface_crc<>current_module.interface_crc then if not(cs_compilesystem in aktmoduleswitches) then
Comment(V_Warning,current_module.ppufilename^+' Interface CRC changed '+ if (store_crc<>current_module.crc) and simplify_ppu then
hexstr(store_crc,8)+'<>'+hexstr(current_module.interface_crc,8)); Comment(V_Warning,current_module.ppufilename^+' implementation CRC changed '+
if (store_crc<>current_module.crc) and simplify_ppu then hexstr(store_crc,8)+'<>'+hexstr(current_module.interface_crc,8));
Comment(V_Warning,current_module.ppufilename^+' implementation CRC changed '+
hexstr(store_crc,8)+'<>'+hexstr(current_module.interface_crc,8));
{$endif EXTDEBUG} {$endif EXTDEBUG}
{ remove static symtable (=refsymtable) here to save some mem } { remove static symtable (=refsymtable) here to save some mem }
@ -1079,7 +1083,8 @@ implementation
hp : tmodule; hp : tmodule;
begin begin
DLLsource:=islibrary; DLLsource:=islibrary;
IsExe:=true; Status.IsLibrary:=IsLibrary;
Status.IsExe:=true;
parse_only:=false; parse_only:=false;
{ relocation works only without stabs under win32 !! PM } { relocation works only without stabs under win32 !! PM }
{ internal assembler uses rva for stabs info { internal assembler uses rva for stabs info
@ -1333,18 +1338,8 @@ implementation
end. end.
{ {
$Log$ $Log$
Revision 1.39 2001-08-01 15:07:29 jonas Revision 1.40 2001-08-04 10:23:54 peter
+ "compilerproc" directive support, which turns both the public and mangled * updates so it works with the ide
name to lowercase(declaration_name). This prevents a normal user from
accessing the routine, but they can still be easily looked up within
the compiler. This is used for helper procedures and should facilitate
the writing of more processor independent code in the code generator
itself (mostly written by Peter)
+ new "createintern" constructor for tcal nodes to create a call to
helper exported using the "compilerproc" directive
+ support for high(dynamic_array) using the the above new things
+ definition of 'HASCOMPILERPROC' symbol (to be able to check in the
compiler and rtl whether the "compilerproc" directive is supported)
Revision 1.38 2001/07/30 20:59:27 peter Revision 1.38 2001/07/30 20:59:27 peter
* m68k updates from v10 merged * m68k updates from v10 merged

View File

@ -333,6 +333,8 @@ var
lastfileidx:=0; lastfileidx:=0;
lastmoduleidx:=current_module.unit_index; lastmoduleidx:=current_module.unit_index;
end; end;
if assigned(current_module) then
status.compiling_current:=current_module.in_compile;
end; end;
@ -655,6 +657,12 @@ var
status.verbosity:=V_Default; status.verbosity:=V_Default;
Status.MaxErrorCount:=50; Status.MaxErrorCount:=50;
Loadprefixes; Loadprefixes;
lastfileidx:=-1;
lastmoduleidx:=-1;
status.currentmodule:='';
status.currentsource:='';
status.currentsourcepath:='';
status.compiling_current:=false;
end; end;
@ -672,7 +680,10 @@ var
end. end.
{ {
$Log$ $Log$
Revision 1.14 2001-05-27 14:30:55 florian Revision 1.15 2001-08-04 10:23:55 peter
* updates so it works with the ide
Revision 1.14 2001/05/27 14:30:55 florian
+ some widestring stuff added + some widestring stuff added
Revision 1.13 2001/04/13 01:22:17 peter Revision 1.13 2001/04/13 01:22:17 peter