diff --git a/compiler/cgobj.pas b/compiler/cgobj.pas index 18dccec241..a20c9ca7e9 100644 --- a/compiler/cgobj.pas +++ b/compiler/cgobj.pas @@ -1627,30 +1627,15 @@ implementation { type used is checked against todefs ranges. fromdef (p.resulttype.def) } { is the original type used at that location. When both defs are equal } { the check is also insert (needed for succ,pref,inc,dec) } -{$ifndef ver1_0} const aintmax=high(aint); -{$endif} var neglabel : tasmlabel; hreg : tregister; lto,hto, lfrom,hfrom : TConstExprInt; from_signed: boolean; -{$ifdef ver1_0} - aintmax : aint; -{$endif ver1_0} begin -{$ifdef ver1_0} - {$ifdef cpu64bit} - { this is required to prevent incorrect code } - aintmax:=$7fffffff; - aintmax:=int64(aintmax shl 16) or int64($ffff); - aintmax:=int64(aintmax shl 16) or int64($ffff); - {$else cpu64bit} - aintmax:=high(aint); - {$endif cpu64bit} -{$endif} { range checking on and range checkable value? } if not(cs_check_range in aktlocalswitches) or not(fromdef.deftype in [orddef,enumdef,arraydef]) then diff --git a/compiler/cresstr.pas b/compiler/cresstr.pas index afb5a9c43a..fc43d9fe33 100644 --- a/compiler/cresstr.pas +++ b/compiler/cresstr.pas @@ -90,10 +90,6 @@ begin FreeMem(Value,Len); end; -{$ifdef ver1_0} - {$R-} -{$endif} - procedure TResourceStringItem.CalcHash; Var g : Cardinal; diff --git a/compiler/cutils.pas b/compiler/cutils.pas index 9364b9f7c5..4d97a1c128 100644 --- a/compiler/cutils.pas +++ b/compiler/cutils.pas @@ -31,9 +31,6 @@ interface type -{$ifdef ver1_0} - ptrint = longint; -{$endif ver1_0} pstring = ^string; get_var_value_proc=function(const s:string):string of object; Tcharset=set of char; @@ -970,10 +967,6 @@ uses GetSpeedValue *****************************************************************************} -{$ifdef ver1_0} - {$R-} -{$endif} - var Crc32Tbl : array[0..255] of cardinal; diff --git a/compiler/globtype.pas b/compiler/globtype.pas index 962755d4c1..ad215c751b 100644 --- a/compiler/globtype.pas +++ b/compiler/globtype.pas @@ -45,12 +45,6 @@ than 255 characters. That's why using Ansi Strings} qword = int64; {$endif fpc} -{$ifdef ver1_0} - { Bootstrapping } - PtrInt = DWord; - SizeInt = Longint; -{$endif ver1_0} - { Natural integer register type and size for the target machine } {$ifdef cpu64bit} AWord = qword; diff --git a/compiler/powerpc/nppccnv.pas b/compiler/powerpc/nppccnv.pas index 4579800ded..ba60b7c372 100644 --- a/compiler/powerpc/nppccnv.pas +++ b/compiler/powerpc/nppccnv.pas @@ -117,14 +117,9 @@ implementation type tdummyarray = packed array[0..7] of byte; -{$ifdef VER1_0} - var - dummy1, dummy2: int64; -{$else VER1_0} const dummy1: int64 = $4330000080000000; dummy2: int64 = $4330000000000000; -{$endif VER1_0} var tempconst: trealconstnode; @@ -133,11 +128,6 @@ implementation size: tcgsize; signed : boolean; begin -{$ifdef VER1_0} - dummy1 := (int64(1) shl 31) or (int64($43300000) shl 32); - dummy2 := int64($43300000) shl 32; -{$endif VER1_0} - location_reset(location,LOC_FPUREGISTER,def_cgsize(resulttype.def)); { the code here comes from the PowerPC Compiler Writer's Guide } diff --git a/compiler/systems.pas b/compiler/systems.pas index e10bb15cfc..a73d8d61a4 100644 --- a/compiler/systems.pas +++ b/compiler/systems.pas @@ -112,11 +112,12 @@ interface system_powerpc_MorphOS, { 33 } system_x86_64_freebsd, { 34 } system_i386_netwlibc, { 35 } - system_powerpc_Amiga, { 36 } + system_powerpc_Amiga, { 36 } system_x86_64_win64, { 37 } system_arm_wince, { 38 } system_ia64_win64, { 39 } - system_i386_wince { 40 } + system_i386_wince, { 40 } + system_x86_6432_linux { 41 } ); tasm = (as_none diff --git a/compiler/systems/i_linux.pas b/compiler/systems/i_linux.pas index a120a59775..1b4ee423d3 100644 --- a/compiler/systems/i_linux.pas +++ b/compiler/systems/i_linux.pas @@ -89,6 +89,68 @@ unit i_linux; abi : abi_default ); + system_x86_6432_linux_info : tsysteminfo = + ( + system : system_x86_6432_LINUX; + name : 'Linux for x64_6432'; + shortname : 'Linux6432'; + flags : [tf_needs_symbol_size,tf_pic_uses_got{,tf_smartlink_sections}]; + cpu : cpu_x86_64; + unit_env : 'LINUXUNITS'; + extradefines : 'UNIX;HASUNIX'; + exeext : ''; + defext : '.def'; + scriptext : '.sh'; + smartext : '.sl'; + unitext : '.ppu'; + unitlibext : '.ppl'; + asmext : '.s'; + objext : '.o'; + resext : '.res'; + resobjext : '.or'; + sharedlibext : '.so'; + staticlibext : '.a'; + staticlibprefix : 'libp'; + sharedlibprefix : 'lib'; + sharedClibext : '.so'; + staticClibext : '.a'; + staticClibprefix : 'lib'; + sharedClibprefix : 'lib'; + p_ext_support : false; + Cprefix : ''; + newline : #10; + dirsep : '/'; + files_case_relevent : true; + assem : as_i386_elf32; + assemextern : as_gas; + link : nil; + linkextern : nil; + ar : ar_gnu_ar; + res : res_none; + script : script_unix; + endian : endian_little; + alignment : + ( + procalign : 16; + loopalign : 4; + jumpalign : 0; + constalignmin : 0; + constalignmax : 8; + varalignmin : 0; + varalignmax : 8; + localalignmin : 4; + localalignmax : 4; + recordalignmin : 0; + recordalignmax : 4; + maxCrecordalign : 4 + ); + first_parm_offset : 8; + stacksize : 262144; + DllScanSupported:false; + use_function_relative_addresses : true; + abi : abi_default + ); + system_m68k_linux_info : tsysteminfo = ( system : system_m68k_linux; diff --git a/compiler/systems/t_linux.pas b/compiler/systems/t_linux.pas index 36a013fddd..bdfd7ba851 100644 --- a/compiler/systems/t_linux.pas +++ b/compiler/systems/t_linux.pas @@ -549,6 +549,11 @@ initialization RegisterImport(system_i386_linux,timportliblinux); RegisterExport(system_i386_linux,texportliblinux); RegisterTarget(system_i386_linux_info); + + RegisterExternalLinker(system_x86_6432_linux_info,TLinkerLinux); + RegisterImport(system_x86_6432_linux,timportliblinux); + RegisterExport(system_x86_6432_linux,texportliblinux); + RegisterTarget(system_x86_6432_linux_info); {$endif i386} {$ifdef m68k} RegisterExternalLinker(system_m68k_linux_info,TLinkerLinux); diff --git a/compiler/verbose.pas b/compiler/verbose.pas index 4a11923602..b15842cb45 100644 --- a/compiler/verbose.pas +++ b/compiler/verbose.pas @@ -582,80 +582,31 @@ var procedure Message1(w:longint;const s1:string); -{$ifdef ver1_0} - var - hs1 : string; -{$endif ver1_0} + begin MaybeLoadMessageFile; -{$ifdef ver1_0} - { 1.0.x is broken, it uses concatcopy instead of shortstring - copy when passing array of shortstring. (PFV) } - hs1:=s1; - Msg2Comment(msg^.Get(w,[hs1])); -{$else ver1_0} Msg2Comment(msg^.Get(w,[s1])); -{$endif ver1_0} end; procedure Message2(w:longint;const s1,s2:string); -{$ifdef ver1_0} - var - hs1,hs2 : string; -{$endif ver1_0} begin MaybeLoadMessageFile; -{$ifdef ver1_0} - { 1.0.x is broken, it uses concatcopy instead of shortstring - copy when passing array of shortstring. (PFV) } - hs1:=s1; - hs2:=s2; - Msg2Comment(msg^.Get(w,[hs1,hs2])); -{$else ver1_0} Msg2Comment(msg^.Get(w,[s1,s2])); -{$endif ver1_0} end; procedure Message3(w:longint;const s1,s2,s3:string); -{$ifdef ver1_0} - var - hs1,hs2,hs3 : string; -{$endif ver1_0} begin MaybeLoadMessageFile; -{$ifdef ver1_0} - { 1.0.x is broken, it uses concatcopy instead of shortstring - copy when passing array of shortstring. (PFV) } - hs1:=s1; - hs2:=s2; - hs3:=s3; - Msg2Comment(msg^.Get(w,[hs1,hs2,hs3])); -{$else ver1_0} Msg2Comment(msg^.Get(w,[s1,s2,s3])); -{$endif ver1_0} end; procedure Message4(w:longint;const s1,s2,s3,s4:string); -{$ifdef ver1_0} - var - hs1,hs2,hs3,hs4 : string; -{$endif ver1_0} begin MaybeLoadMessageFile; -{$ifdef ver1_0} - { 1.0.x is broken, it uses concatcopy instead of shortstring - copy when passing array of shortstring. (PFV) } - hs1:=s1; - hs2:=s2; - hs3:=s3; - hs4:=s4; - Msg2Comment(msg^.Get(w,[hs1,hs2,hs3,hs4])); -{$else ver1_0} Msg2Comment(msg^.Get(w,[s1,s2,s3,s4])); -{$endif ver1_0} end;