From e7459f5466f74516592e4b73f0d581e0bdeed326 Mon Sep 17 00:00:00 2001 From: peter Date: Mon, 25 Oct 2004 15:38:41 +0000 Subject: [PATCH] * heap and heapsize removed * checkpointer fixes --- compiler/globals.pas | 12 +++---- compiler/globtype.pas | 9 +++-- compiler/ncal.pas | 17 +++++---- compiler/ncgmem.pas | 20 ++++++----- compiler/options.pas | 56 ++++++++++++++--------------- compiler/parser.pas | 27 +++++--------- compiler/pexpr.pas | 10 ++++-- compiler/pmodules.pas | 66 ++++------------------------------- compiler/scandir.pas | 59 ++++++++++++++++++++----------- compiler/scanner.pas | 33 +++++++++++++++++- compiler/systems.pas | 11 +++--- compiler/systems/i_amiga.pas | 7 ++-- compiler/systems/i_atari.pas | 7 ++-- compiler/systems/i_beos.pas | 7 ++-- compiler/systems/i_bsd.pas | 15 ++++---- compiler/systems/i_emx.pas | 7 ++-- compiler/systems/i_go32v2.pas | 7 ++-- compiler/systems/i_linux.pas | 13 +++---- compiler/systems/i_macos.pas | 7 ++-- compiler/systems/i_morph.pas | 7 ++-- compiler/systems/i_nwl.pas | 7 ++-- compiler/systems/i_nwm.pas | 7 ++-- compiler/systems/i_os2.pas | 7 ++-- compiler/systems/i_palmos.pas | 7 ++-- compiler/systems/i_sunos.pas | 8 +++-- compiler/systems/i_watcom.pas | 7 ++-- compiler/systems/i_wdosx.pas | 7 ++-- compiler/systems/i_win32.pas | 7 ++-- compiler/systems/t_bsd.pas | 16 +++++---- compiler/systems/t_emx.pas | 10 ++++-- compiler/systems/t_macos.pas | 14 +++++--- compiler/systems/t_morph.pas | 8 +++-- compiler/systems/t_nwl.pas | 64 +++++++++++++++++---------------- compiler/systems/t_nwm.pas | 28 ++++++++------- compiler/systems/t_os2.pas | 10 ++++-- compiler/systems/t_wdosx.pas | 22 +++--------- compiler/systems/t_win32.pas | 53 ++++++---------------------- 37 files changed, 352 insertions(+), 327 deletions(-) diff --git a/compiler/globals.pas b/compiler/globals.pas index 1664264838..a29b16e6b3 100644 --- a/compiler/globals.pas +++ b/compiler/globals.pas @@ -50,10 +50,6 @@ interface globtype,version,systems,cpuinfo; const -{$ifdef Splitheap} - testsplit : boolean = false; -{$endif Splitheap} - delphimodeswitches : tmodeswitches= [m_delphi,m_all,m_class,m_objpas,m_result,m_string_pchar, m_pointer_2_procedure,m_autoderef,m_tp_procvar,m_initfinal,m_default_ansistring, @@ -235,7 +231,6 @@ interface aktsourcecodepage : tcodepagestring; { Memory sizes } - heapsize, stacksize : longint; {$Ifdef EXTDEBUG} @@ -2126,7 +2121,6 @@ implementation { memory sizes, will be overriden by parameter or default for target in options or init_parser } stacksize:=0; - heapsize:=0; apptype:=app_cui; end; @@ -2134,7 +2128,11 @@ implementation end. { $Log$ - Revision 1.147 2004-10-16 22:46:14 olle + Revision 1.148 2004-10-25 15:38:41 peter + * heap and heapsize removed + * checkpointer fixes + + Revision 1.147 2004/10/16 22:46:14 olle * Fixed printing of filedates Revision 1.146 2004/10/16 13:03:13 olle diff --git a/compiler/globtype.pas b/compiler/globtype.pas index 2ecb314712..dc506783a0 100644 --- a/compiler/globtype.pas +++ b/compiler/globtype.pas @@ -79,6 +79,7 @@ than 255 characters. That's why using Ansi Strings} { codegen } cs_check_overflow,cs_check_range,cs_check_object, cs_check_io,cs_check_stack, + cs_checkpointer, cs_omitstackframe,cs_do_assertion,cs_generate_rtti, cs_full_boolean_eval,cs_typed_const_writable, { mmx } @@ -120,7 +121,7 @@ than 255 characters. That's why using Ansi Strings} cs_browser_log, { debugger } cs_gdb_dbx,cs_gdb_gsym,cs_gdb_heaptrc,cs_gdb_lineinfo, - cs_checkpointer,cs_gdb_valgrind,cs_gdb_dwarf, + cs_gdb_valgrind,cs_gdb_dwarf, { assembling } cs_asm_leave,cs_asm_extern,cs_asm_pipe,cs_asm_source, cs_asm_regalloc,cs_asm_tempalloc,cs_asm_nodes, @@ -306,7 +307,11 @@ implementation end. { $Log$ - Revision 1.62 2004-10-15 09:14:16 mazen + Revision 1.63 2004-10-25 15:38:41 peter + * heap and heapsize removed + * checkpointer fixes + + Revision 1.62 2004/10/15 09:14:16 mazen - remove $IFDEF DELPHI and related code - remove $IFDEF FPCPROCVAR and related code diff --git a/compiler/ncal.pas b/compiler/ncal.pas index 6cbdecd71d..58ef7ab62b 100644 --- a/compiler/ncal.pas +++ b/compiler/ncal.pas @@ -1039,8 +1039,9 @@ type if (po_abstractmethod in hp.procoptions) then AbstractMethodsList.Insert(hp.procsym.realname) else - { If this symbol is an overriding method, then remove it from the list } - if po_overridingmethod in hp.procoptions then + { If this symbol is a virtual (includes override) method, + then remove it from the list } + if po_virtualmethod in hp.procoptions then AbstractMethodsList.Remove(hp.procsym.realname); end; end; @@ -1405,7 +1406,6 @@ type i : longint; method_must_be_valid, is_const : boolean; - hp : tnode; label errorexit; begin @@ -2070,7 +2070,7 @@ type errorexit; begin result:=nil; -{!!!!!!!! +(* if (procdefinition.proccalloption=pocall_inline) and { can we inline this procedure at the node level? } (tprocdef(procdefinition).inlininginfo^.inlinenode) then @@ -2117,7 +2117,8 @@ type exit; end; end; -} +*) + { calculate the parameter info for the procdef } if not procdefinition.has_paraloc_info then begin @@ -2415,7 +2416,11 @@ begin end. { $Log$ - Revision 1.252 2004-10-15 09:14:16 mazen + Revision 1.253 2004-10-25 15:38:41 peter + * heap and heapsize removed + * checkpointer fixes + + Revision 1.252 2004/10/15 09:14:16 mazen - remove $IFDEF DELPHI and related code - remove $IFDEF FPCPROCVAR and related code diff --git a/compiler/ncgmem.pas b/compiler/ncgmem.pas index 432b11d1d7..9ee53579c6 100644 --- a/compiler/ncgmem.pas +++ b/compiler/ncgmem.pas @@ -267,9 +267,12 @@ implementation end; end; if (cs_gdb_heaptrc in aktglobalswitches) and - (cs_checkpointer in aktglobalswitches) and + (cs_checkpointer in aktlocalswitches) and not(cs_compilesystem in aktmoduleswitches) and - (not tpointerdef(left.resulttype.def).is_far) then + not( + tpointerdef(left.resulttype.def).is_far or + is_dynamic_array(left.resulttype.def) + ) then begin paraloc1.init; paramanager.getintparaloc(pocall_default,1,paraloc1); @@ -324,7 +327,7 @@ implementation end; { implicit deferencing } if (cs_gdb_heaptrc in aktglobalswitches) and - (cs_checkpointer in aktglobalswitches) and + (cs_checkpointer in aktlocalswitches) and not(cs_compilesystem in aktmoduleswitches) then begin paramanager.getintparaloc(pocall_default,1,paraloc1); @@ -342,7 +345,7 @@ implementation cg.a_load_loc_ref(exprasmlist,OS_ADDR,left.location,location.reference); { implicit deferencing also for interfaces } if (cs_gdb_heaptrc in aktglobalswitches) and - (cs_checkpointer in aktglobalswitches) and + (cs_checkpointer in aktlocalswitches) and not(cs_compilesystem in aktmoduleswitches) then begin paramanager.getintparaloc(pocall_default,1,paraloc1); @@ -494,7 +497,6 @@ implementation procedure tcgvecnode.rangecheck_array; var - freereg : boolean; hightree : tnode; poslabel, neglabel : tasmlabel; @@ -517,13 +519,11 @@ implementation firstpass(hightree); secondpass(hightree); { generate compares } - freereg:=false; if (right.location.loc in [LOC_REGISTER,LOC_CREGISTER]) then hreg:=cg.makeregsize(exprasmlist,right.location.register,OS_INT) else begin hreg:=cg.getintregister(exprasmlist,OS_INT); - freereg:=true; cg.a_load_loc_reg(exprasmlist,OS_INT,right.location,hreg); end; objectlibrary.getlabel(neglabel); @@ -879,7 +879,11 @@ begin end. { $Log$ - Revision 1.97 2004-09-25 14:23:54 peter + Revision 1.98 2004-10-25 15:38:41 peter + * heap and heapsize removed + * checkpointer fixes + + Revision 1.97 2004/09/25 14:23:54 peter * ungetregister is now only used for cpuregisters, renamed to ungetcpuregister * renamed (get|unget)explicitregister(s) to ..cpuregister diff --git a/compiler/options.pas b/compiler/options.pas index 7fec14528c..ea136bfe32 100644 --- a/compiler/options.pas +++ b/compiler/options.pas @@ -247,17 +247,23 @@ begin {$ifdef i386} '3', {$endif} +{$ifdef x86_64} + '4', +{$endif} +{$ifdef m68k} + '6', +{$endif} +{$ifdef arm} + 'S', +{$endif} {$ifdef powerpc} 'P', {$endif} -{$ifdef vis} - 'V', -{$endif} {$ifdef sparc} 'S', {$endif} -{$ifdef m68k} - '6', +{$ifdef vis} + 'V', {$endif} '*' : show:=true; end; @@ -506,16 +512,6 @@ begin end; 'g' : include(initmoduleswitches,cs_create_pic); - 'h' : - begin - val(copy(more,j+1,length(more)-j),heapsize,code); - if (code<>0) or -{$WARNING Is the upper limit for heapsize needed / useful?} -{ (heapsize>=67107840) or } - (heapsize<1024) then - IllegalPara(opt); - break; - end; 'i' : If UnsetBool(More, j) then exclude(initlocalswitches,cs_check_io) @@ -725,7 +721,7 @@ begin exclude(initglobalswitches,cs_gdb_gsym); exclude(initglobalswitches,cs_gdb_heaptrc); exclude(initglobalswitches,cs_gdb_lineinfo); - exclude(initglobalswitches,cs_checkpointer); + exclude(initlocalswitches,cs_checkpointer); end else begin @@ -774,9 +770,9 @@ begin 'c' : begin if UnsetBool(More, j) then - exclude(initglobalswitches,cs_checkpointer) - else - include(initglobalswitches,cs_checkpointer); + exclude(initlocalswitches,cs_checkpointer) + else + include(initlocalswitches,cs_checkpointer); end; 'v' : begin @@ -836,6 +832,13 @@ begin 'm' : parapreprocess:=not UnSetBool(more,0); + 'M' : + begin + more:=Upper(more); + if not SetCompileMode(more, true) then + IllegalPara(opt); + end; + 'n' : begin if More='' then @@ -886,9 +889,7 @@ begin end; end; -{$ifdef Unix} 'P' : ; { Ignore used by fpc.pp } -{$endif Unix} 's' : begin @@ -912,13 +913,6 @@ begin end; end; - 'M' : - begin - more:=Upper(more); - if not SetCompileMode(more, true) then - IllegalPara(opt); - end; - 'S' : begin if more[1]='I' then @@ -2113,7 +2107,11 @@ finalization end. { $Log$ - Revision 1.148 2004-10-24 20:01:08 peter + Revision 1.149 2004-10-25 15:38:41 peter + * heap and heapsize removed + * checkpointer fixes + + Revision 1.148 2004/10/24 20:01:08 peter * remove saveregister calling convention Revision 1.147 2004/10/15 09:14:17 mazen diff --git a/compiler/parser.pas b/compiler/parser.pas index f9e87978c5..74e9a45125 100644 --- a/compiler/parser.pas +++ b/compiler/parser.pas @@ -98,10 +98,8 @@ implementation registertais; { memory sizes } - if heapsize=0 then - heapsize:=target_info.heapsize; if stacksize=0 then - stacksize:=target_info.stacksize; + stacksize:=target_info.stacksize; { open assembler response } if cs_link_on_target in aktglobalswitches then @@ -123,8 +121,8 @@ implementation case target_info.system of system_powerpc_morphos: include(supported_calling_conventions,pocall_syscall); - system_m68k_amiga: - include(supported_calling_conventions,pocall_syscall); + system_m68k_amiga: + include(supported_calling_conventions,pocall_syscall); end; end; @@ -542,18 +540,7 @@ implementation end; {$endif USEEXCEPT} - { clear memory } -{$ifdef Splitheap} - if testsplit then - begin - { temp heap should be empty after that !!!} - codegen_donemodule; - Releasetempheap; - end; -{$endif Splitheap} - - { restore old state, close trees, > 0.99.5 has heapblocks, so - it's the default to release the trees } + { restore old state } done_module; if assigned(current_module) then @@ -711,7 +698,11 @@ implementation end. { $Log$ - Revision 1.67 2004-10-15 09:14:17 mazen + Revision 1.68 2004-10-25 15:38:41 peter + * heap and heapsize removed + * checkpointer fixes + + Revision 1.67 2004/10/15 09:14:17 mazen - remove $IFDEF DELPHI and related code - remove $IFDEF FPCPROCVAR and related code diff --git a/compiler/pexpr.pas b/compiler/pexpr.pas index 81cb045e79..e52e076e8b 100644 --- a/compiler/pexpr.pas +++ b/compiler/pexpr.pas @@ -316,13 +316,13 @@ implementation addstatement(newstatement,cassignmentnode.create(ctemprefnode.create(temp),caddrnode.create(p1))); addstatement(newstatement,cassignmentnode.create( cderefnode.create(ctemprefnode.create(temp)), - caddnode.create(addn, + caddnode.create(ntyp, cderefnode.create(ctemprefnode.create(temp)), p2))); addstatement(newstatement,ctempdeletenode.create(temp)); end else - result:=cassignmentnode.create(p1,caddnode.create(addn,p1.getcopy,p2)); + result:=cassignmentnode.create(p1,caddnode.create(ntyp,p1.getcopy,p2)); end; @@ -2478,7 +2478,11 @@ implementation end. { $Log$ - Revision 1.166 2004-10-15 09:14:17 mazen + Revision 1.167 2004-10-25 15:38:41 peter + * heap and heapsize removed + * checkpointer fixes + + Revision 1.166 2004/10/15 09:14:17 mazen - remove $IFDEF DELPHI and related code - remove $IFDEF FPCPROCVAR and related code diff --git a/compiler/pmodules.pas b/compiler/pmodules.pas index 7095218d78..1537f3cf4a 100644 --- a/compiler/pmodules.pas +++ b/compiler/pmodules.pas @@ -352,52 +352,6 @@ implementation end; - procedure insertheap; - begin - maybe_new_object_file(bssSegment); - maybe_new_object_file(dataSegment); - { On the Macintosh Classic M68k Architecture - The Heap variable is simply a POINTER to the - real HEAP. The HEAP must be set up by the RTL - and must store the pointer in this value. - On OS/2 the heap is also intialized by the RTL. We do - not output a pointer } - case target_info.system of - system_i386_OS2: - bssSegment.concat(Tai_datablock.Create_global('HEAP',4)); - system_i386_EMX: - ; - system_powerpc_macos: - ; - system_i386_watcom: - ; - system_alpha_linux: - ; - system_m68k_Mac: - bssSegment.concat(Tai_datablock.Create_global('HEAP',4)); - system_m68k_PalmOS: - ; - else - begin - bssSegment.concat(Tai_align.Create(var_align(heapsize))); - bssSegment.concat(Tai_datablock.Create_global('HEAP',heapsize)); - end; - end; -{$ifdef m68k} - if target_info.system<>system_m68k_PalmOS then - begin - dataSegment.concat(Tai_align.Create(const_align(4))); - dataSegment.concat(Tai_symbol.Createname_global('HEAPSIZE',AT_DATA,4)); - dataSegment.concat(Tai_const.Create_32bit(heapsize)); - end; -{$else m68k} - dataSegment.concat(Tai_align.Create(const_align(4))); - dataSegment.concat(Tai_symbol.Createname_global('HEAPSIZE',AT_DATA,4)); - dataSegment.concat(Tai_const.Create_32bit(heapsize)); -{$endif m68k} - end; - - procedure insertstacklength; begin { stacksize can be specified and is now simulated } @@ -1111,17 +1065,6 @@ implementation {$endif DEBUG} constsymtable:=symtablestack; -{$ifdef Splitheap} - if testsplit then - begin - Split_Heap; - allow_special:=true; - Switch_to_temp_heap; - end; - { it will report all crossings } - allow_special:=false; -{$endif Splitheap} - if has_impl then begin Message1(parser_u_parsing_implementation,current_module.modulename^); @@ -1496,11 +1439,10 @@ implementation (target_info.system=system_i386_NETWARE) then exportlib.generatelib; - { insert Tables and Heap } + { insert Tables and StackLength } insertThreadVarTablesTable; insertResourceTablesTable; insertinitfinaltable; - insertheap; insertstacklength; { create dwarf debuginfo } @@ -1564,7 +1506,11 @@ implementation end. { $Log$ - Revision 1.166 2004-10-15 09:14:17 mazen + Revision 1.167 2004-10-25 15:38:41 peter + * heap and heapsize removed + * checkpointer fixes + + Revision 1.166 2004/10/15 09:14:17 mazen - remove $IFDEF DELPHI and related code - remove $IFDEF FPCPROCVAR and related code diff --git a/compiler/scandir.pas b/compiler/scandir.pas index eae481cfdc..37cceb2c33 100644 --- a/compiler/scandir.pas +++ b/compiler/scandir.pas @@ -103,6 +103,31 @@ implementation end; end; + procedure do_localswitchdefault(sw:tlocalswitch); + var + state : char; + begin + state:=current_scanner.readstatedefault; + if (sw<>cs_localnone) and (state in ['-','+','*']) then + begin + if not localswitcheschanged then + nextaktlocalswitches:=aktlocalswitches; + if state='-' then + exclude(nextaktlocalswitches,sw) + else + if state='+' then + include(nextaktlocalswitches,sw) + else + begin + if sw in initlocalswitches then + include(nextaktlocalswitches,sw) + else + exclude(nextaktlocalswitches,sw); + end; + localswitcheschanged:=true; + end; + end; + procedure do_message(w:integer); begin @@ -231,6 +256,12 @@ implementation end; + procedure dir_checkpointer; + begin + do_localswitchdefault(cs_checkpointer); + end; + + procedure dir_objectchecks; begin do_localswitch(cs_check_object); @@ -517,24 +548,7 @@ implementation current_scanner.skipspace; l:=current_scanner.readval; if l>1024 then - stacksize:=l; - current_scanner.skipspace; - if c=',' then - begin - current_scanner.readchar; - current_scanner.skipspace; - l:=current_scanner.readval; - if l>1024 then - heapsize:=l; - end; - if c=',' then - begin - current_scanner.readchar; - current_scanner.skipspace; - l:=current_scanner.readval; - { Ignore this value, because the limit is set by the OS - info and shouldn't be changed by the user (PFV) } - end; + stacksize:=l; end; @@ -892,7 +906,7 @@ implementation begin if not (target_info.system in [system_i386_os2,system_i386_emx, system_i386_win32,system_i386_netware,system_i386_wdosx, - system_i386_netwlibc]) then + system_i386_netwlibc]) then begin Message(scan_n_version_not_support); exit; @@ -1034,6 +1048,7 @@ implementation AddDirective('ASSERTIONS',directive_all, @dir_assertions); AddDirective('BOOLEVAL',directive_all, @dir_booleval); AddDirective('CALLING',directive_all, @dir_calling); + AddDirective('CHECKPOINTER',directive_all, @dir_checkpointer); AddDirective('CODEPAGE',directive_all, @dir_codepage); AddDirective('COPYRIGHT',directive_all, @dir_copyright); AddDirective('D',directive_all, @dir_description); @@ -1115,7 +1130,11 @@ begin end. { $Log$ - Revision 1.44 2004-10-15 09:14:17 mazen + Revision 1.45 2004-10-25 15:38:41 peter + * heap and heapsize removed + * checkpointer fixes + + Revision 1.44 2004/10/15 09:14:17 mazen - remove $IFDEF DELPHI and related code - remove $IFDEF FPCPROCVAR and related code diff --git a/compiler/scanner.pas b/compiler/scanner.pas index 04460c2d9a..6b22a9b590 100644 --- a/compiler/scanner.pas +++ b/compiler/scanner.pas @@ -148,6 +148,7 @@ interface function readcomment:string; function readquotedstring:string; function readstate:char; + function readstatedefault:char; procedure skipspace; procedure skipuntildirective; procedure skipcomment; @@ -2061,6 +2062,32 @@ implementation end; + function tscannerfile.readstatedefault:char; + var + state : char; + begin + state:=' '; + if c=' ' then + begin + current_scanner.skipspace; + current_scanner.readid; + if pattern='ON' then + state:='+' + else + if pattern='OFF' then + state:='-' + else + if pattern='DEFAULT' then + state:='*'; + end + else + state:=c; + if not (state in ['+','-','*']) then + Message(scan_e_wrong_switch_toggle_default); + readstatedefault:=state; + end; + + procedure tscannerfile.skipspace; begin repeat @@ -3263,7 +3290,11 @@ exit_label: end. { $Log$ - Revision 1.92 2004-10-15 09:14:17 mazen + Revision 1.93 2004-10-25 15:38:41 peter + * heap and heapsize removed + * checkpointer fixes + + Revision 1.92 2004/10/15 09:14:17 mazen - remove $IFDEF DELPHI and related code - remove $IFDEF FPCPROCVAR and related code diff --git a/compiler/systems.pas b/compiler/systems.pas index fbb635e2d8..76e1fd80e4 100644 --- a/compiler/systems.pas +++ b/compiler/systems.pas @@ -111,7 +111,7 @@ interface system_arm_linux, { 31 } system_i386_watcom, { 32 } system_powerpc_MorphOS, { 33 } - system_x86_64_freebsd, { 34 } + system_x86_64_freebsd, { 34 } system_i386_netwlibc { 35 } ); @@ -281,7 +281,6 @@ interface (see also FIRST_PARM_OFFSET in GCC source) } first_parm_offset : longint; - heapsize, stacksize : longint; DllScanSupported : boolean; use_function_relative_addresses : boolean; @@ -342,7 +341,7 @@ interface procedure InitSystems; {$ifdef FreeBSD} - function GetOSRelDate:Longint; + function GetOSRelDate:Longint; {$endif} implementation @@ -703,7 +702,11 @@ finalization end. { $Log$ - Revision 1.92 2004-09-04 21:18:47 armin + Revision 1.93 2004-10-25 15:38:41 peter + * heap and heapsize removed + * checkpointer fixes + + Revision 1.92 2004/09/04 21:18:47 armin * target netwlibc added (libc is preferred for newer netware versions) Revision 1.91 2004/06/29 21:00:08 peter diff --git a/compiler/systems/i_amiga.pas b/compiler/systems/i_amiga.pas index 78e36aea9d..418314b70c 100644 --- a/compiler/systems/i_amiga.pas +++ b/compiler/systems/i_amiga.pas @@ -85,7 +85,6 @@ unit i_amiga; maxCrecordalign : 4 ); first_parm_offset : 8; - heapsize : 256*1024; stacksize : 262144; DllScanSupported:false; use_function_relative_addresses : true @@ -102,7 +101,11 @@ initialization end. { $Log$ - Revision 1.5 2004-06-20 08:55:32 florian + Revision 1.6 2004-10-25 15:38:41 peter + * heap and heapsize removed + * checkpointer fixes + + Revision 1.5 2004/06/20 08:55:32 florian * logs truncated } diff --git a/compiler/systems/i_atari.pas b/compiler/systems/i_atari.pas index 0034126bd3..017181a763 100644 --- a/compiler/systems/i_atari.pas +++ b/compiler/systems/i_atari.pas @@ -68,7 +68,6 @@ unit i_atari; endian : endian_big; stackalignment : 2; maxCrecordalignment : 4; - heapsize : 16*1024; stacksize : 8192; DllScanSupported:false; use_function_relative_addresses : false @@ -85,7 +84,11 @@ initialization end. { $Log$ - Revision 1.3 2004-06-20 08:55:32 florian + Revision 1.4 2004-10-25 15:38:41 peter + * heap and heapsize removed + * checkpointer fixes + + Revision 1.3 2004/06/20 08:55:32 florian * logs truncated } diff --git a/compiler/systems/i_beos.pas b/compiler/systems/i_beos.pas index 86f32fa98c..5157de85e6 100644 --- a/compiler/systems/i_beos.pas +++ b/compiler/systems/i_beos.pas @@ -85,7 +85,6 @@ unit i_beos; maxCrecordalign : 4 ); first_parm_offset : 8; - heapsize : 256*1024; stacksize : 8192; DllScanSupported:false; use_function_relative_addresses : true @@ -102,7 +101,11 @@ initialization end. { $Log$ - Revision 1.5 2004-06-20 08:55:32 florian + Revision 1.6 2004-10-25 15:38:41 peter + * heap and heapsize removed + * checkpointer fixes + + Revision 1.5 2004/06/20 08:55:32 florian * logs truncated Revision 1.4 2004/02/22 16:51:50 peter diff --git a/compiler/systems/i_bsd.pas b/compiler/systems/i_bsd.pas index a92f65cd21..340defc992 100644 --- a/compiler/systems/i_bsd.pas +++ b/compiler/systems/i_bsd.pas @@ -88,7 +88,6 @@ unit i_bsd; maxCrecordalign : 4 ); first_parm_offset : 8; - heapsize : 256*1024; stacksize : 262144; DllScanSupported:false; use_function_relative_addresses : true @@ -152,7 +151,6 @@ unit i_bsd; maxCrecordalign : 8 ); first_parm_offset : 16; - heapsize : 256*1024; stacksize : 256*1024; DllScanSupported:false; use_function_relative_addresses : true @@ -216,7 +214,6 @@ unit i_bsd; maxCrecordalign : 4 ); first_parm_offset : 8; - heapsize : 256*1024; stacksize : 262144; DllScanSupported:false; use_function_relative_addresses : true @@ -279,7 +276,6 @@ unit i_bsd; maxCrecordalign : 4 ); first_parm_offset : 8; - heapsize : 256*1024; stacksize : 262144; DllScanSupported:false; use_function_relative_addresses : true @@ -342,7 +338,6 @@ unit i_bsd; maxCrecordalign : 4 ); first_parm_offset : 8; - heapsize : 256*1024; stacksize : 262144; DllScanSupported:false; use_function_relative_addresses : true @@ -402,10 +397,9 @@ unit i_bsd; localalignmax : 4; recordalignmin : 0; recordalignmax : 2; - maxCrecordalign : 4 // should be 8 probably + maxCrecordalign : 4 // should be 8 probably ); first_parm_offset : 8; - heapsize : 256*1024; stacksize : 32*1024*1024; DllScanSupported:false; use_function_relative_addresses : true; @@ -471,7 +465,6 @@ unit i_bsd; maxCrecordalign : 4 ); first_parm_offset : 24; - heapsize : 256*1024; stacksize : 262144; DllScanSupported:false; use_function_relative_addresses : false; @@ -513,7 +506,11 @@ initialization end. { $Log$ - Revision 1.13 2004-09-12 20:33:21 olle + Revision 1.14 2004-10-25 15:38:41 peter + * heap and heapsize removed + * checkpointer fixes + + Revision 1.13 2004/09/12 20:33:21 olle * Updated compiler status Revision 1.12 2004/06/20 08:55:32 florian diff --git a/compiler/systems/i_emx.pas b/compiler/systems/i_emx.pas index 9df7965d42..f07d96e9f2 100644 --- a/compiler/systems/i_emx.pas +++ b/compiler/systems/i_emx.pas @@ -93,7 +93,6 @@ unit i_emx; maxCrecordalign : 4 ); first_parm_offset : 8; - heapsize : 256*1024; stacksize : 256*1024; DllScanSupported: false; use_function_relative_addresses : false @@ -116,7 +115,11 @@ initialization end. { $Log$ - Revision 1.4 2004-06-20 08:55:32 florian + Revision 1.5 2004-10-25 15:38:41 peter + * heap and heapsize removed + * checkpointer fixes + + Revision 1.4 2004/06/20 08:55:32 florian * logs truncated Revision 1.3 2004/05/16 20:41:19 hajny diff --git a/compiler/systems/i_go32v2.pas b/compiler/systems/i_go32v2.pas index 04da007462..bd61a5a563 100644 --- a/compiler/systems/i_go32v2.pas +++ b/compiler/systems/i_go32v2.pas @@ -85,7 +85,6 @@ unit i_go32v2; maxCrecordalign : 4 ); first_parm_offset : 8; - heapsize : 2048*1024; stacksize : 262144; DllScanSupported : false; use_function_relative_addresses : true @@ -102,7 +101,11 @@ initialization end. { $Log$ - Revision 1.3 2004-06-20 08:55:32 florian + Revision 1.4 2004-10-25 15:38:41 peter + * heap and heapsize removed + * checkpointer fixes + + Revision 1.3 2004/06/20 08:55:32 florian * logs truncated } diff --git a/compiler/systems/i_linux.pas b/compiler/systems/i_linux.pas index b25d1d1020..5d7d2e4b32 100644 --- a/compiler/systems/i_linux.pas +++ b/compiler/systems/i_linux.pas @@ -85,7 +85,6 @@ unit i_linux; maxCrecordalign : 4 ); first_parm_offset : 8; - heapsize : 256*1024; stacksize : 262144; DllScanSupported:false; use_function_relative_addresses : true; @@ -149,7 +148,6 @@ unit i_linux; maxCrecordalign : 4 ); first_parm_offset : 8; - heapsize : 128*1024; stacksize : 32*1024*1024; DllScanSupported:false; use_function_relative_addresses : true; @@ -213,7 +211,6 @@ unit i_linux; maxCrecordalign : 8 ); first_parm_offset : 8; - heapsize : 256*1024; stacksize : 32*1024*1024; DllScanSupported:false; use_function_relative_addresses : true; @@ -277,7 +274,6 @@ unit i_linux; maxCrecordalign : 4 ); first_parm_offset : 8; - heapsize : 256*1024; stacksize : 32*1024*1024; DllScanSupported:false; use_function_relative_addresses : true; @@ -341,7 +337,6 @@ unit i_linux; maxCrecordalign : 8 ); first_parm_offset : 16; - heapsize : 256*1024; stacksize : 256*1024; DllScanSupported:false; use_function_relative_addresses : true; @@ -405,7 +400,6 @@ unit i_linux; maxCrecordalign : 8 ); first_parm_offset : 92; - heapsize : 256*1024; stacksize : 262144; DllScanSupported:false; use_function_relative_addresses : true; @@ -469,7 +463,6 @@ unit i_linux; maxCrecordalign : 4 ); first_parm_offset : 8; - heapsize : 256*1024; stacksize : 262144; DllScanSupported:false; use_function_relative_addresses : true; @@ -520,7 +513,11 @@ initialization end. { $Log$ - Revision 1.30 2004-10-24 13:36:26 peter + Revision 1.31 2004-10-25 15:38:41 peter + * heap and heapsize removed + * checkpointer fixes + + Revision 1.30 2004/10/24 13:36:26 peter * gc-sections added when section smartlinking is used Revision 1.29 2004/08/15 13:30:18 florian diff --git a/compiler/systems/i_macos.pas b/compiler/systems/i_macos.pas index ca0ce4106d..b1a005f36c 100644 --- a/compiler/systems/i_macos.pas +++ b/compiler/systems/i_macos.pas @@ -84,7 +84,6 @@ unit i_macos; maxCrecordalign : 16 ); first_parm_offset : 8; - heapsize : 256*1024; stacksize : 262144; DllScanSupported:false; use_function_relative_addresses : true; @@ -102,7 +101,11 @@ initialization end. { $Log$ - Revision 1.17 2004-09-12 20:33:21 olle + Revision 1.18 2004-10-25 15:38:41 peter + * heap and heapsize removed + * checkpointer fixes + + Revision 1.17 2004/09/12 20:33:21 olle * Updated compiler status Revision 1.16 2004/07/05 21:26:35 olle diff --git a/compiler/systems/i_morph.pas b/compiler/systems/i_morph.pas index 017276a798..78c6ef2cb2 100644 --- a/compiler/systems/i_morph.pas +++ b/compiler/systems/i_morph.pas @@ -85,7 +85,6 @@ unit i_morph; maxCrecordalign : 4 ); first_parm_offset : 8; - heapsize : 256*1024; stacksize : 262144; DllScanSupported:false; use_function_relative_addresses : true; @@ -103,7 +102,11 @@ initialization end. { $Log$ - Revision 1.3 2004-04-08 00:03:51 karoly + Revision 1.4 2004-10-25 15:38:41 peter + * heap and heapsize removed + * checkpointer fixes + + Revision 1.3 2004/04/08 00:03:51 karoly * mos uses sysv abi, not aix Revision 1.2 2004/03/15 07:26:44 karoly diff --git a/compiler/systems/i_nwl.pas b/compiler/systems/i_nwl.pas index 7ae21f220d..60d50356ae 100644 --- a/compiler/systems/i_nwl.pas +++ b/compiler/systems/i_nwl.pas @@ -85,7 +85,6 @@ unit i_nwl; maxCrecordalign : 4 ); first_parm_offset : 8; - heapsize : 256*1024; stacksize : 16384; DllScanSupported:false; use_function_relative_addresses : true @@ -102,7 +101,11 @@ initialization end. { $Log$ - Revision 1.2 2004-09-26 19:51:02 armin + Revision 1.3 2004-10-25 15:38:41 peter + * heap and heapsize removed + * checkpointer fixes + + Revision 1.2 2004/09/26 19:51:02 armin * added define netware and netware_libc for target netwlibc, netware_clib for netware Revision 1.1 2004/09/04 21:18:47 armin diff --git a/compiler/systems/i_nwm.pas b/compiler/systems/i_nwm.pas index 5df305ee51..9dfc712a36 100644 --- a/compiler/systems/i_nwm.pas +++ b/compiler/systems/i_nwm.pas @@ -85,7 +85,6 @@ unit i_nwm; maxCrecordalign : 4 ); first_parm_offset : 8; - heapsize : 256*1024; stacksize : 16384; DllScanSupported:false; use_function_relative_addresses : true @@ -102,7 +101,11 @@ initialization end. { $Log$ - Revision 1.7 2004-09-26 19:51:02 armin + Revision 1.8 2004-10-25 15:38:41 peter + * heap and heapsize removed + * checkpointer fixes + + Revision 1.7 2004/09/26 19:51:02 armin * added define netware and netware_libc for target netwlibc, netware_clib for netware Revision 1.6 2004/07/31 22:52:58 armin diff --git a/compiler/systems/i_os2.pas b/compiler/systems/i_os2.pas index 67e901d2f9..020c2ee519 100644 --- a/compiler/systems/i_os2.pas +++ b/compiler/systems/i_os2.pas @@ -93,7 +93,6 @@ unit i_os2; maxCrecordalign : 4 ); first_parm_offset : 8; - heapsize : 256*1024; stacksize : 256*1024; DllScanSupported: false; use_function_relative_addresses : false @@ -116,7 +115,11 @@ initialization end. { $Log$ - Revision 1.5 2004-06-20 08:55:32 florian + Revision 1.6 2004-10-25 15:38:41 peter + * heap and heapsize removed + * checkpointer fixes + + Revision 1.5 2004/06/20 08:55:32 florian * logs truncated Revision 1.4 2004/05/16 20:41:19 hajny diff --git a/compiler/systems/i_palmos.pas b/compiler/systems/i_palmos.pas index 2a8d46996e..cac8c66753 100644 --- a/compiler/systems/i_palmos.pas +++ b/compiler/systems/i_palmos.pas @@ -68,7 +68,6 @@ unit i_palmos; endian : endian_big; stackalignment : 2; maxCrecordalignment : 4; - heapsize : 128*1024; stacksize : 8192; DllScanSupported:false; use_function_relative_addresses : false @@ -92,7 +91,11 @@ initialization end. { $Log$ - Revision 1.3 2004-06-20 08:55:32 florian + Revision 1.4 2004-10-25 15:38:41 peter + * heap and heapsize removed + * checkpointer fixes + + Revision 1.3 2004/06/20 08:55:32 florian * logs truncated } diff --git a/compiler/systems/i_sunos.pas b/compiler/systems/i_sunos.pas index a4c02e64de..d9468d564b 100644 --- a/compiler/systems/i_sunos.pas +++ b/compiler/systems/i_sunos.pas @@ -85,7 +85,6 @@ unit i_sunos; maxCrecordalign : 4 ); first_parm_offset : 8; - heapsize : 256*1024; stacksize : 262144; DllScanSupported:false; use_function_relative_addresses : true @@ -148,7 +147,6 @@ unit i_sunos; maxCrecordalign : 8 ); first_parm_offset : 92; - heapsize : 256*1024; stacksize : 262144; DllScanSupported:false; use_function_relative_addresses : true @@ -171,7 +169,11 @@ initialization end. { $Log$ - Revision 1.4 2004-10-01 17:41:21 marco + Revision 1.5 2004-10-25 15:38:41 peter + * heap and heapsize removed + * checkpointer fixes + + Revision 1.4 2004/10/01 17:41:21 marco * small updates to make playing with sparc/sunos easier Revision 1.3 2004/06/20 08:55:32 florian diff --git a/compiler/systems/i_watcom.pas b/compiler/systems/i_watcom.pas index 5363a3ea4b..11b84863e8 100644 --- a/compiler/systems/i_watcom.pas +++ b/compiler/systems/i_watcom.pas @@ -87,7 +87,6 @@ unit i_watcom; maxCrecordalign : 4 ); first_parm_offset : 8; - heapsize : 2048*1024; stacksize : 16384; DllScanSupported : false; use_function_relative_addresses : true @@ -104,7 +103,11 @@ initialization end. { $Log$ - Revision 1.4 2004-06-20 08:55:32 florian + Revision 1.5 2004-10-25 15:38:41 peter + * heap and heapsize removed + * checkpointer fixes + + Revision 1.4 2004/06/20 08:55:32 florian * logs truncated } diff --git a/compiler/systems/i_wdosx.pas b/compiler/systems/i_wdosx.pas index 2f5d00f497..773fe0dfd0 100644 --- a/compiler/systems/i_wdosx.pas +++ b/compiler/systems/i_wdosx.pas @@ -85,7 +85,6 @@ unit i_wdosx; maxCrecordalign : 16 ); first_parm_offset : 8; - heapsize : 256*1024; stacksize : 32*1024*1024; DllScanSupported:true; use_function_relative_addresses : true @@ -104,7 +103,11 @@ initialization end. { $Log$ - Revision 1.6 2004-06-20 08:55:32 florian + Revision 1.7 2004-10-25 15:38:41 peter + * heap and heapsize removed + * checkpointer fixes + + Revision 1.6 2004/06/20 08:55:32 florian * logs truncated } diff --git a/compiler/systems/i_win32.pas b/compiler/systems/i_win32.pas index b19154d8c6..0eb496cfe0 100644 --- a/compiler/systems/i_win32.pas +++ b/compiler/systems/i_win32.pas @@ -93,7 +93,6 @@ unit i_win32; maxCrecordalign : 16 ); first_parm_offset : 8; - heapsize : 256*1024; stacksize : 262144; DllScanSupported:true; use_function_relative_addresses : true @@ -112,7 +111,11 @@ initialization end. { $Log$ - Revision 1.9 2004-08-28 20:01:46 peter + Revision 1.10 2004-10-25 15:38:41 peter + * heap and heapsize removed + * checkpointer fixes + + Revision 1.9 2004/08/28 20:01:46 peter * enable case sensitive to support mixed case unit/filenames Revision 1.8 2004/06/20 08:55:32 florian diff --git a/compiler/systems/t_bsd.pas b/compiler/systems/t_bsd.pas index 195c9ed78b..0c1d81d8ec 100644 --- a/compiler/systems/t_bsd.pas +++ b/compiler/systems/t_bsd.pas @@ -330,11 +330,11 @@ begin if (target_info.system =system_i386_freebsd) and linkpthread Then Begin if not (cs_link_pthread in aktglobalswitches) Then - begin - {delete pthreads from list, in this case it is in libc_r} - SharedLibFiles.Remove(SharedLibFiles.Find('pthread').str); - LibrarySuffix:='r'; - end; + begin + {delete pthreads from list, in this case it is in libc_r} + SharedLibFiles.Remove(SharedLibFiles.Find('pthread').str); + LibrarySuffix:='r'; + end; End; prtobj:='prt0'; cprtobj:='cprt0'; @@ -627,7 +627,11 @@ initialization end. { $Log$ - Revision 1.22 2004-10-14 18:16:17 mazen + Revision 1.23 2004-10-25 15:38:41 peter + * heap and heapsize removed + * checkpointer fixes + + Revision 1.22 2004/10/14 18:16:17 mazen * USE_SYSUTILS merged successfully : cycles with and without defines * Need to be optimized in performance diff --git a/compiler/systems/t_emx.pas b/compiler/systems/t_emx.pas index 813db8e0fb..ae14d08a93 100644 --- a/compiler/systems/t_emx.pas +++ b/compiler/systems/t_emx.pas @@ -470,12 +470,12 @@ begin if binstr<>'' then begin { Is this really required? Not anymore according to my EMX docs } - Replace(cmdstr,'$HEAPMB',tostr((heapsize+1048575) shr 20)); + Replace(cmdstr,'$HEAPMB',tostr((1048575) shr 20)); {Size of the stack when an EMX program runs in OS/2.} Replace(cmdstr,'$STACKKB',tostr((stacksize+1023) shr 10)); {When an EMX program runs in DOS, the heap and stack share the same memory pool. The heap grows upwards, the stack grows downwards.} - Replace(cmdstr,'$DOSHEAPKB',tostr((stacksize+heapsize+1023) shr 10)); + Replace(cmdstr,'$DOSHEAPKB',tostr((stacksize+1023) shr 10)); Replace(cmdstr,'$STRIP',StripStr); Replace(cmdstr,'$APPTYPE',AppTypeStr); Replace(cmdstr,'$RES',outputexedir+Info.ResName); @@ -513,7 +513,11 @@ initialization end. { $Log$ - Revision 1.9 2004-10-15 09:24:38 mazen + Revision 1.10 2004-10-25 15:38:41 peter + * heap and heapsize removed + * checkpointer fixes + + Revision 1.9 2004/10/15 09:24:38 mazen - remove $IFDEF DELPHI and related code - remove $IFDEF FPCPROCVAR and related code diff --git a/compiler/systems/t_macos.pas b/compiler/systems/t_macos.pas index e35e64c8bc..09486fb87b 100644 --- a/compiler/systems/t_macos.pas +++ b/compiler/systems/t_macos.pas @@ -70,7 +70,7 @@ begin if name<>'' then begin aprocdef.setmangledname(name); - end + end else message(parser_e_empty_import_name); end; @@ -149,15 +149,15 @@ begin if s<>'' then Add(s+' '#182); end; - + {Add last lines of the link command} if apptype = app_tool then Add('-t "MPST" -c "MPS " '#182); if apptype = app_cui then {If SIOW, to avoid some warnings.} - Add('-ignoredups __start -ignoredups .__start -ignoredups main -ignoredups .main '#182); + Add('-ignoredups __start -ignoredups .__start -ignoredups main -ignoredups .main '#182); - Add('-tocdataref off -sym on -dead on -o '+ ScriptFixFileName(current_module.exefilename^)); + Add('-tocdataref off -sym on -dead on -o '+ ScriptFixFileName(current_module.exefilename^)); Add('Exit If "{Status}" != 0'); @@ -252,7 +252,11 @@ initialization end. { $Log$ - Revision 1.12 2004-09-13 16:13:04 olle + Revision 1.13 2004-10-25 15:38:41 peter + * heap and heapsize removed + * checkpointer fixes + + Revision 1.12 2004/09/13 16:13:04 olle + When link on target, the script sets file type on link.res Revision 1.11 2004/08/20 10:30:00 olle diff --git a/compiler/systems/t_morph.pas b/compiler/systems/t_morph.pas index e6d8ff5fbb..bf68757ed4 100644 --- a/compiler/systems/t_morph.pas +++ b/compiler/systems/t_morph.pas @@ -199,7 +199,7 @@ begin success:=DoExec(FindUtil(BinStr),cmdstr,true,false); { Stripping Enabled? } - { Under MorphOS a separate strip command is needed, to avoid stripping } + { Under MorphOS a separate strip command is needed, to avoid stripping } { __abox__ symbol, which is required to be present in current MorphOS } { executables. } if success and (cs_link_strip in aktglobalswitches) then @@ -228,7 +228,11 @@ initialization end. { $Log$ - Revision 1.7 2004-06-20 08:55:32 florian + Revision 1.8 2004-10-25 15:38:41 peter + * heap and heapsize removed + * checkpointer fixes + + Revision 1.7 2004/06/20 08:55:32 florian * logs truncated Revision 1.6 2004/06/08 15:04:23 karoly diff --git a/compiler/systems/t_nwl.pas b/compiler/systems/t_nwl.pas index b133ad7764..3895c61740 100644 --- a/compiler/systems/t_nwl.pas +++ b/compiler/systems/t_nwl.pas @@ -47,10 +47,10 @@ to be in unix-format for exe2nlm) By default, the most import files are included in freepascal. - e.g. function getgrnam(name:Pchar):Pgroup;cdecl;external 'libc' 'getgrnam'; + e.g. function getgrnam(name:Pchar):Pgroup;cdecl;external 'libc' 'getgrnam'; sets IMPORT @libc.imp and MODULE libc. To avoid setting the autoload, use ! in the name, e.g. - procedure EnterDebugger;cdecl;external '!netware' name 'EnterDebugger'; + procedure EnterDebugger;cdecl;external '!netware' name 'EnterDebugger'; Function simply defined as external work without generating autoload and IMPORT but you will get a warning from nlmconv. @@ -75,10 +75,10 @@ compile with: ppc386 -Tnetwlibc hello - + Libraries are supported but this needs at least netware 5.1 sp6, 6.0 sp3 or netware 6.5 - + In case there is a xdc file with the same name as the nlm name, this file will be used for nlmconv. Otherwise a temp xdc will be created and used. @@ -368,7 +368,7 @@ begin if isDll then {needed to provide main} s2 := FindObjectFile('nwl_dlle','',false) - else + else s2 := FindObjectFile('nwl_main','',false); Comment (V_Debug,'adding Object File '+s2); {$ifndef netware} LinkRes.Add (s2); {$else} LinkRes.Add (FExpand(s2)); {$endif} @@ -420,7 +420,7 @@ begin if (pos ('.a',s) <> 0) OR (pos ('.A', s) <> 0) then begin S2 := FindObjectFile(s,'',false); - {$ifndef netware} LinkRes.Add (s2); {$else} LinkRes.Add (FExpand(s2)); {$endif} + {$ifndef netware} LinkRes.Add (s2); {$else} LinkRes.Add (FExpand(s2)); {$endif} Comment(V_Debug,'adding Object File (StaticLibFiles) '+S2); end else begin @@ -429,10 +429,10 @@ begin Delete(S,i,255); S := S + '.imp'; S2 := ''; librarysearchpath.FindFile(S,S2); - {$ifdef netware} - Comment(V_Debug,'IMPORT @'+s2); - s2 := FExpand (S2); - {$endif} + {$ifdef netware} + Comment(V_Debug,'IMPORT @'+s2); + s2 := FExpand (S2); + {$endif} NLMConvLinkFile.Add('IMPORT @'+S2); Comment(V_Debug,'IMPORT @'+s2); end; @@ -450,7 +450,7 @@ begin Here we are setting the import-files for nlmconv. I.e. for the module libc or libc.nlm we add IMPORT @libc.imp and also the module libc.nlm (autoload) - If a lib name begins with !, only the IMPORT will be generated + If a lib name begins with !, only the IMPORT will be generated ? may it be better to set autoload's via StaticLibFiles ? } S:=lower (SharedLibFiles.GetFirst); if s<>'' then @@ -459,30 +459,30 @@ begin i:=Pos(target_info.sharedlibext,S); if i>0 then Delete(S,i,255); - if s[1] = '!' then - begin // special, with ! only the imp will be included but no module is autoloaded, needed i.e. for netware.imp inlcuded in libc ndk - delete (s,1,1); - S := S + '.imp'; - librarysearchpath.FindFile(S,S3); - {$ifdef netware} - Comment(V_Debug,'IMPORT @'+S3); - S3 := FExpand (S3); - {$endif} - NLMConvLinkFile.Add('IMPORT @'+S3); - Comment(V_Debug,'IMPORT @'+S3); - end else - begin + if s[1] = '!' then + begin // special, with ! only the imp will be included but no module is autoloaded, needed i.e. for netware.imp inlcuded in libc ndk + delete (s,1,1); S := S + '.imp'; librarysearchpath.FindFile(S,S3); - {$ifdef netware} - Comment(V_Debug,'IMPORT @'+S3); - S3 := FExpand (S3); - {$endif} + {$ifdef netware} + Comment(V_Debug,'IMPORT @'+S3); + S3 := FExpand (S3); + {$endif} + NLMConvLinkFile.Add('IMPORT @'+S3); + Comment(V_Debug,'IMPORT @'+S3); + end else + begin + S := S + '.imp'; + librarysearchpath.FindFile(S,S3); + {$ifdef netware} + Comment(V_Debug,'IMPORT @'+S3); + S3 := FExpand (S3); + {$endif} NLMConvLinkFile.Add('IMPORT @'+S3); NLMConvLinkFile.Add('MODULE '+s2); Comment(V_Debug,'MODULE '+S2); Comment(V_Debug,'IMPORT @'+S3); - end; + end; end end; end; @@ -653,7 +653,11 @@ initialization end. { $Log$ - Revision 1.7 2004-10-14 18:16:17 mazen + Revision 1.8 2004-10-25 15:38:41 peter + * heap and heapsize removed + * checkpointer fixes + + Revision 1.7 2004/10/14 18:16:17 mazen * USE_SYSUTILS merged successfully : cycles with and without defines * Need to be optimized in performance diff --git a/compiler/systems/t_nwm.pas b/compiler/systems/t_nwm.pas index 4a1376519e..36c002cd10 100644 --- a/compiler/systems/t_nwm.pas +++ b/compiler/systems/t_nwm.pas @@ -375,12 +375,12 @@ begin {$else} NLMConvLinkFile.Add ('OUTPUT ' + FExpand(NlmNam)); {$endif} - + { start and stop-procedures } NLMConvLinkFile.Add ('START _Prelude'); { defined in rtl/netware/nwpre.as } NLMConvLinkFile.Add ('EXIT _Stop'); { nwpre.as } NLMConvLinkFile.Add ('CHECK FPC_NW_CHECKFUNCTION'); { system.pp } - + if not (cs_link_strip in aktglobalswitches) then begin NLMConvLinkFile.Add ('DEBUG'); @@ -402,7 +402,7 @@ begin if (pos ('.a',s) <> 0) OR (pos ('.A', s) <> 0) then begin S2 := FindObjectFile(s,'',false); - {$ifndef netware} LinkRes.Add (s2); {$else} LinkRes.Add (FExpand(s2)); {$endif} + {$ifndef netware} LinkRes.Add (s2); {$else} LinkRes.Add (FExpand(s2)); {$endif} Comment(V_Debug,'adding Object File (StaticLibFiles) '+S2); end else begin @@ -411,10 +411,10 @@ begin Delete(S,i,255); S := S + '.imp'; S2 := ''; librarysearchpath.FindFile(S,S2); - {$ifdef netware} - Comment(V_Debug,'IMPORT @'+s2); - s2 := FExpand (S2); - {$endif} + {$ifdef netware} + Comment(V_Debug,'IMPORT @'+s2); + s2 := FExpand (S2); + {$endif} NLMConvLinkFile.Add('IMPORT @'+S2); Comment(V_Debug,'IMPORT @'+s2); end; @@ -442,10 +442,10 @@ begin Delete(S,i,255); S := S + '.imp'; librarysearchpath.FindFile(S,S3); - {$ifdef netware} - Comment(V_Debug,'IMPORT @'+S3); - S3 := FExpand (S3); - {$endif} + {$ifdef netware} + Comment(V_Debug,'IMPORT @'+S3); + S3 := FExpand (S3); + {$endif} NLMConvLinkFile.Add('IMPORT @'+S3); NLMConvLinkFile.Add('MODULE '+s2); Comment(V_Debug,'MODULE '+S2); @@ -571,7 +571,11 @@ initialization end. { $Log$ - Revision 1.18 2004-10-14 18:16:17 mazen + Revision 1.19 2004-10-25 15:38:41 peter + * heap and heapsize removed + * checkpointer fixes + + Revision 1.18 2004/10/14 18:16:17 mazen * USE_SYSUTILS merged successfully : cycles with and without defines * Need to be optimized in performance diff --git a/compiler/systems/t_os2.pas b/compiler/systems/t_os2.pas index 7e2af41900..6c83d12deb 100644 --- a/compiler/systems/t_os2.pas +++ b/compiler/systems/t_os2.pas @@ -470,12 +470,12 @@ begin if binstr<>'' then begin { Is this really required? Not anymore according to my EMX docs } - Replace(cmdstr,'$HEAPMB',tostr((heapsize+1048575) shr 20)); + Replace(cmdstr,'$HEAPMB',tostr((1048575) shr 20)); {Size of the stack when an EMX program runs in OS/2.} Replace(cmdstr,'$STACKKB',tostr((stacksize+1023) shr 10)); {When an EMX program runs in DOS, the heap and stack share the same memory pool. The heap grows upwards, the stack grows downwards.} - Replace(cmdstr,'$DOSHEAPKB',tostr((stacksize+heapsize+1023) shr 10)); + Replace(cmdstr,'$DOSHEAPKB',tostr((stacksize+1023) shr 10)); Replace(cmdstr,'$STRIP',StripStr); Replace(cmdstr,'$APPTYPE',AppTypeStr); Replace(cmdstr,'$RES',outputexedir+Info.ResName); @@ -513,7 +513,11 @@ initialization end. { $Log$ - Revision 1.13 2004-10-15 09:24:38 mazen + Revision 1.14 2004-10-25 15:38:41 peter + * heap and heapsize removed + * checkpointer fixes + + Revision 1.13 2004/10/15 09:24:38 mazen - remove $IFDEF DELPHI and related code - remove $IFDEF FPCPROCVAR and related code diff --git a/compiler/systems/t_wdosx.pas b/compiler/systems/t_wdosx.pas index 7648d311d3..f1d4519e13 100644 --- a/compiler/systems/t_wdosx.pas +++ b/compiler/systems/t_wdosx.pas @@ -36,7 +36,6 @@ implementation type timportlibwdosx=class(timportlibwin32) - procedure GetDefExt(var N:longint;var P:pStr4);override; end; texportlibwdosx=texportlibwin32; @@ -47,22 +46,12 @@ implementation end; tDLLScannerWdosx=class(tDLLScannerWin32) - public - procedure GetDefExt(var N:longint;var P:pStr4);override; end; -const - DefaultDLLExtensions:array[1..2]of string[4]=('.WDL','.DLL'); - {***************************************************************************** TIMPORTLIBWDOSX *****************************************************************************} - procedure timportlibwdosx.GetDefExt(var N:longint;var P:pStr4); - begin - N:=sizeof(DefaultDLLExtensions)div sizeof(DefaultDLLExtensions[1]); - pointer(P):=@DefaultDLLExtensions; - end; {***************************************************************************** TLINKERWDOSX @@ -80,11 +69,6 @@ end; {**************************************************************************** TDLLScannerWdosx ****************************************************************************} - procedure tDLLScannerWdosx.GetDefExt(var N:longint;var P:pStr4); - begin - N:=sizeof(DefaultDLLExtensions)div sizeof(DefaultDLLExtensions[1]); - pointer(P):=@DefaultDLLExtensions; - end; {***************************************************************************** Initialize @@ -102,7 +86,11 @@ end. { $Log$ - Revision 1.4 2004-06-20 08:55:32 florian + Revision 1.5 2004-10-25 15:38:41 peter + * heap and heapsize removed + * checkpointer fixes + + Revision 1.4 2004/06/20 08:55:32 florian * logs truncated } diff --git a/compiler/systems/t_win32.pas b/compiler/systems/t_win32.pas index db8967c6df..b934b47ae4 100644 --- a/compiler/systems/t_win32.pas +++ b/compiler/systems/t_win32.pas @@ -55,7 +55,6 @@ interface procedure importvariable_str(const s:string;const name,module:string); procedure importprocedure_str(const func,module:string;index:longint;const name:string); public - procedure GetDefExt(var N:longint;var P:pStr4);virtual; procedure preparelib(const s:string);override; procedure importprocedure(aprocdef:tprocdef;const module:string;index:longint;const name:string);override; procedure importvariable(vs:tvarsym;const name,module:string);override; @@ -94,7 +93,6 @@ interface function FindDLL(const s:string;var founddll:string):boolean; function ExtractDllName(Const Name : string) : string; public - procedure GetDefExt(var N:longint;var P:pStr4);virtual; function isSuitableFileType(x:cardinal):longbool;override; function GetEdata(HeaderEntry:cardinal):longbool;override; function Scan(const binname:string):longbool;override; @@ -105,33 +103,10 @@ implementation uses cpuinfo,cgutils; - function DllName(Const Name : string;NdefExt:longint;DefExt:pStr4) : string; - var n : string; - i:longint; - begin - n:=Upper(SplitExtension(Name)); - for i:=1 to NdefExt do - if n=DefExt^[i]then - begin - DllName:=Name; - exit; - end - else - DllName:=Name+target_info.sharedlibext; - end; - -const - DefaultDLLExtensions:array[1..MAX_DEFAULT_EXTENSIONS]of string[4]=('.DLL','.DRV','.EXE'); - {***************************************************************************** TIMPORTLIBWIN32 *****************************************************************************} - procedure timportlibwin32.GetDefExt(var N:longint;var P:pStr4); - begin - N:=sizeof(DefaultDLLExtensions)div sizeof(DefaultDLLExtensions[1]); - pointer(P):=@DefaultDLLExtensions; - end; procedure timportlibwin32.preparelib(const s : string); begin @@ -145,15 +120,12 @@ const hp1 : timportlist; hp2 : twin32imported_item; hs : string; - PP : pStr4; - NN : longint; begin { force the current mangledname } if assigned(aprocdef) then aprocdef.has_mangledname:=true; { append extension if required } - GetDefExt(NN,PP); - hs:=DllName(module,NN,PP); + hs:=AddExtension(module,target_info.sharedlibext); { search for the module } hp1:=timportlist(current_module.imports.first); while assigned(hp1) do @@ -208,11 +180,8 @@ const hp1 : timportlist; hp2 : twin32imported_item; hs : string; - NN : longint; - PP : pStr4; begin - GetDefExt(NN,PP); - hs:=DllName(module,NN,PP); + hs:=AddExtension(module,target_info.sharedlibext); { search for the module } hp1:=timportlist(current_module.imports.first); while assigned(hp1) do @@ -1383,12 +1352,6 @@ end; TDLLScannerWin32 ****************************************************************************} - procedure tDLLScannerWin32.GetDefExt(var N:longint;var P:pStr4); - begin - N:=sizeof(DefaultDLLExtensions)div sizeof(DefaultDLLExtensions[1]); - pointer(P):=@DefaultDLLExtensions; - end; - function tDLLScannerWin32.DOSstubOK(var x:cardinal):boolean; begin blockread(f,TheWord,2,loaded); @@ -1611,16 +1574,16 @@ function tDLLScannerWin32.GetEdata(HeaderEntry:cardinal):longbool; function tDLLScannerWin32.scan(const binname:string):longbool; var OldFileMode:longint; + hs, foundimp : string; - NN:longint;PP:pStr4; begin Scan:=false; { is there already an import library the we will use that one } if FindLibraryFile(binname,target_info.staticClibprefix,target_info.staticClibext,foundimp) then exit; { check if we can find the dll } - GetDefExt(NN,PP); - if not FindDll(DLLName(binname,NN,PP),impname) then + hs:=AddExtension(binname,target_info.sharedlibext); + if not FindDll(hs,impname) then exit; { read the dll file } assign(f,impname); @@ -1654,7 +1617,11 @@ initialization end. { $Log$ - Revision 1.39 2004-10-15 09:24:38 mazen + Revision 1.40 2004-10-25 15:38:41 peter + * heap and heapsize removed + * checkpointer fixes + + Revision 1.39 2004/10/15 09:24:38 mazen - remove $IFDEF DELPHI and related code - remove $IFDEF FPCPROCVAR and related code