diff options
272 files changed, 2721 insertions, 696 deletions
@@ -1079,10 +1079,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif @@ -1690,7 +1698,7 @@ ifdef CREATESHARED override FPCOPT+=-Cg endif ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),) -ifneq ($(findstring $(CPU_TARGET),x86_64 mips mipsel),) +ifneq ($(findstring $(CPU_TARGET),x86_64 mips mipsel riscv64),) override FPCOPT+=-Cg endif endif diff --git a/compiler/Makefile b/compiler/Makefile index 6c7e02ac48..beec32d92e 100644 --- a/compiler/Makefile +++ b/compiler/Makefile @@ -2789,10 +2789,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif @@ -5085,9 +5093,9 @@ endif cycledep: $(MAKE) cycle USEDEPEND=1 extcycle: - $(MAKE) cycle OPT="$(OPT) -n -glttt -CRriot -dEXTDEBUG" ALLOW_WARNINGS=1 + $(MAKE) cycle RTLOPT="$(RTLOPT) -n -glttt -CRriot -dEXTDEBUG" LOCALOPT="$(LOCALOPT) -n -glttt -CRriot -dEXTDEBUG" ALLOW_WARNINGS=1 extoptcycle: - $(MAKE) cycle OPT="$(OPT) -n -glttt -CRriot -dEXTDEBUG -dDEBUG_ALL_OPT" ALLOW_WARNINGS=1 + $(MAKE) cycle RTLOPT="$(RTLOPT) -n -glttt -CRriot -dEXTDEBUG -dDEBUG_ALL_OPT" LOCALOPT="$(LOCALOPT) -n -glttt -CRriot -dEXTDEBUG -dDEBUG_ALL_OPT" ALLOW_WARNINGS=1 cvstest: $(MAKE) cycle 'LOCALOPT=-n -Se' 'RTLOPT=-n -Se' ifeq ($(findstring -dFPC_SOFT_FPUX80,$(LOCALOPT)),) diff --git a/compiler/cfidwarf.pas b/compiler/cfidwarf.pas index ddc3a13000..fd5ff4c4dd 100644 --- a/compiler/cfidwarf.pas +++ b/compiler/cfidwarf.pas @@ -301,6 +301,13 @@ implementation list.concat(tai_const.create_uleb128bit(dwarf_reg(NR_STACK_POINTER_REG))); list.concat(tai_const.create_uleb128bit(0)); end; +{$elseif defined(riscv)} + procedure TDwarfAsmCFILowLevel.generate_initial_instructions(list:TAsmList); + begin + list.concat(tai_const.create_8bit(DW_CFA_def_cfa)); + list.concat(tai_const.create_uleb128bit(dwarf_reg(NR_STACK_POINTER_REG))); + list.concat(tai_const.create_uleb128bit(0)); + end; {$else} { if more cpu dependend stuff is implemented, this needs more refactoring } procedure TDwarfAsmCFILowLevel.generate_initial_instructions(list:TAsmList); diff --git a/compiler/cgbase.pas b/compiler/cgbase.pas index 21c36c233b..4f55c9acf9 100644 --- a/compiler/cgbase.pas +++ b/compiler/cgbase.pas @@ -99,7 +99,9 @@ interface addr_lo12, addr_pcrel_hi20, addr_pcrel_lo12, - addr_pcrel + addr_pcrel, + addr_got_pcrel_hi, + addr_plt {$endif RISCV} {$IFDEF AVR} ,addr_lo8 diff --git a/compiler/options.pas b/compiler/options.pas index b2ecee0870..022d634071 100644 --- a/compiler/options.pas +++ b/compiler/options.pas @@ -283,6 +283,22 @@ const end; end; + procedure ListOSTargetsXML; + var + target : tsystem; + begin + WriteLn(xmloutput,' <ostargets>'); + for target:=low(tsystem) to high(tsystem) do + if assigned(targetinfos[target]) then + begin + Write(xmloutput,' <ostarget shortname="',targetinfos[target]^.shortname,'" name="',targetinfos[target]^.name,'"'); + if tf_under_development in targetinfos[target]^.flags then + Write(' experimental="1"'); + WriteLn('/>'); + end; + WriteLn(xmloutput,' </ostargets>'); + end; + procedure ListCPUInstructionSets (OrigString: TCmdStr); var cpu : tcputype; @@ -321,6 +337,17 @@ const end; end; + procedure ListCPUInstructionSetsXML; + var + cpu : tcputype; + begin + WriteLn(xmloutput,' <cpuinstructionsets>'); + for cpu:=low(tcputype) to high(tcputype) do + if CPUTypeStr [CPU] <> '' then + WriteLn(xmloutput,' <cpuinstructionset name="',CPUTypeStr [CPU], '"/>'); + WriteLn(xmloutput,' </cpuinstructionsets>'); + end; + procedure ListFPUInstructionSets (OrigString: TCmdStr); var fpu : tfputype; @@ -359,6 +386,17 @@ const end; end; + procedure ListFPUInstructionSetsXML; + var + fpu : tfputype; + begin + WriteLn(xmloutput,' <fpuinstructionsets>'); + for fpu:=low(tfputype) to high(tfputype) do + if FPUTypeStr [fpu] <> '' then + WriteLn(xmloutput,' <cpuinstructionset name="',FPUTypeStr [fpu], '"/>'); + WriteLn(xmloutput,' </fpuinstructionsets>'); + end; + procedure ListABITargets (OrigString: TCmdStr); var abi : tabi; @@ -383,6 +421,21 @@ const end; end; + procedure ListABITargetsXML; + var + abi : tabi; + begin + WriteLn(xmloutput,' <abis>'); + for abi:=low(abi) to high(abi) do + begin + if not abiinfo[abi].supported then + continue; + if abiinfo[abi].name<>'' then; + WriteLn(xmloutput,' <abi name="',abiinfo[abi].name, '"/>'); + end; + WriteLn(xmloutput,' </abis>'); + end; + procedure ListOptimizations (OrigString: TCmdStr); var opt : toptimizerswitch; @@ -412,11 +465,11 @@ const var opt: toptimizerswitch; begin - WriteLn(xmloutput,'<optimizations>'); + WriteLn(xmloutput,' <optimizations>'); for opt:=low(toptimizerswitch) to high(toptimizerswitch) do if OptimizerSwitchStr[opt]<>'' then - WriteLn(xmloutput,'<optimization name="',OptimizerSwitchStr[opt],'"/>'); - WriteLn(xmloutput,'</optimizations>'); + WriteLn(xmloutput,' <optimization name="',OptimizerSwitchStr[opt],'"/>'); + WriteLn(xmloutput,' </optimizations>'); end; procedure ListWPOptimizations (OrigString: TCmdStr); @@ -446,6 +499,17 @@ const end; end; + procedure ListWPOptimizationsXML; + var + wpopt: twpoptimizerswitch; + begin + WriteLn(xmloutput,' <wpoptimizations>'); + for wpopt:=low(twpoptimizerswitch) to high(twpoptimizerswitch) do + if WPOptimizerSwitchStr[wpopt]<>'' then + WriteLn(xmloutput,' <wpoptimization name="',WPOptimizerSwitchStr[wpopt],'"/>'); + WriteLn(xmloutput,' </wpoptimizations>'); + end; + procedure ListAsmModes (OrigString: TCmdStr); var asmmode : tasmmode; @@ -469,6 +533,17 @@ const end; end; + procedure ListAsmModesXML; + var + asmmode : tasmmode; + begin + WriteLn(xmloutput,' <asmmodes>'); + for asmmode:=low(tasmmode) to high(tasmmode) do + if assigned(asmmodeinfos[asmmode]) then + WriteLn(xmloutput,' <asmmode name="',asmmodeinfos[asmmode]^.idtxt,'"/>'); + WriteLn(xmloutput,' </asmmodes>'); + end; + procedure ListControllerTypes (OrigString: TCmdStr); var controllertype : tcontrollertype; @@ -522,11 +597,11 @@ const {$WARN 6018 OFF} (* Unreachable code due to compile time evaluation *) if (ControllerSupport) then begin - WriteLn(xmloutput,'<controllertypes>'); + WriteLn(xmloutput,' <controllertypes>'); for controllertype:=low(tcontrollertype) to high(tcontrollertype) do if embedded_controllers[controllertype].ControllerTypeStr<>'' then - WriteLn(xmloutput,'<controllertype name="',embedded_controllers[controllertype].ControllerTypeStr,'"/>'); - WriteLn(xmloutput,'</controllertypes>'); + WriteLn(xmloutput,' <controllertype name="',embedded_controllers[controllertype].ControllerTypeStr,'"/>'); + WriteLn(xmloutput,' </controllertypes>'); end; {$POP} end; @@ -569,6 +644,17 @@ const end; end; + procedure ListFeaturesXML; + var + Feature: TFeature; + begin + WriteLn(xmloutput,' <features>'); + for Feature := Low (TFeature) to High (TFeature) do + if FeatureStr [Feature] <> '' then + WriteLn(xmloutput,' <feature name="',FeatureStr [Feature],'"/>'); + WriteLn(xmloutput,' </features>'); + end; + procedure ListModeswitches (OrigString: TCmdStr); var Modeswitch: TModeswitch; @@ -607,6 +693,17 @@ const end; end; + procedure ListModeswitchesXML; + var + Modeswitch: TModeswitch; + begin + WriteLn(xmloutput,' <modeswitches>'); + for Modeswitch:=Low(TModeswitch) to High(TModeswitch) do + if ModeswitchStr [Modeswitch]<>'' then + WriteLn(xmloutput,' <modeswitch name="',ModeswitchStr [Modeswitch],'"/>'); + WriteLn(xmloutput,' </modeswitches>'); + end; + procedure ListCodeGenerationBackend (OrigString: TCmdStr); begin SplitLine (OrigString, CodeGenerationBackendPlaceholder, HS3); @@ -621,6 +718,11 @@ const end; end; + procedure ListCodeGenerationBackendXML; + begin + WriteLn(xmloutput,' <codegeneratorbackend>',cgbackend2str[cgbackend],'</codegeneratorbackend>'); + end; + begin if More = '' then begin @@ -662,10 +764,19 @@ begin Rewrite(xmloutput); WriteLn(xmloutput,'<?xml version="1.0" encoding="utf-8"?>'); WriteLn(xmloutput,'<fpcoutput>'); - WriteLn(xmloutput,'<info>'); + WriteLn(xmloutput,' <info>'); + ListOSTargetsXML; + ListCPUInstructionSetsXML; + ListFPUInstructionSetsXML; + ListABITargetsXML; ListOptimizationsXML; + ListWPOptimizationsXML; + ListModeswitchesXML; + ListAsmModesXML; ListControllerTypesXML; - WriteLn(xmloutput,'</info>'); + ListFeaturesXML; + ListCodeGenerationBackendXML; + WriteLn(xmloutput,' </info>'); WriteLn(xmloutput,'</fpcoutput>'); Close(xmloutput); end diff --git a/compiler/riscv/aasmcpu.pas b/compiler/riscv/aasmcpu.pas index 01eb202ce7..2a5a6ce6e6 100644 --- a/compiler/riscv/aasmcpu.pas +++ b/compiler/riscv/aasmcpu.pas @@ -47,6 +47,7 @@ uses constructor op_reg(op : tasmop;_op1 : tregister); constructor op_const(op : tasmop;_op1 : aint); + constructor op_ref(op : tasmop;_op1 : treference); constructor op_reg_reg(op : tasmop;_op1,_op2 : tregister); constructor op_reg_ref(op : tasmop;_op1 : tregister;const _op2 : treference); @@ -144,6 +145,14 @@ uses cutils, cclasses; end; + constructor taicpu.op_ref(op : tasmop;_op1 : treference); + begin + inherited create(op); + ops:=1; + loadref(0,_op1); + end; + + constructor taicpu.op_const(op : tasmop;_op1 : aint); begin inherited create(op); diff --git a/compiler/riscv/agrvgas.pas b/compiler/riscv/agrvgas.pas index a71a06aa74..6c52e84057 100644 --- a/compiler/riscv/agrvgas.pas +++ b/compiler/riscv/agrvgas.pas @@ -74,7 +74,8 @@ unit agrvgas; else begin s :=''; - s := s+'('; + if not(refaddr in [addr_no,addr_pic_no_got,addr_plt]) then + s := s+'('; if assigned(symbol) then begin if asminfo^.dollarsign<>'$' then @@ -103,14 +104,10 @@ unit agrvgas; s:=s+tostr(offset); end; - if not(refaddr in [addr_no,addr_pic_no_got]) then + if not(refaddr in [addr_no,addr_pic_no_got,addr_plt]) then begin s := s+')'; end; -{$ifdef cpu64bitaddr} - if (refaddr=addr_pic) then - s := s + '@got'; -{$endif cpu64bitaddr} if (index=NR_NO) then begin @@ -139,6 +136,8 @@ unit agrvgas; addr_hi20: s:='%hi'+s; addr_pcrel_lo12: s:='%pcrel_lo'+s; addr_pcrel_hi20: s:='%pcrel_hi'+s; + addr_got_pcrel_hi: s:='%got_pcrel_hi'+s; + addr_plt: s:=s+'@plt'; else ; end; diff --git a/compiler/riscv/cgrv.pas b/compiler/riscv/cgrv.pas index 9b5443b7cf..6921c8e88c 100644 --- a/compiler/riscv/cgrv.pas +++ b/compiler/riscv/cgrv.pas @@ -133,16 +133,24 @@ unit cgrv; else reference_reset_symbol(href,current_asmdata.WeakRefAsmSymbol(s,AT_FUNCTION),0,0,[]); - current_asmdata.getjumplabel(l); + if cs_create_pic in current_settings.moduleswitches then + begin + href.refaddr:=addr_plt; + list.concat(taicpu.op_ref(A_CALL,href)); + end + else + begin + current_asmdata.getjumplabel(l); - a_label(list,l); + a_label(list,l); - href.refaddr:=addr_pcrel_hi20; - list.concat(taicpu.op_reg_ref(A_AUIPC,NR_RETURN_ADDRESS_REG,href)); + href.refaddr:=addr_pcrel_hi20; + list.concat(taicpu.op_reg_ref(A_AUIPC,NR_RETURN_ADDRESS_REG,href)); - reference_reset_symbol(href,l,0,0,[]); - href.refaddr:=addr_pcrel_lo12; - list.concat(taicpu.op_reg_reg_ref(A_JALR,NR_RETURN_ADDRESS_REG,NR_RETURN_ADDRESS_REG,href)); + reference_reset_symbol(href,l,0,0,[]); + href.refaddr:=addr_pcrel_lo12; + list.concat(taicpu.op_reg_reg_ref(A_JALR,NR_RETURN_ADDRESS_REG,NR_RETURN_ADDRESS_REG,href)); + end; { not assigned while generating external wrappers } if assigned(current_procinfo) then @@ -721,20 +729,40 @@ unit cgrv; if assigned(ref.symbol) then begin - reference_reset_symbol(href,ref.symbol,ref.offset,ref.alignment,ref.volatility); - ref.symbol:=nil; - ref.offset:=0; + if cs_create_pic in current_settings.moduleswitches then + begin + reference_reset_symbol(href,ref.symbol,0,0,[]); + ref.symbol:=nil; - tmpreg:=getintregister(list,OS_INT); + tmpreg:=getintregister(list,OS_INT); - current_asmdata.getaddrlabel(l); - a_label(list,l); + current_asmdata.getaddrlabel(l); + a_label(list,l); - href.refaddr:=addr_pcrel_hi20; - list.concat(taicpu.op_reg_ref(A_AUIPC,tmpreg,href)); - reference_reset_symbol(href,l,0,0,ref.volatility); - href.refaddr:=addr_pcrel_lo12; - list.concat(taicpu.op_reg_reg_ref(A_ADDI,tmpreg,tmpreg,href)); + href.refaddr:=addr_got_pcrel_hi; + list.concat(taicpu.op_reg_ref(A_AUIPC,tmpreg,href)); + reference_reset_symbol(href,l,0,0,[]); + href.refaddr:=addr_pcrel_lo12; + href.base:=tmpreg; + list.concat(taicpu.op_reg_ref(A_LD,tmpreg,href)); + end + else + begin + reference_reset_symbol(href,ref.symbol,ref.offset,ref.alignment,ref.volatility); + ref.symbol:=nil; + ref.offset:=0; + + tmpreg:=getintregister(list,OS_INT); + + current_asmdata.getaddrlabel(l); + a_label(list,l); + + href.refaddr:=addr_pcrel_hi20; + list.concat(taicpu.op_reg_ref(A_AUIPC,tmpreg,href)); + reference_reset_symbol(href,l,0,0,ref.volatility); + href.refaddr:=addr_pcrel_lo12; + list.concat(taicpu.op_reg_reg_ref(A_ADDI,tmpreg,tmpreg,href)); + end; if (ref.index<>NR_NO) and (ref.base<>NR_NO) then diff --git a/compiler/riscv64/cpubase.pas b/compiler/riscv64/cpubase.pas index 13148d75ce..5e1d0f72d5 100644 --- a/compiler/riscv64/cpubase.pas +++ b/compiler/riscv64/cpubase.pas @@ -38,7 +38,7 @@ uses type TAsmOp=(A_None, { Pseudo instructions } - A_NOP, + A_NOP,A_CALL, { normal opcodes } A_LUI,A_AUIPC,A_JAL,A_JALR, A_Bxx,A_LB,A_LH,A_LW,A_LBU,A_LHU, diff --git a/compiler/riscv64/itcpugas.pas b/compiler/riscv64/itcpugas.pas index 4fabace6e8..1cb3701d69 100644 --- a/compiler/riscv64/itcpugas.pas +++ b/compiler/riscv64/itcpugas.pas @@ -30,7 +30,7 @@ unit itcpugas; const gas_op2str: array[tasmop] of string[14] = ('<none>', - 'nop', + 'nop','call', 'lui','auipc','jal','jalr', 'b','lb','lh','lw','lbu','lhu', 'sb','sh','sw', diff --git a/compiler/systems/i_linux.pas b/compiler/systems/i_linux.pas index a6e3e4f00b..8d43330105 100644 --- a/compiler/systems/i_linux.pas +++ b/compiler/systems/i_linux.pas @@ -1107,7 +1107,7 @@ unit i_linux; system : system_riscv32_linux; name : 'Linux for RISC-V 32'; shortname : 'Linux'; - flags : [tf_needs_symbol_size,tf_smartlink_sections, + flags : [tf_needs_symbol_size,tf_smartlink_sections,tf_needs_dwarf_cfi, tf_needs_symbol_type,tf_files_case_sensitive, tf_requires_proper_alignment,tf_has_winlike_resources, tf_supports_hidden_symbols]; @@ -1144,7 +1144,7 @@ unit i_linux; linkextern : ld_linux; ar : ar_gnu_ar; res : res_elf; - dbg : dbg_dwarf2; + dbg : dbg_dwarf3; script : script_unix; endian : endian_little; alignment : @@ -1177,7 +1177,7 @@ unit i_linux; system : system_riscv64_linux; name : 'Linux for RISC-V 64'; shortname : 'Linux'; - flags : [tf_needs_symbol_size,tf_smartlink_sections, + flags : [tf_needs_symbol_size,tf_library_needs_pic,tf_smartlink_sections,tf_needs_dwarf_cfi, tf_needs_symbol_type,tf_files_case_sensitive, tf_requires_proper_alignment,tf_has_winlike_resources, tf_supports_hidden_symbols @@ -1215,7 +1215,7 @@ unit i_linux; linkextern : ld_linux; ar : ar_gnu_ar; res : res_elf; - dbg : dbg_dwarf2; + dbg : dbg_dwarf3; script : script_unix; endian : endian_little; alignment : diff --git a/compiler/systems/t_linux.pas b/compiler/systems/t_linux.pas index aab48cbcae..7145003bce 100644 --- a/compiler/systems/t_linux.pas +++ b/compiler/systems/t_linux.pas @@ -538,7 +538,13 @@ begin Message1(exec_w_init_file_not_found,'crti.o'); { then the crtbegin* } - if cs_create_pic in current_settings.moduleswitches then + if (cs_create_pic in current_settings.moduleswitches) +{$ifdef RISCV} + { on RISC-V we need to use always the *S.o variants + if shared libraries are involved } + or (not SharedLibFiles.Empty) +{$endif RISCV} + then begin if librarysearchpath.FindFile('crtbeginS.o',false,s) then AddFileName(s) @@ -649,7 +655,13 @@ begin { objects which must be at the end } if linklibc and (libctype<>uclibc) then begin - if cs_create_pic in current_settings.moduleswitches then + if (cs_create_pic in current_settings.moduleswitches) +{$ifdef RISCV} + { on RISC-V we need to use always the *S.o variants + if shared libraries are involved } + or linksToSharedLibFiles +{$endif RISCV} + then begin found1:=librarysearchpath.FindFile('crtendS.o',false,s1); if not(found1) then diff --git a/compiler/utils/Makefile b/compiler/utils/Makefile index 0bb7a9e1b9..d492dc6de8 100644 --- a/compiler/utils/Makefile +++ b/compiler/utils/Makefile @@ -1862,10 +1862,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/installer/Makefile b/installer/Makefile index 166f511d24..78c5f26c3a 100644 --- a/installer/Makefile +++ b/installer/Makefile @@ -1031,10 +1031,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/Makefile b/packages/Makefile index cbf62b2804..fac2d2042b 100644 --- a/packages/Makefile +++ b/packages/Makefile @@ -631,10 +631,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/a52/Makefile b/packages/a52/Makefile index 9251e2273a..534bf0ec55 100644 --- a/packages/a52/Makefile +++ b/packages/a52/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/ami-extra/Makefile b/packages/ami-extra/Makefile index 0bff15dd23..30a20d6a32 100644 --- a/packages/ami-extra/Makefile +++ b/packages/ami-extra/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/amunits/Makefile b/packages/amunits/Makefile index 6370ddff11..701495ab16 100644 --- a/packages/amunits/Makefile +++ b/packages/amunits/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/amunits/src/otherlibs/ahi_sub.pas b/packages/amunits/src/otherlibs/ahi_sub.pas index 54f4a37619..de862b5702 100644 --- a/packages/amunits/src/otherlibs/ahi_sub.pas +++ b/packages/amunits/src/otherlibs/ahi_sub.pas @@ -30,11 +30,6 @@ } {$PACKRECORDS 2} -{$I useamigasmartlink.inc} -{$ifdef use_amiga_smartlink} - {$smartlink on} -{$endif use_amiga_smartlink} - UNIT AHI_SUB; INTERFACE diff --git a/packages/amunits/src/otherlibs/amarquee.pas b/packages/amunits/src/otherlibs/amarquee.pas index 77522e8664..0a938db0a9 100644 --- a/packages/amunits/src/otherlibs/amarquee.pas +++ b/packages/amunits/src/otherlibs/amarquee.pas @@ -37,10 +37,6 @@ } -{$I useamigasmartlink.inc} -{$ifdef use_amiga_smartlink} - {$smartlink on} -{$endif use_amiga_smartlink} unit amarquee; diff --git a/packages/amunits/src/otherlibs/cybergraphics.pas b/packages/amunits/src/otherlibs/cybergraphics.pas index 4c35269e99..33dc245af8 100644 --- a/packages/amunits/src/otherlibs/cybergraphics.pas +++ b/packages/amunits/src/otherlibs/cybergraphics.pas @@ -218,14 +218,14 @@ const BMB_SPECIALFMT = 7; BMF_SPECIALFMT = 1 shl BMB_SPECIALFMT; -FUNCTION AllocCModeListTagList(ModeListTags : pTagItem location 'a1') : pList; syscall CyberGfxBase 072; +FUNCTION AllocCModeListTagList(ModeListTags : pTagItem location 'a1') : PCyberModeNode; syscall CyberGfxBase 072; FUNCTION BestCModeIDTagList(BestModeIDTags : pTagItem location 'a0') : longword; syscall CyberGfxBase 060; FUNCTION CModeRequestTagList(ModeRequest : POINTER location 'a0'; ModeRequestTags : pTagItem location 'a1') : longword; syscall CyberGfxBase 066; PROCEDURE CVideoCtrlTagList(ViewPort : pViewPort location 'a0'; TagList : pTagItem location 'a1'); syscall CyberGfxBase 162; PROCEDURE DoCDrawMethodTagList(Hook : pHook location 'a0'; a1arg : pRastPort location 'a1'; TagList : pTagItem location 'a2'); syscall CyberGfxBase 156; FUNCTION ExtractColor(a0arg : pRastPort location 'a0'; BitMap : pBitMap location 'a1'; Colour : longword location 'd0'; SrcX : longword location 'd1'; SrcY : longword location 'd2'; Width : longword location 'd3'; Height : longword location 'd4') : longword; syscall CyberGfxBase 186; FUNCTION FillPixelArray(a1arg : pRastPort location 'a1'; DestX : WORD location 'd0'; DestY : WORD location 'd1'; SizeX : WORD location 'd2'; SizeY : WORD location 'd3'; ARGB : longword location 'd4') : longword; syscall CyberGfxBase 150; -PROCEDURE FreeCModeList(ModeList : pList location 'a0'); syscall CyberGfxBase 078; +PROCEDURE FreeCModeList(ModeList : PCyberModeNode location 'a0'); syscall CyberGfxBase 078; FUNCTION GetCyberIDAttr(CyberIDAttr : longword location 'd0'; CyberDisplayModeID : longword location 'd1') : longword; syscall CyberGfxBase 102; FUNCTION GetCyberMapAttr(CyberGfxBitmap : pBitMap location 'a0'; CyberAttrTag : longword location 'd0') : longword; syscall CyberGfxBase 096; FUNCTION InvertPixelArray(a1arg : pRastPort location 'a1'; DestX : WORD location 'd0'; DestY : WORD location 'd1'; SizeX : WORD location 'd2'; SizeY : WORD location 'd3') : longword; syscall CyberGfxBase 144; @@ -243,7 +243,7 @@ FUNCTION WriteRGBPixel(a1arg : pRastPort location 'a1'; x : WORD location 'd0'; { Functions and procedures with array of PtrUInt go here } -FUNCTION AllocCModeListTags(const ModeListTags : array of PtrUInt) : pList; +FUNCTION AllocCModeListTags(const ModeListTags : array of PtrUInt) : PCyberModeNode; FUNCTION BestCModeIDTags(const BestModeIDTags : array of PtrUInt) : longword; FUNCTION CModeRequestTags(ModeRequest : POINTER; const ModeRequestTags : array of PtrUInt) : longword; PROCEDURE CVideoCtrlTags(ViewPort : pViewPort; const TagList : array of PtrUInt); @@ -258,7 +258,7 @@ IMPLEMENTATION { Functions and procedures with array of PtrUInt go here } -FUNCTION AllocCModeListTags(const ModeListTags : array of PtrUInt) : pList; +FUNCTION AllocCModeListTags(const ModeListTags : array of PtrUInt) : PCyberModeNode; begin AllocCModeListTags := AllocCModeListTagList(@ModeListTags); end; diff --git a/packages/amunits/src/useamigasmartlink.inc b/packages/amunits/src/useamigasmartlink.inc deleted file mode 100644 index 1e83bf4583..0000000000 --- a/packages/amunits/src/useamigasmartlink.inc +++ /dev/null @@ -1,40 +0,0 @@ - -{ useamigasmartlink.inc } - -{ - This file is part of the Free Pascal run time library. - - A file in Amiga system run time library. - Copyright (c) 2003 by Nils Sjoholm - member of the Amiga RTL development team. - - See the file COPYING.FPC, included in this distribution, - for details about the copyright. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - - **********************************************************************} - -{ - This includefile sets the define use_amiga_smartlink. - - This way I can be sure that all units that reads - this includefile is compiled with smartlink. - - If you don't want smartlink just put a space before - $define use_amiga_smartlink. - - 11 Jan 2003. - - nils.sjoholm@mailbox.swipnet.se - -} - -{$ifndef use_amiga_smartlink} - {$define use_amiga_smartlink} -{$endif} - - - diff --git a/packages/amunits/src/useautoopenlib.inc b/packages/amunits/src/useautoopenlib.inc deleted file mode 100644 index ee82adfe3b..0000000000 --- a/packages/amunits/src/useautoopenlib.inc +++ /dev/null @@ -1,87 +0,0 @@ - -{ useautoopenlib.inc } - -{ - This file is part of the Free Pascal run time library. - - A file in Amiga system run time library. - Copyright (c) 2003 by Nils Sjoholm - member of the Amiga RTL development team. - - See the file COPYING.FPC, included in this distribution, - for details about the copyright. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - - **********************************************************************} - -{ - In this includefile you can set some defines on how - to compile amiga units. - - use_auto_openlib. - If you use use_auto_openlib the unit will compile - with autoopening of the unit at startup. You don't - have to think about open and close the library, all - is done in the unit. One problem is that the library - will be loaded at startup so there can be a memory- - problem. As default I have compiled all amiga system - units as autoopened. Exec, intuition, amigados and - utility is all opened on startup by sysamiga. - - - use_init_openlib. - If you compile with this define you get a procedure - in every unit as an example for asl.library you - have "procedure InitAslLibrary;". All you have to - do is - InitAslLibrary in the beginning of your program. - You don't have to close the library the unit will - handle that. - - dont_use_openlib. - This is the standard amiga way. You have to open - the library yourself and at the end close it. - - When you compile a unit you will get warnings or - info on how the defines are set. - - First version of this include. - 11 Jan 2003. - - Added use_init_openlib and dont_use_openlib. - 21 Jan 2003. - - nils.sjoholm@mailbox.swipnet.se - -} - -{ - Make sure that there is only one define set. - Just put a space before the define to undef -} - -{$define use_auto_openlib} -{ $define use_init_openlib} -{ $define dont_use_openlib} - -{$ifdef use_auto_openlib} - {$undef use_init_openlib} - {$undef use_init_openlib} -{$endif use_auto_openlib} - -{$ifdef use_init_openlib} - {$undef use_auto_openlib} - {$undef dont_use_openlib} -{$endif use_init_openlib} - -{$ifdef dont_use_openlib} - {$undef use_auto_openlib} - {$undef use_init_openlib} -{$endif dont_use_openlib} - - - - diff --git a/packages/amunits/src/utilunits/amigautils.pas b/packages/amunits/src/utilunits/amigautils.pas index d9f4df022d..c30be2f626 100644 --- a/packages/amunits/src/utilunits/amigautils.pas +++ b/packages/amunits/src/utilunits/amigautils.pas @@ -24,11 +24,6 @@ nils.sjoholm@mailbox.swipnet.se } -{$I useamigasmartlink.inc} -{$ifdef use_amiga_smartlink} - {$smartlink on} -{$endif use_amiga_smartlink} - unit amigautils; interface diff --git a/packages/amunits/src/utilunits/consoleio.pas b/packages/amunits/src/utilunits/consoleio.pas index ca9ed258bf..639ab4998d 100644 --- a/packages/amunits/src/utilunits/consoleio.pas +++ b/packages/amunits/src/utilunits/consoleio.pas @@ -34,11 +34,6 @@ unit consoleio; } -{$I useamigasmartlink.inc} -{$ifdef use_amiga_smartlink} - {$smartlink on} -{$endif use_amiga_smartlink} - interface uses exec, intuition, console, amigalib, conunit; diff --git a/packages/amunits/src/utilunits/doublebuffer.pas b/packages/amunits/src/utilunits/doublebuffer.pas index ca304cf522..566ef96374 100644 --- a/packages/amunits/src/utilunits/doublebuffer.pas +++ b/packages/amunits/src/utilunits/doublebuffer.pas @@ -14,11 +14,6 @@ **********************************************************************} -{$I useamigasmartlink.inc} -{$ifdef use_amiga_smartlink} - {$smartlink on} -{$endif use_amiga_smartlink} - unit doublebuffer; diff --git a/packages/amunits/src/utilunits/easyasl.pas b/packages/amunits/src/utilunits/easyasl.pas index 4f44547b29..466e76399d 100644 --- a/packages/amunits/src/utilunits/easyasl.pas +++ b/packages/amunits/src/utilunits/easyasl.pas @@ -33,11 +33,6 @@ nils.sjoholm@mailbox.swipnet.se } -{$I useamigasmartlink.inc} -{$ifdef use_amiga_smartlink} - {$smartlink on} -{$endif use_amiga_smartlink} - unit easyasl; diff --git a/packages/amunits/src/utilunits/hisoft.pas b/packages/amunits/src/utilunits/hisoft.pas index e30fd35a7d..2f344a9782 100644 --- a/packages/amunits/src/utilunits/hisoft.pas +++ b/packages/amunits/src/utilunits/hisoft.pas @@ -26,11 +26,6 @@ nils.sjoholm@mailbox.swipnet.se Nils Sjoholm } -{$I useamigasmartlink.inc} -{$ifdef use_amiga_smartlink} - {$smartlink on} -{$endif use_amiga_smartlink} - unit hisoft; interface diff --git a/packages/amunits/src/utilunits/linklist.pas b/packages/amunits/src/utilunits/linklist.pas index 4e7fbe8a83..263bbcee9e 100644 --- a/packages/amunits/src/utilunits/linklist.pas +++ b/packages/amunits/src/utilunits/linklist.pas @@ -14,10 +14,6 @@ **********************************************************************} -{$I useamigasmartlink.inc} -{$ifdef use_amiga_smartlink} - {$smartlink on} -{$endif use_amiga_smartlink} unit linklist; diff --git a/packages/amunits/src/utilunits/pastoc.pas b/packages/amunits/src/utilunits/pastoc.pas index 1264515c43..e6fd71535a 100644 --- a/packages/amunits/src/utilunits/pastoc.pas +++ b/packages/amunits/src/utilunits/pastoc.pas @@ -22,11 +22,6 @@ nils.sjoholm@mailbox.swipnet.se Nils Sjoholm } -{$I useamigasmartlink.inc} -{$ifdef use_amiga_smartlink} - {$smartlink on} -{$endif use_amiga_smartlink} - { This unit must be deprecated because at least: - It is leaking memory. It allocates a new buffer for each string which won't @@ -34,9 +29,9 @@ - The unit doesn't provide any way to free allocated string buffers manually. (Because ReleasePas2C is not a public function.) - It does allocations outside the Pascal heap, which the compiler has no control - over, and makes it very hard to track these allocations, because the heaptrc + over, and makes it very hard to track these allocations, because the heaptrc unit doesn't work. - - The intuition.library documentation states that AllocRemember() is a quite + - The intuition.library documentation states that AllocRemember() is a quite ineffective function, because it does two memory allocations and because it doesn't use memory pools it has a terrible effect on memory fragmentation. - It uses a for loop byte to copy the string contents, which is very slow. diff --git a/packages/amunits/src/utilunits/timerutils.pas b/packages/amunits/src/utilunits/timerutils.pas index 8b34d872ee..971ef13262 100644 --- a/packages/amunits/src/utilunits/timerutils.pas +++ b/packages/amunits/src/utilunits/timerutils.pas @@ -14,11 +14,6 @@ **********************************************************************} -{$I useamigasmartlink.inc} -{$ifdef use_amiga_smartlink} - {$smartlink on} -{$endif use_amiga_smartlink} - unit timerutils; { diff --git a/packages/amunits/src/utilunits/vartags.pas b/packages/amunits/src/utilunits/vartags.pas index 22e9a97f44..e5701c9208 100644 --- a/packages/amunits/src/utilunits/vartags.pas +++ b/packages/amunits/src/utilunits/vartags.pas @@ -13,10 +13,6 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. **********************************************************************} -{$I useamigasmartlink.inc} -{$ifdef use_amiga_smartlink} - {$smartlink on} -{$endif use_amiga_smartlink} unit vartags; diff --git a/packages/amunits/src/utilunits/wbargs.pas b/packages/amunits/src/utilunits/wbargs.pas index fe47f622e8..e2ff3ad78f 100644 --- a/packages/amunits/src/utilunits/wbargs.pas +++ b/packages/amunits/src/utilunits/wbargs.pas @@ -29,11 +29,6 @@ nils.sjoholm@mailbox.swipnet.se Nils Sjoholm } -{$I useamigasmartlink.inc} -{$ifdef use_amiga_smartlink} - {$smartlink on} -{$endif use_amiga_smartlink} - unit WBArgs; interface diff --git a/packages/arosunits/Makefile b/packages/arosunits/Makefile index dd622f4084..54af5bc84e 100644 --- a/packages/arosunits/Makefile +++ b/packages/arosunits/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/arosunits/src/agraphics.pas b/packages/arosunits/src/agraphics.pas index b4c0820a7c..38db177f37 100644 --- a/packages/arosunits/src/agraphics.pas +++ b/packages/arosunits/src/agraphics.pas @@ -495,16 +495,11 @@ type LayerInfo: PLayer_Info; // points to head of the list Lock: TSignalSemaphore; BackFill: PHook; -{$ifdef aros} VisibleRegion: PRegion; // Private! -{$else} - Reserved1: ULONG; -{$endif} ClipRegion: PRegion; SaveClipRects: PRegion; // used to back out when in trouble Width, Height: SmallInt; -{$ifdef aros} Shape: PRegion; // Private! ShapeRegion: PRegion; // Private! VisibleShape: PRegion; // Private! @@ -512,9 +507,6 @@ type SuperSaveClipRectCounter: Byte; // Private! Visible: Byte; // Private! Reserved2: array[0..1] of Byte; -{$else} - Reserved2: array[0..17] of Byte; -{$endif} { this must stay here } DamageList: PRegion; // list of rectangles to refreshthrough end; @@ -997,12 +989,12 @@ type ); 1:( DestAddr: SmallInt; // destination Pointer - DestData: SmallInt; // data to send + DestData: SmallInt; // data to send ); 2:( VWaitPos: SmallInt; // vertical wait position - HWaitPos: SmallInt; // horizontal wait position - ); + HWaitPos: SmallInt; // horizontal wait position + ); end; TCopList = record @@ -1678,7 +1670,6 @@ type Reserved: array[0..1] of IPTR; end; // AROS-specifics. -{$ifdef aros} const // Tags for AddDisplayDriverA() DDRV_BootMode = TAG_USER + $01; // (LongBool) Boot mode driver which will be @@ -1702,7 +1693,6 @@ type mask: ULONG; gfxhidd: APTR; end; -{$endif} const VTAG_END_CM = $00000000; @@ -1807,9 +1797,7 @@ type es_SimpleSprite: TSimpleSprite; { conventional simple sprite structure } es_WordWidth: Word; { graphics use only, subject to change } es_Flags: Word; { graphics use only, subject to change } -{$ifdef aros} // New in AROS es_Bitmap: PBitmap; // Actual image data. -{$endif} end; const @@ -1860,14 +1848,14 @@ const RPTAG_PenMode = $80000080; RPTAG_FgColor = $80000081; RPTAG_BgColor = $80000082; -{$ifdef aros} + // Extensions invented by AROS RPTAG_PatternOriginX = $800000C0; // SmallInt RPTAG_PatternOriginY = $800000C1; // SmallInt RPTAG_ClipRectangle = $800000C2; // PRectangle Clones PRectangle. RPTAG_ClipRectangleFlags = $800000C3; // LongWord RPTAG_RemapColorFonts = $800000C4; // LongBool -{$endif} + // Flags for ClipRectangleFlags RPCRF_RELRIGHT = $01; // ClipRectangle.MaxX is relative to right of layer/bitmap diff --git a/packages/arosunits/src/layers.pas b/packages/arosunits/src/layers.pas index 585d520fed..37877e0009 100644 --- a/packages/arosunits/src/layers.pas +++ b/packages/arosunits/src/layers.pas @@ -21,85 +21,122 @@ uses const - LAYERSIMPLE = 1; - LAYERSMART = 2; - LAYERSUPER = 4; - LAYERUPDATING = $10; - LAYERBACKDROP = $40; - LAYERREFRESH = $80; - LAYER_CLIPRECTS_LOST = $100; { during BeginUpdate } - { or during layerop } - { this happens if out of memory } - LMN_REGION = -1; + LAYERSIMPLE = 1 shl 0; + LAYERSMART = 1 shl 1; + LAYERSUPER = 1 shl 2; + LAYERUPDATING = 1 shl 4; + LAYERBACKDROP = 1 shl 6; + LAYERREFRESH = 1 shl 7; + LAYER_CLIPRECTS_LOST = 1 shl 8; // during BeginUpdate or during layerop this happens if out of memory + LAYERIREFRESH = 1 shl 9; + LAYERIREFRESH2 = 1 shl 10; + + LMN_REGION = -1; type - PLayer_Info = ^TLayer_Info; - TLayer_Info = record - top_layer : PLayer; - check_lp : PLayer; { !! Private !! } - obs : PClipRect; - FreeClipRects : PClipRect; { !! Private !! } - PrivateReserve1, { !! Private !! } - PrivateReserve2 : LongInt; { !! Private !! } - Lock : TSignalSemaphore; { !! Private !! } - gs_Head : TMinList; { !! Private !! } - PrivateReserve3 : SmallInt; { !! Private !! } - PrivateReserve4 : Pointer; { !! Private !! } - Flags : WORD; - fatten_count : Shortint; { !! Private !! } - LockLayersCount : Shortint; { !! Private !! } - PrivateReserve5 : SmallInt; { !! Private !! } - BlankHook, { !! Private !! } - LayerInfo_extra : Pointer; { !! Private !! } - end; + PLayer_Info = ^TLayer_Info; + TLayer_Info = record + top_layer : PLayer; + check_lp : PLayer; // Private + obs : PClipRect; + FreeClipRects : PClipRect; // Private + PrivateReserve1, // Private + PrivateReserve2: LongInt; // Private + Lock : TSignalSemaphore; // Private + gs_Head : TMinList; // Private + PrivateReserve3: SmallInt; // Private + PrivateReserve4: Pointer; // Private + Flags : Word; + fatten_count : Shortint; // Private + LockLayersCount: Shortint; // Private + PrivateReserve5: SmallInt; // Private + BlankHook, // Private + LayerInfo_extra: Pointer; // Private + end; + + // Backfill hook message + TBackFillMessage = record + Layer: PLayer; + Bounds: TRectangle; + OffsetX: LongInt; + OffsetY: LongInt; + end; + PBackFillMessage = ^TBackFillMessage; const - NEWLAYERINFO_CALLED = 1; - -{ - * LAYERS_NOBACKFILL is the value needed to get no backfill hook - * LAYERS_BACKFILL is the value needed to get the default backfill hook - } - LAYERS_NOBACKFILL = 1; - LAYERS_BACKFILL = 0; - - LAYERSNAME : PChar = 'layers.library'; + NEWLAYERINFO_CALLED = 1; + + LAYERS_NOBACKFILL = 1; // is the value needed to get no backfill hook + LAYERS_BACKFILL = 0; // is the value needed to get the default backfill hook + + // LayerInfo Flag + LIFLG_SUPPORTS_OFFSCREEN_LAYERS = 1 shl 8; // Same flag as AmigaOS hack PowerWindowsNG + + // Tags for CreateLayerTagList + + // AmigaOS4-compatible + LA_ShapeRegion = TAG_USER + 99 + 105; // ABI_V0 compatibility + LA_ShapeHook = TAG_USER + 35; // PRegion. Default is nil (rectangular shape) + LA_InFrontOf = TAG_USER + 99 + 102; // ABI_V0 compatibility + LA_Hidden = TAG_USER + 41; // LongBool. Default is False + // MorphOS-compatible + LA_Dummy = TAG_USER + 1024; + LA_BackfillHook = LA_Dummy + 1; // PHook. Default is LAYERS_BACKFILL + LA_TransRegion = LA_Dummy + 2; // PRegion. Default is nil (rectangular shape) + LA_TransHook = LA_Dummy + 3; + LA_WindowPtr = LA_Dummy + 4; + LA_SuperBitMap = TAG_USER + 99 + 14; // PBitMap. Default is nil (none) ABI_V0 compatibility + // AROS-specific + LA_AROS = TAG_USER + 1234; + LA_Behind = TAG_USER + 99 + 103; // ABI_V0 compatibility + LA_ChildOf = TAG_USER + 99 + 101; // ABI_V0 compatibility + + LAYERSNAME : PChar = 'layers.library'; var LayersBase : PLibrary; -function BeginUpdate(Layer: PLayer): LongInt; syscall LayersBase 13; -function BehindLayer(dummy: LongInt; Layer: PLayer): LongInt; syscall LayersBase 9; -function CreateBehindHookLayer(LayerInfo: PLayer_Info; Bitmap1: PBitMap; x0: LongInt; y0: LongInt; x1: LongInt; y1: LongInt; Flags: LongInt; Hook: PHook; SuperBitmap2: PBitMap): PLayer; syscall LayersBase 32; -function CreateBehindLayer(LayerInfo: PLayer_Info; Bitmap1: PBitMap; x0: LongInt; y0: LongInt; x1: LongInt; y1: LongInt; Flags: LongInt; SuperBitmap2: PBitMap): PLayer; syscall LayersBase 7; -function CreateUpfrontHookLayer(LayerInfo: PLayer_Info; Bitmap1: PBitMap; x0: LongInt; y0: LongInt; x1: LongInt; y1: LongInt; Flags: LongInt; Hook: PHook; SuperBitmap2: PBitMap): PLayer; syscall LayersBase 31; +procedure InitLayers(LayerInfo: PLayer_Info); syscall LayersBase 5; function CreateUpfrontLayer(LayerInfo: PLayer_Info; Bitmap1: PBitMap; x0: LongInt; y0: LongInt; x1: LongInt; y1: LongInt; Flags: LongInt; SuperBitmap2: PBitMap): PLayer; syscall LayersBase 6; +function CreateBehindLayer(LayerInfo: PLayer_Info; Bitmap1: PBitMap; x0: LongInt; y0: LongInt; x1: LongInt; y1: LongInt; Flags: LongInt; SuperBitmap2: PBitMap): PLayer; syscall LayersBase 7; +function UpfrontLayer(dummy: LongInt; Layer: PLayer): LongInt; syscall LayersBase 8; +function BehindLayer(dummy: LongInt; Layer: PLayer): LongInt; syscall LayersBase 9; +function MoveLayer(dummy: LongInt; Layer: PLayer; dx: LongInt; dy: LongInt): LongInt; syscall LayersBase 10; +function SizeLayer(dummy: LongInt; Layer: PLayer; dx: LongInt; dy: LongInt): LongInt; syscall LayersBase 11; +procedure ScrollLayer(dummy: LongInt; Layer: PLayer; dx: LongInt; dy: LongInt); syscall LayersBase 12; +function BeginUpdate(Layer: PLayer): LongInt; syscall LayersBase 13; +procedure EndUpdate(Layer: PLayer; Flag: LongWord); syscall LayersBase 14; function DeleteLayer(dummy: LongInt; Layer: PLayer): LongInt; syscall LayersBase 15; +procedure LockLayer(dummy: LongInt; Layer: PLayer); syscall LayersBase 16; +procedure UnlockLayer(Layer: PLayer); syscall LayersBase 17; +procedure LockLayers(LayerInfo: PLayer_Info); syscall LayersBase 18; +procedure UnlockLayers(LayerInfo: PLayer_Info); syscall LayersBase 19; +procedure LockLayerInfo(LayerInfo: PLayer_Info); syscall LayersBase 20; +procedure SwapBitsRastPortClipRect(rp: PRastPort; cr: PClipRect); syscall LayersBase 21; +function WhichLayer(LayerInfo: PLayer_Info; x: LongInt; y: LongInt): PLayer; syscall LayersBase 22; +procedure UnlockLayerInfo(LayerInfo: PLayer_Info); syscall LayersBase 23; +function NewLayerInfo: PLayer_Info; syscall LayersBase 24; procedure DisposeLayerInfo(LayerInfo: PLayer_Info); syscall LayersBase 25; -procedure DoHookClipRects(Hook: PHook; RPort: PRastPort;const Rect: PRectangle); syscall LayersBase 36; -procedure EndUpdate(Layer: PLayer; Flag: LongWord); syscall LayersBase 14; function FattenLayerInfo(LayerInfo: PLayer_Info): LongInt; syscall LayersBase 26; -procedure InitLayers(LayerInfo: PLayer_Info); syscall LayersBase 5; +procedure ThinLayerInfo(LayerInfo: PLayer_Info); syscall LayersBase 27; +function MoveLayerInFrontOf(layer_to_move: PLayer; other_layer: PLayer): LongInt; syscall LayersBase 28; function InstallClipRegion(Layer: PLayer; const Region: PRegion): PRegion; syscall LayersBase 29; +function MoveSizeLayer(Layer: PLayer; dx: LongInt; dy: LongInt; dw: LongInt; dh: LongInt): LongInt; syscall LayersBase 30; +function CreateUpfrontHookLayer(LayerInfo: PLayer_Info; Bitmap1: PBitMap; x0: LongInt; y0: LongInt; x1: LongInt; y1: LongInt; Flags: LongInt; Hook: PHook; SuperBitmap2: PBitMap): PLayer; syscall LayersBase 31; +function CreateBehindHookLayer(LayerInfo: PLayer_Info; Bitmap1: PBitMap; x0: LongInt; y0: LongInt; x1: LongInt; y1: LongInt; Flags: LongInt; Hook: PHook; SuperBitmap2: PBitMap): PLayer; syscall LayersBase 32; function InstallLayerHook(Layer: PLayer; Hook: PHook): PHook; syscall LayersBase 33; function InstallLayerInfoHook(LayerInfo: PLayer_Info; const Hook: PHook): PHook; syscall LayersBase 34; -procedure LockLayer(dummy: LongInt; Layer: PLayer); syscall LayersBase 16; -procedure LockLayerInfo(LayerInfo: PLayer_Info); syscall LayersBase 20; -procedure LockLayers(LayerInfo: PLayer_Info); syscall LayersBase 18; -function MoveLayer(dummy: LongInt; Layer: PLayer; dx: LongInt; dy: LongInt): LongInt; syscall LayersBase 10; -function MoveLayerInFrontOf(layer_to_move: PLayer; other_layer: PLayer): LongInt; syscall LayersBase 28; -function MoveSizeLayer(Layer: PLayer; dx: LongInt; dy: LongInt; dw: LongInt; dh: LongInt): LongInt; syscall LayersBase 30; -function NewLayerInfo: PLayer_Info; syscall LayersBase 24; -procedure ScrollLayer(dummy: LongInt; Layer: PLayer; dx: LongInt; dy: LongInt); syscall LayersBase 12; -function SizeLayer(dummy: LongInt; Layer: PLayer; dx: LongInt; dy: LongInt): LongInt; syscall LayersBase 11; procedure SortLayerCR(Layer: PLayer; dx: LongInt; dy: LongInt); syscall LayersBase 35; -procedure SwapBitsRastPortClipRect(rp: PRastPort; cr: PClipRect); syscall LayersBase 21; -procedure ThinLayerInfo(LayerInfo: PLayer_Info); syscall LayersBase 27; -procedure UnlockLayer(Layer: PLayer); syscall LayersBase 17; -procedure UnlockLayerInfo(LayerInfo: PLayer_Info); syscall LayersBase 23; -procedure UnlockLayers(LayerInfo: PLayer_Info); syscall LayersBase 19; -function UpfrontLayer(dummy: LongInt; Layer: PLayer): LongInt; syscall LayersBase 8; -function WhichLayer(LayerInfo: PLayer_Info; x: LongInt; y: LongInt): PLayer; syscall LayersBase 22; +procedure DoHookClipRects(Hook: PHook; RPort: PRastPort;const Rect: PRectangle); syscall LayersBase 36; +function ChangeLayerVisibility(Layer: PLayer; Visible: LongInt): LongInt; syscall LayersBase 37; +function ScaleLayer(Layer: PLayer; Taglist: PTagItem): LongWord; syscall LayersBase 38; +function CreateUpfrontLayerTagList(LayerInfo: PLayer_Info; Bitmap1: PBitMap; x0: LongInt; y0: LongInt; x1: LongInt; y1: LongInt; Flags: LongInt; TagList: PTagItem): PLayer; syscall LayersBase 39; +function IsLayerVisible(Layer: PLayer): LongInt; syscall LayersBase 40; +function ChangeLayerShape(Layer: PLayer; NewShape: PRegion; CallBack: PHook): PRegion; syscall LayersBase 41; +function CreateBehindLayer(LayerInfo: PLayer_Info; Bitmap1: PBitMap; x0: LongInt; y0: LongInt; x1: LongInt; y1: LongInt; Flags: LongInt; TagList: PTagItem): PLayer; syscall LayersBase 43; +function IsLayerHiddenBySibling(Layer: PLayer; Check_Visible: WordBool): WordBool; syscall LayersBase 44; +procedure CollectPixelsLayer(Layer: PLayer; Region: PRegion; CallBack: PHook); syscall LayersBase 45; + implementation diff --git a/packages/aspell/Makefile b/packages/aspell/Makefile index ee38304835..8ef3c6c4b0 100644 --- a/packages/aspell/Makefile +++ b/packages/aspell/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/bfd/Makefile b/packages/bfd/Makefile index 6707031600..c083e2547e 100644 --- a/packages/bfd/Makefile +++ b/packages/bfd/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/bzip2/Makefile b/packages/bzip2/Makefile index ac1d2b01dd..df940adb83 100644 --- a/packages/bzip2/Makefile +++ b/packages/bzip2/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/cairo/Makefile b/packages/cairo/Makefile index 6726d7361b..d103fb15bc 100644 --- a/packages/cairo/Makefile +++ b/packages/cairo/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/cdrom/Makefile b/packages/cdrom/Makefile index 04ffee2911..5eb74fb05f 100644 --- a/packages/cdrom/Makefile +++ b/packages/cdrom/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/chm/Makefile b/packages/chm/Makefile index a6f8da60ad..840081c374 100644 --- a/packages/chm/Makefile +++ b/packages/chm/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/cocoaint/Makefile b/packages/cocoaint/Makefile index 27d8d22c25..eac8e6456a 100644 --- a/packages/cocoaint/Makefile +++ b/packages/cocoaint/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/dblib/Makefile b/packages/dblib/Makefile index 823a7f67e0..fd8c781ee2 100644 --- a/packages/dblib/Makefile +++ b/packages/dblib/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/dbus/Makefile b/packages/dbus/Makefile index 3530441ca1..659c23d3b4 100644 --- a/packages/dbus/Makefile +++ b/packages/dbus/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/dts/Makefile b/packages/dts/Makefile index fc8c01c765..0a83fee90e 100644 --- a/packages/dts/Makefile +++ b/packages/dts/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/fastcgi/Makefile b/packages/fastcgi/Makefile index 53d1d2467e..d4c25b71ef 100644 --- a/packages/fastcgi/Makefile +++ b/packages/fastcgi/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/fcl-async/Makefile b/packages/fcl-async/Makefile index 503857b668..b7c16d9f4c 100644 --- a/packages/fcl-async/Makefile +++ b/packages/fcl-async/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/fcl-base/Makefile b/packages/fcl-base/Makefile index f8119ad163..5268fd5201 100644 --- a/packages/fcl-base/Makefile +++ b/packages/fcl-base/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/fcl-db/Makefile b/packages/fcl-db/Makefile index 60d3c2fd8e..a9f79cbb10 100644 --- a/packages/fcl-db/Makefile +++ b/packages/fcl-db/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/fcl-db/src/sdf/sdfdata.pp b/packages/fcl-db/src/sdf/sdfdata.pp index 2d840f10ba..b3a0d0d49c 100644 --- a/packages/fcl-db/src/sdf/sdfdata.pp +++ b/packages/fcl-db/src/sdf/sdfdata.pp @@ -378,9 +378,14 @@ begin FFileName := Value; end; +function FieldDefDataSize(fd:TFieldDef):integer; +begin + result:=fd.Size*fd.CharSize+1; +end; + procedure TFixedFormatDataSet.InternalInitFieldDefs; var - i, Len, MaxLen :Integer; + i, Len, DataLen, MaxLen :Integer; LstFields :TStrings; FEnc : TSystemCodePage; @@ -410,12 +415,11 @@ begin Fenc:=FEncoding.CodePage else FEnc:=DefaultSystemCodePage; - FieldDefs.Add(Trim(LstFields.Names[i]), ftString, Len, 0, False,False,FieldDefs.Count+1,FEnc); - Inc(Len); + DataLen:=FieldDefDataSize(FieldDefs.Add(Trim(LstFields.Names[i]), ftString, Len, 0, False,False,FieldDefs.Count+1,FEnc)); {$IFDEF FPC_REQUIRES_PROPER_ALIGNMENT} - Len := Align(Len, SizeOf(PtrInt)); + DataLen := Align(DataLen, SizeOf(PtrInt)); {$ENDIF} - Inc(FRecordSize, Len); + Inc(FRecordSize, DataLen); end; finally LstFields.Free; @@ -696,7 +700,7 @@ begin Result := RecBuf < StrEnd(RecBuf); // just ''=Null if Result and Assigned(Buffer) then begin - StrLCopy(Buffer, RecBuf, Field.Size); + StrLCopy(Buffer, RecBuf, Field.DataSize); if FTrimSpace then // trim trailing spaces begin BufEnd := StrEnd(Buffer); @@ -759,7 +763,7 @@ begin i := 1; while (i < FieldNo) and (i < FieldDefs.Count) do begin - Len := FieldDefs.Items[i-1].Size + 1; + Len := FieldDefDataSize(FieldDefs[i-1]); {$IFDEF FPC_REQUIRES_PROPER_ALIGNMENT} Len := Align(Len, SizeOf(PtrInt)); {$ENDIF} @@ -912,7 +916,7 @@ begin Dest := PChar(Result); for i := 0 to FieldDefs.Count - 1 do begin - Len := FieldDefs[i].Size; + Len := FieldDefDataSize(FieldDefs[i])-1; Move(Src^, Dest^, Len); Inc(Src, Len); Inc(Dest, Len); @@ -928,14 +932,14 @@ begin // calculate fixed length record size Len := 0; for i := 0 to FieldDefs.Count - 1 do - Inc(Len, FieldDefs[i].Size); + Inc(Len, FieldDefDataSize(FieldDefs[i])-1); SetLength(Result, Len); Src := PChar(Buffer); Dest := PChar(Result); for i := 0 to FieldDefs.Count - 1 do begin - Len := FieldDefs[i].Size; + Len := FieldDefDataSize(FieldDefs[i])-1; Move(Src^, Dest^, Len); // fields in record buffer are null-terminated, but pad them with spaces to fixed length SrcLen := StrLen(Src); @@ -1142,7 +1146,7 @@ begin for i := 0 to FieldDefs.Count - 1 do begin - MaxLen := FieldDefs[i].Size; + MaxLen := FieldDefDataSize(FieldDefs[i])-1; S := ExtractDelimited(Source, Pos); Len := Length(S); @@ -1152,8 +1156,7 @@ begin if Len = 0 then // bug in StrPLCopy Dest^ := #0 else - StrPLCopy(Dest, S, Len); // null-terminate - + StrPLCopy(Dest, S, Len+1); // null-terminate Inc(Dest, MaxLen+1); end; end; @@ -1173,7 +1176,7 @@ begin Src := PChar(Buffer); for i := 0 to FieldDefs.Count - 1 do begin - MaxLen := FieldDefs[i].Size; + MaxLen := FieldDefDataSize(FieldDefs[i])-1; Len := StrLen(Src); // field values are null-terminated in record buffer if Len > MaxLen then Len := MaxLen; diff --git a/packages/fcl-extra/Makefile b/packages/fcl-extra/Makefile index 0efe7e85d4..b3cd0b9808 100644 --- a/packages/fcl-extra/Makefile +++ b/packages/fcl-extra/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/fcl-fpcunit/Makefile b/packages/fcl-fpcunit/Makefile index b22bed677f..674c4bd3a3 100644 --- a/packages/fcl-fpcunit/Makefile +++ b/packages/fcl-fpcunit/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/fcl-image/Makefile b/packages/fcl-image/Makefile index 2b58dec9c4..60e479ffd6 100644 --- a/packages/fcl-image/Makefile +++ b/packages/fcl-image/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/fcl-js/Makefile b/packages/fcl-js/Makefile index e2f43c45a8..58a2bfdc42 100644 --- a/packages/fcl-js/Makefile +++ b/packages/fcl-js/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/fcl-json/Makefile b/packages/fcl-json/Makefile index 96e0348019..315efd702f 100644 --- a/packages/fcl-json/Makefile +++ b/packages/fcl-json/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/fcl-json/src/jsonconf.pp b/packages/fcl-json/src/jsonconf.pp index 794c796e99..b0bccbf575 100644 --- a/packages/fcl-json/src/jsonconf.pp +++ b/packages/fcl-json/src/jsonconf.pp @@ -31,7 +31,7 @@ uses SysUtils, Classes, fpjson, jsonscanner, jsonparser; Const - DefaultJSONOptions = [joUTF8,joComments]; + DefaultJSONOptions = [joUTF8,joComments,joBOMCheck]; type EJSONConfigError = class(Exception); diff --git a/packages/fcl-json/src/jsonscanner.pp b/packages/fcl-json/src/jsonscanner.pp index 5294e02ac6..c81f543bcb 100644 --- a/packages/fcl-json/src/jsonscanner.pp +++ b/packages/fcl-json/src/jsonscanner.pp @@ -51,7 +51,7 @@ type EScannerError = class(EParserError); - TJSONOption = (joUTF8,joStrict,joComments,joIgnoreTrailingComma,joIgnoreDuplicates); + TJSONOption = (joUTF8,joStrict,joComments,joIgnoreTrailingComma,joIgnoreDuplicates,joBOMCheck); TJSONOptions = set of TJSONOption; Const @@ -141,10 +141,26 @@ end; constructor TJSONScanner.Create(Source: TStream; AOptions: TJSONOptions); + procedure SkipStreamBOM; + Var + OldPos : integer; + Header : array[0..3] of byte; + begin + OldPos := Source.Position; + FillChar(Header, SizeOf(Header), 0); + if Source.Read(Header, 3) = 3 then + if (Header[0]=$EF) and (Header[1]=$BB) and (Header[2]=$BF) then + exit; + Source.Position := OldPos; + end; + + Var S : RawByteString; begin + if (joBOMCheck in aOptions) then + SkipStreamBom; S:=''; SetLength(S,Source.Size-Source.Position); if Length(S)>0 then diff --git a/packages/fcl-net/Makefile b/packages/fcl-net/Makefile index 61ffac6e86..c4fed0e13c 100644 --- a/packages/fcl-net/Makefile +++ b/packages/fcl-net/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/fcl-passrc/Makefile b/packages/fcl-passrc/Makefile index 43549359af..ac093601bd 100644 --- a/packages/fcl-passrc/Makefile +++ b/packages/fcl-passrc/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/fcl-passrc/src/pparser.pp b/packages/fcl-passrc/src/pparser.pp index a85d01bb5d..b3741ee1ff 100644 --- a/packages/fcl-passrc/src/pparser.pp +++ b/packages/fcl-passrc/src/pparser.pp @@ -5495,8 +5495,12 @@ begin else // remove legacy or basesysv on MorphOS syscalls begin - if CurTokenIsIdentifier('legacy') or CurTokenIsIdentifier('consoledevice') - or (Curtoken=tkIdentifier) and (Pos('base',LowerCase(CurtokenText))>0) then + if (Pos('sysv',LowerCase(CurtokenText))>0) or CurTokenIsIdentifier('legacy') then + NextToken; + // remove LibBase (Amiga, AROS, MorphOS) or Interface (OS4) + if CurTokenIsIdentifier('consoledevice') or + ((Curtoken=tkIdentifier) and (Pos('base',LowerCase(CurtokenText)) > 0)) or + ((Curtoken=tkIdentifier) and (CurtokenText[1] = 'I')) then NextToken; end; end; diff --git a/packages/fcl-pdf/Makefile b/packages/fcl-pdf/Makefile index 57e10d986c..7a9e04531f 100644 --- a/packages/fcl-pdf/Makefile +++ b/packages/fcl-pdf/Makefile @@ -631,10 +631,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/fcl-process/Makefile b/packages/fcl-process/Makefile index 0f51538804..5e4f3aff74 100644 --- a/packages/fcl-process/Makefile +++ b/packages/fcl-process/Makefile @@ -631,10 +631,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/fcl-registry/Makefile b/packages/fcl-registry/Makefile index 60e3b8cff6..7c10301dbf 100644 --- a/packages/fcl-registry/Makefile +++ b/packages/fcl-registry/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/fcl-report/Makefile b/packages/fcl-report/Makefile index c89ad27c44..aae71821dc 100644 --- a/packages/fcl-report/Makefile +++ b/packages/fcl-report/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/fcl-res/Makefile b/packages/fcl-res/Makefile index ca5fe5f42b..ac900bd4bb 100644 --- a/packages/fcl-res/Makefile +++ b/packages/fcl-res/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/fcl-sdo/Makefile b/packages/fcl-sdo/Makefile index 57d90e321f..a792ac6eb7 100644 --- a/packages/fcl-sdo/Makefile +++ b/packages/fcl-sdo/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/fcl-sound/Makefile b/packages/fcl-sound/Makefile index ec22082a50..431efe4f90 100644 --- a/packages/fcl-sound/Makefile +++ b/packages/fcl-sound/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/fcl-stl/Makefile b/packages/fcl-stl/Makefile index b6360e1df9..468d4e3037 100644 --- a/packages/fcl-stl/Makefile +++ b/packages/fcl-stl/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/fcl-web/Makefile b/packages/fcl-web/Makefile index 749c400a21..89f79a2866 100644 --- a/packages/fcl-web/Makefile +++ b/packages/fcl-web/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/fcl-xml/Makefile b/packages/fcl-xml/Makefile index 1106c02639..d1de1be91b 100644 --- a/packages/fcl-xml/Makefile +++ b/packages/fcl-xml/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/fftw/Makefile b/packages/fftw/Makefile index 3f197898de..584b6886e2 100644 --- a/packages/fftw/Makefile +++ b/packages/fftw/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/fpgtk/Makefile b/packages/fpgtk/Makefile index 84f977113e..37d11e00aa 100644 --- a/packages/fpgtk/Makefile +++ b/packages/fpgtk/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/fpindexer/Makefile b/packages/fpindexer/Makefile index 84dbcc28ab..29807d49f7 100644 --- a/packages/fpindexer/Makefile +++ b/packages/fpindexer/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/fpmkunit/Makefile b/packages/fpmkunit/Makefile index 8a7a75440c..92e04c5ddf 100644 --- a/packages/fpmkunit/Makefile +++ b/packages/fpmkunit/Makefile @@ -647,10 +647,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/fppkg/Makefile b/packages/fppkg/Makefile index b0f937c4c2..ae9659a4c3 100644 --- a/packages/fppkg/Makefile +++ b/packages/fppkg/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/fuse/Makefile b/packages/fuse/Makefile index 01d01d536d..3a22c3e093 100644 --- a/packages/fuse/Makefile +++ b/packages/fuse/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/fv/Makefile b/packages/fv/Makefile index dcb12aab92..dbe8a5e501 100644 --- a/packages/fv/Makefile +++ b/packages/fv/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/gdbint/Makefile b/packages/gdbint/Makefile index 1487eb9efd..f7d5ade01c 100644 --- a/packages/gdbint/Makefile +++ b/packages/gdbint/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/gdbm/Makefile b/packages/gdbm/Makefile index b9335d1f95..21d34652b2 100644 --- a/packages/gdbm/Makefile +++ b/packages/gdbm/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/ggi/Makefile b/packages/ggi/Makefile index f04a2632a9..b6610bccc9 100644 --- a/packages/ggi/Makefile +++ b/packages/ggi/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/gmp/Makefile b/packages/gmp/Makefile index 8b116dd9ea..fd917ff2d3 100644 --- a/packages/gmp/Makefile +++ b/packages/gmp/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/gnome1/Makefile b/packages/gnome1/Makefile index c8c9405c85..3712857342 100644 --- a/packages/gnome1/Makefile +++ b/packages/gnome1/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/gnutls/Makefile b/packages/gnutls/Makefile index 8faee5c26c..013afa4ec4 100644 --- a/packages/gnutls/Makefile +++ b/packages/gnutls/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/googleapi/Makefile b/packages/googleapi/Makefile index ef6ecfb0a9..29014eda29 100644 --- a/packages/googleapi/Makefile +++ b/packages/googleapi/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/graph/Makefile b/packages/graph/Makefile index 2bc322ec11..91ef395187 100644 --- a/packages/graph/Makefile +++ b/packages/graph/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/gtk1/Makefile b/packages/gtk1/Makefile index a5175f7dd3..5e0f6d6ab1 100644 --- a/packages/gtk1/Makefile +++ b/packages/gtk1/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/gtk2/Makefile b/packages/gtk2/Makefile index bd77456bfc..b708adce8b 100644 --- a/packages/gtk2/Makefile +++ b/packages/gtk2/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/hash/Makefile b/packages/hash/Makefile index 8a2dba6a2a..438da3152d 100644 --- a/packages/hash/Makefile +++ b/packages/hash/Makefile @@ -631,10 +631,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/hermes/Makefile b/packages/hermes/Makefile index 8cd35be0d6..f0b61ee03d 100644 --- a/packages/hermes/Makefile +++ b/packages/hermes/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/httpd13/Makefile b/packages/httpd13/Makefile index 571a489548..325ac43df4 100644 --- a/packages/httpd13/Makefile +++ b/packages/httpd13/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/httpd20/Makefile b/packages/httpd20/Makefile index 716c63d33d..592f7c442c 100644 --- a/packages/httpd20/Makefile +++ b/packages/httpd20/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/httpd22/Makefile b/packages/httpd22/Makefile index eb36d8098c..07e8ea8fd2 100644 --- a/packages/httpd22/Makefile +++ b/packages/httpd22/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/httpd24/Makefile b/packages/httpd24/Makefile index 2ae32140c1..f87cf06397 100644 --- a/packages/httpd24/Makefile +++ b/packages/httpd24/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/ibase/Makefile b/packages/ibase/Makefile index 05ca22fbe7..80c84cefb0 100644 --- a/packages/ibase/Makefile +++ b/packages/ibase/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/iconvenc/Makefile b/packages/iconvenc/Makefile index 3f2f3a563e..0d3064e9b7 100644 --- a/packages/iconvenc/Makefile +++ b/packages/iconvenc/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/ide/Makefile b/packages/ide/Makefile index 6b8ad4cf10..3a07fcbf58 100644 --- a/packages/ide/Makefile +++ b/packages/ide/Makefile @@ -616,10 +616,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/imagemagick/Makefile b/packages/imagemagick/Makefile index 4f6c045ae6..3ed273089e 100644 --- a/packages/imagemagick/Makefile +++ b/packages/imagemagick/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/imlib/Makefile b/packages/imlib/Makefile index ade3c2694d..be8c616904 100644 --- a/packages/imlib/Makefile +++ b/packages/imlib/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/iosxlocale/Makefile b/packages/iosxlocale/Makefile index 4fed50bc9e..f4f15b84aa 100644 --- a/packages/iosxlocale/Makefile +++ b/packages/iosxlocale/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/jni/Makefile b/packages/jni/Makefile index cda25c9727..42d02da46e 100644 --- a/packages/jni/Makefile +++ b/packages/jni/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/ldap/Makefile b/packages/ldap/Makefile index 0abb380577..0e15797b9f 100644 --- a/packages/ldap/Makefile +++ b/packages/ldap/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/libc/Makefile b/packages/libc/Makefile index 8e199d6003..1a92afdea8 100644 --- a/packages/libc/Makefile +++ b/packages/libc/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/libcups/Makefile b/packages/libcups/Makefile index 03acba2493..7ce4fe6c12 100644 --- a/packages/libcups/Makefile +++ b/packages/libcups/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/libcurl/Makefile b/packages/libcurl/Makefile index ce74892ef3..0343dd1f6d 100644 --- a/packages/libcurl/Makefile +++ b/packages/libcurl/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/libenet/Makefile b/packages/libenet/Makefile index 2748273212..b0213906aa 100644 --- a/packages/libenet/Makefile +++ b/packages/libenet/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/libffi/Makefile b/packages/libffi/Makefile index 731ceb16c2..00d0a73bee 100644 --- a/packages/libffi/Makefile +++ b/packages/libffi/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/libfontconfig/Makefile b/packages/libfontconfig/Makefile index 52cba49341..a93361098f 100644 --- a/packages/libfontconfig/Makefile +++ b/packages/libfontconfig/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/libgbafpc/Makefile b/packages/libgbafpc/Makefile index cb05aaf036..351d9fff43 100644 --- a/packages/libgbafpc/Makefile +++ b/packages/libgbafpc/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/libgc/Makefile b/packages/libgc/Makefile index c7bd9e4013..6728171c7c 100644 --- a/packages/libgc/Makefile +++ b/packages/libgc/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/libgd/Makefile b/packages/libgd/Makefile index 95e522c93c..edae3630d8 100644 --- a/packages/libgd/Makefile +++ b/packages/libgd/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/libmagic/Makefile b/packages/libmagic/Makefile index ae0a1e0da8..15f1722e47 100644 --- a/packages/libmagic/Makefile +++ b/packages/libmagic/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/libmicrohttpd/Makefile b/packages/libmicrohttpd/Makefile index f5d1fa8a42..5e624a252c 100644 --- a/packages/libmicrohttpd/Makefile +++ b/packages/libmicrohttpd/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/libndsfpc/Makefile b/packages/libndsfpc/Makefile index 75786ffb96..beba65335b 100644 --- a/packages/libndsfpc/Makefile +++ b/packages/libndsfpc/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/libogcfpc/Makefile b/packages/libogcfpc/Makefile index 2cb4ac5618..e317ed8dd0 100644 --- a/packages/libogcfpc/Makefile +++ b/packages/libogcfpc/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/libpng/Makefile b/packages/libpng/Makefile index 13798bbcc3..56158c368b 100644 --- a/packages/libpng/Makefile +++ b/packages/libpng/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/librsvg/Makefile b/packages/librsvg/Makefile index 0e4b77f7c4..6ef485f230 100644 --- a/packages/librsvg/Makefile +++ b/packages/librsvg/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/libsee/Makefile b/packages/libsee/Makefile index 0ea78e9d51..9d2928a717 100644 --- a/packages/libsee/Makefile +++ b/packages/libsee/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/libtar/Makefile b/packages/libtar/Makefile index 8cc2782978..832ae22219 100644 --- a/packages/libtar/Makefile +++ b/packages/libtar/Makefile @@ -631,10 +631,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/libusb/Makefile b/packages/libusb/Makefile index d93e0734b6..8a7d559147 100644 --- a/packages/libusb/Makefile +++ b/packages/libusb/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/libvlc/Makefile b/packages/libvlc/Makefile index ce777a3811..c4076e5e7e 100644 --- a/packages/libvlc/Makefile +++ b/packages/libvlc/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/libxml/Makefile b/packages/libxml/Makefile index 8661e1d7d5..1cf86913b1 100644 --- a/packages/libxml/Makefile +++ b/packages/libxml/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/lua/Makefile b/packages/lua/Makefile index 989aa6c8ae..5cb0294592 100644 --- a/packages/lua/Makefile +++ b/packages/lua/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/mad/Makefile b/packages/mad/Makefile index 06251f9a1b..c50f10955c 100644 --- a/packages/mad/Makefile +++ b/packages/mad/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/matroska/Makefile b/packages/matroska/Makefile index af21f50187..fc49da4cf7 100644 --- a/packages/matroska/Makefile +++ b/packages/matroska/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/modplug/Makefile b/packages/modplug/Makefile index 71401c34d5..54ebdc7bbc 100644 --- a/packages/modplug/Makefile +++ b/packages/modplug/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/morphunits/Makefile b/packages/morphunits/Makefile index d6e9ad5d20..91fc69f0fe 100644 --- a/packages/morphunits/Makefile +++ b/packages/morphunits/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/mysql/Makefile b/packages/mysql/Makefile index bfbd075b84..5f947104b9 100644 --- a/packages/mysql/Makefile +++ b/packages/mysql/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/ncurses/Makefile b/packages/ncurses/Makefile index 6184323385..33853fbde2 100644 --- a/packages/ncurses/Makefile +++ b/packages/ncurses/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/newt/Makefile b/packages/newt/Makefile index f6ed6e3805..3e9037bc67 100644 --- a/packages/newt/Makefile +++ b/packages/newt/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/numlib/Makefile b/packages/numlib/Makefile index 844185d8f1..89a8ff1638 100644 --- a/packages/numlib/Makefile +++ b/packages/numlib/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/nvapi/Makefile b/packages/nvapi/Makefile index 55b8e1f513..109d58f8bf 100644 --- a/packages/nvapi/Makefile +++ b/packages/nvapi/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/objcrtl/Makefile b/packages/objcrtl/Makefile index 8e95e058bc..bdcf0a0127 100644 --- a/packages/objcrtl/Makefile +++ b/packages/objcrtl/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/odata/Makefile b/packages/odata/Makefile index e8cd4faa11..a8f3f61a78 100644 --- a/packages/odata/Makefile +++ b/packages/odata/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/odbc/Makefile b/packages/odbc/Makefile index 0e56f08977..47a97e54f8 100644 --- a/packages/odbc/Makefile +++ b/packages/odbc/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/oggvorbis/Makefile b/packages/oggvorbis/Makefile index 862af4dfc6..0398174795 100644 --- a/packages/oggvorbis/Makefile +++ b/packages/oggvorbis/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/openal/Makefile b/packages/openal/Makefile index 02d87687ec..cc997fe4d6 100644 --- a/packages/openal/Makefile +++ b/packages/openal/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/opencl/Makefile b/packages/opencl/Makefile index 6ce69ef4c3..32ed837453 100644 --- a/packages/opencl/Makefile +++ b/packages/opencl/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/opengl/Makefile b/packages/opengl/Makefile index b370c7a3cb..6cc1b87097 100644 --- a/packages/opengl/Makefile +++ b/packages/opengl/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/opengles/Makefile b/packages/opengles/Makefile index 29c3d17102..042675618b 100644 --- a/packages/opengles/Makefile +++ b/packages/opengles/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/openssl/Makefile b/packages/openssl/Makefile index 371d538467..db15c5c340 100644 --- a/packages/openssl/Makefile +++ b/packages/openssl/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/oracle/Makefile b/packages/oracle/Makefile index f84542684e..5ccb190772 100644 --- a/packages/oracle/Makefile +++ b/packages/oracle/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/os2units/Makefile b/packages/os2units/Makefile index ac8913e928..bb5b6c0756 100644 --- a/packages/os2units/Makefile +++ b/packages/os2units/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/os4units/Makefile b/packages/os4units/Makefile index 523fbb89cc..ee70199133 100644 --- a/packages/os4units/Makefile +++ b/packages/os4units/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/os4units/src/cybergraphics.pas b/packages/os4units/src/cybergraphics.pas index 995dcef99a..6d4155cc2e 100644 --- a/packages/os4units/src/cybergraphics.pas +++ b/packages/os4units/src/cybergraphics.pas @@ -189,12 +189,13 @@ function WritePixelArrayAlpha(Src: APTR; SrcX, SrcY, SrcMod: LongInt; Rp: PRastP procedure BltTemplateAlpha(SrcTemplate: APTR; SrcX, SrcY: LongInt; Rp: PRastPort; DestX, DestY: LongInt; Width, Height: LongWord); syscall ICyberGfx 232; // Functions and procedures with array of const go here -function AllocCModeListTags(const ModeListTags: array of PtrUInt): PList; -function BestCModeIDTags(const BestModeIDTags: array of PtrUInt): LongWord; -procedure CVideoCtrlTags(ViewPort: PViewPort; const TagList: array of PtrUInt); -procedure DoCDrawMethodTags(Hook: PHook; a1arg: PRastPort; const TagList: array of PtrUInt); -function LockBitMapTags(BitMap: APTR; const TagList: array of PtrUInt): APTR; -procedure UnLockBitMapTags(Handle: APTR; const TagList: array of PtrUInt); +function AllocCModeListTags(const ModeListTags: array of PtrUInt): PList; inline; +function BestCModeIDTags(const BestModeIDTags: array of PtrUInt): LongWord; inline; +function CModeRequestTags(ModeRequest: APTR; const ModeRequestTags : array of PtrUInt): LongWord; inline; +procedure CVideoCtrlTags(ViewPort: PViewPort; const TagList: array of PtrUInt); inline; +procedure DoCDrawMethodTags(Hook: PHook; a1arg: PRastPort; const TagList: array of PtrUInt); inline; +function LockBitMapTags(BitMap: APTR; const TagList: array of PtrUInt): APTR; inline; +procedure UnLockBitMapTags(Handle: APTR; const TagList: array of PtrUInt); inline; function SHIFT_PIXFMT(fmt: LongInt): LongInt; function DOWNSHIFT_PIXFMT(fmt: LongInt): LongInt; @@ -212,6 +213,11 @@ begin BestCModeIDTags := BestCModeIDTagList(@BestModeIDTags); end; +function CModeRequestTags(ModeRequest: APTR; const ModeRequestTags : array of PtrUInt): LongWord; +begin + CModeRequestTags := CModeRequestTagList(ModeRequest, @ModeRequestTags); +end; + procedure CVideoCtrlTags(ViewPort: PViewPort; const TagList: array of PtrUInt); inline; begin CVideoCtrlTagList(ViewPort, @TagList); diff --git a/packages/palmunits/Makefile b/packages/palmunits/Makefile index c4f5be6f8b..b71c08fcd7 100644 --- a/packages/palmunits/Makefile +++ b/packages/palmunits/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/pasjpeg/Makefile b/packages/pasjpeg/Makefile index cc5ce4d15b..203a6d263b 100644 --- a/packages/pasjpeg/Makefile +++ b/packages/pasjpeg/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/pastojs/Makefile b/packages/pastojs/Makefile index 54947ff8c8..694900d742 100644 --- a/packages/pastojs/Makefile +++ b/packages/pastojs/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/pastojs/src/fppas2js.pp b/packages/pastojs/src/fppas2js.pp index bb479e22f8..21498b9f86 100644 --- a/packages/pastojs/src/fppas2js.pp +++ b/packages/pastojs/src/fppas2js.pp @@ -2159,6 +2159,7 @@ type AContext: TConvertContext): TJSElement; virtual; Function CreateRTTIMemberProperty(Members: TFPList; Index: integer; AContext: TConvertContext): TJSElement; virtual; + Procedure CreateRTTIAnonymous(El: TPasType; AContext: TConvertContext); virtual; // needed by precompiled files from 2.0.0 Function CreateRTTIMembers(El: TPasMembersType; Src: TJSSourceElements; FuncContext: TFunctionContext; MembersSrc: TJSSourceElements; MembersFuncContext: TFunctionContext; RTTIExpr: TJSElement; @@ -8182,7 +8183,7 @@ Var HasImplUsesClause, ok, NeedRTLCheckVersion: Boolean; Prg: TPasProgram; Lib: TPasLibrary; - AssignSt: TJSSimpleAssignStatement; + ImplFuncAssignSt: TJSSimpleAssignStatement; IntfSecCtx: TInterfaceSectionContext; ModScope: TPas2JSModuleScope; begin @@ -8289,10 +8290,10 @@ begin ImplFunc:=CreateImplementationSection(El,IntfSecCtx); // add $mod.$implcode = ImplFunc; - AssignSt:=TJSSimpleAssignStatement(CreateElement(TJSSimpleAssignStatement,El)); - AssignSt.LHS:=CreateMemberExpression([ModVarName,GetBIName(pbivnImplCode)]); - AssignSt.Expr:=ImplFunc; - AddToSourceElements(Src,AssignSt); + ImplFuncAssignSt:=TJSSimpleAssignStatement(CreateElement(TJSSimpleAssignStatement,El)); + ImplFuncAssignSt.LHS:=CreateMemberExpression([ModVarName,GetBIName(pbivnImplCode)]); + ImplFuncAssignSt.Expr:=ImplFunc; + AddToSourceElements(Src,ImplFuncAssignSt); // append initialization section CreateInitSection(El,Src,IntfSecCtx); @@ -8304,7 +8305,7 @@ begin // remove unneeded $impl from interface RemoveFromSourceElements(Src,ImplVarSt); // remove unneeded $mod.$implcode = function(){} - RemoveFromSourceElements(Src,AssignSt); + RemoveFromSourceElements(Src,ImplFuncAssignSt); HasImplUsesClause:=(El.ImplementationSection<>nil) and (length(El.ImplementationSection.UsesClause)>0); end @@ -19963,6 +19964,23 @@ var ObjLit.Expr:=JS; end; + function VarTypeInfoAlreadyCreated(VarType: TPasType): boolean; + var + i: Integer; + PrevMember: TPasElement; + begin + i:=Index-1; + while (i>=0) do + begin + PrevMember:=TPasElement(Members[i]); + if (PrevMember is TPasVariable) and (TPasVariable(PrevMember).VarType=VarType) + and IsElementUsed(PrevMember) then + exit(true); + dec(i); + end; + Result:=false; + end; + var JSTypeInfo: TJSElement; aName: String; @@ -19975,7 +19993,10 @@ begin V:=TPasVariable(Members[Index]); VarType:=V.VarType; if (VarType<>nil) and (VarType.Name='') then - RaiseNotSupported(VarType,AContext,20210223022919); + begin + if not VarTypeInfoAlreadyCreated(VarType) then + CreateRTTIAnonymous(VarType,AContext); // only needed by precompiled files from 2.0.0 + end; JSTypeInfo:=CreateTypeInfoRef(VarType,AContext,V); OptionsEl:=nil; @@ -20293,6 +20314,37 @@ begin end; end; +procedure TPasToJSConverter.CreateRTTIAnonymous(El: TPasType; + AContext: TConvertContext); +// if El has any anonymous types, create the RTTI +var + C: TClass; + JS: TJSElement; + GlobalCtx: TFunctionContext; + Src: TJSSourceElements; +begin + if El.Name<>'' then + RaiseNotSupported(El,AContext,20170905162324,'inconsistency'); + + GlobalCtx:=AContext.GetGlobalFunc; + if GlobalCtx=nil then + RaiseNotSupported(El,AContext,20181229130835); + if not (GlobalCtx.JSElement is TJSSourceElements) then + begin + {$IFDEF VerbosePas2JS} + writeln('TPasToJSConverter.CreateRTTIAnonymous GlobalCtx=',GetObjName(GlobalCtx),' JSElement=',GetObjName(GlobalCtx.JSElement)); + {$ENDIF} + RaiseNotSupported(El,AContext,20181229130926); + end; + Src:=TJSSourceElements(GlobalCtx.JSElement); + C:=El.ClassType; + if C=TPasArrayType then + begin + JS:=ConvertArrayType(TPasArrayType(El),AContext); + AddToSourceElements(Src,JS); + end; +end; + function TPasToJSConverter.CreateRTTIMembers(El: TPasMembersType; Src: TJSSourceElements; FuncContext: TFunctionContext; MembersSrc: TJSSourceElements; MembersFuncContext: TFunctionContext; @@ -27026,8 +27078,8 @@ begin for i:=0 to ElRefList.Count-1 do begin El:=TPasElement(ElRefList[i]); - if ElNeedsGlobalAlias(El) then - CreateGlobalElPath(El,SectionContext); + // Note: they are all needed by precompiled code, do not check ElNeedsGlobalAlias + CreateGlobalElPath(El,SectionContext); end; end; diff --git a/packages/pastojs/src/pas2jsfiler.pp b/packages/pastojs/src/pas2jsfiler.pp index 4a28a96f78..6e9660b891 100644 --- a/packages/pastojs/src/pas2jsfiler.pp +++ b/packages/pastojs/src/pas2jsfiler.pp @@ -46,8 +46,6 @@ Works: - gzipped json - write final switches - srcmaps for precompiled js - -ToDo: - generics: - generic proc bodies are stored with all elements, but without resolver customdata - specializations are stored like external elements @@ -70,8 +68,9 @@ ToDo: - TPCUReader.ReadExternalSpecialized - - TPCUReader.ReadSpecializeType reads a TPasSpecializeType and creates specialized type - - TPCUReader.ReadInlineSpecializeExpr: ToDo create specialized type + - TPCUReader.ReadInlineSpecializeExpr: create specialized type +Todo: - store used GUIDs - distinguish reader errors in fatal and error - when pcu is bad, unload and use src diff --git a/packages/paszlib/Makefile b/packages/paszlib/Makefile index 434ab3ed42..30df0dc4ce 100644 --- a/packages/paszlib/Makefile +++ b/packages/paszlib/Makefile @@ -631,10 +631,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/pcap/Makefile b/packages/pcap/Makefile index 878d8873ae..9121b2fbeb 100644 --- a/packages/pcap/Makefile +++ b/packages/pcap/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/postgres/Makefile b/packages/postgres/Makefile index 337db84ff9..8a69dd66b4 100644 --- a/packages/postgres/Makefile +++ b/packages/postgres/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/proj4/Makefile b/packages/proj4/Makefile index 36a37a776a..5fc3723f82 100644 --- a/packages/proj4/Makefile +++ b/packages/proj4/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/ptc/Makefile b/packages/ptc/Makefile index 392814fc85..cdfca54111 100644 --- a/packages/ptc/Makefile +++ b/packages/ptc/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/pthreads/Makefile b/packages/pthreads/Makefile index 3b1a52e41f..cb7a2b1bac 100644 --- a/packages/pthreads/Makefile +++ b/packages/pthreads/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/pxlib/Makefile b/packages/pxlib/Makefile index 5a81bd03e1..aa7c14cc30 100644 --- a/packages/pxlib/Makefile +++ b/packages/pxlib/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/qlunits/Makefile b/packages/qlunits/Makefile index d8978a7b3b..7f682468c2 100644 --- a/packages/qlunits/Makefile +++ b/packages/qlunits/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/regexpr/Makefile b/packages/regexpr/Makefile index 07777c8d81..8e7041fcb8 100644 --- a/packages/regexpr/Makefile +++ b/packages/regexpr/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/rexx/Makefile b/packages/rexx/Makefile index 28521bded2..e60072c0e6 100644 --- a/packages/rexx/Makefile +++ b/packages/rexx/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/rtl-console/Makefile b/packages/rtl-console/Makefile index db813f8b71..9a5920e264 100644 --- a/packages/rtl-console/Makefile +++ b/packages/rtl-console/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/rtl-extra/Makefile b/packages/rtl-extra/Makefile index 62b4e87d51..372e84b0f3 100644 --- a/packages/rtl-extra/Makefile +++ b/packages/rtl-extra/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/rtl-generics/Makefile b/packages/rtl-generics/Makefile index ef6ecfb0a9..29014eda29 100644 --- a/packages/rtl-generics/Makefile +++ b/packages/rtl-generics/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/rtl-objpas/Makefile b/packages/rtl-objpas/Makefile index 312b0f0d92..38a5270d0e 100644 --- a/packages/rtl-objpas/Makefile +++ b/packages/rtl-objpas/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/rtl-unicode/Makefile b/packages/rtl-unicode/Makefile index 7493722875..d98499a80f 100644 --- a/packages/rtl-unicode/Makefile +++ b/packages/rtl-unicode/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/sdl/Makefile b/packages/sdl/Makefile index 6428cc6794..b950c30d0a 100644 --- a/packages/sdl/Makefile +++ b/packages/sdl/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/sndfile/Makefile b/packages/sndfile/Makefile index 1a4a1155cc..15747ffed4 100644 --- a/packages/sndfile/Makefile +++ b/packages/sndfile/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/sqlite/Makefile b/packages/sqlite/Makefile index 6669ee969e..2ed9f7125f 100644 --- a/packages/sqlite/Makefile +++ b/packages/sqlite/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/svgalib/Makefile b/packages/svgalib/Makefile index 395d0078c8..1b971c14ae 100644 --- a/packages/svgalib/Makefile +++ b/packages/svgalib/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/symbolic/Makefile b/packages/symbolic/Makefile index 5bcfa8bc42..21a657084d 100644 --- a/packages/symbolic/Makefile +++ b/packages/symbolic/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/syslog/Makefile b/packages/syslog/Makefile index aa42e6abe1..fd4f100240 100644 --- a/packages/syslog/Makefile +++ b/packages/syslog/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/tcl/Makefile b/packages/tcl/Makefile index 0d7d3173df..db068bcc99 100644 --- a/packages/tcl/Makefile +++ b/packages/tcl/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/tosunits/Makefile b/packages/tosunits/Makefile index e4625e9dee..a6e9d0e52d 100644 --- a/packages/tosunits/Makefile +++ b/packages/tosunits/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/tplylib/Makefile b/packages/tplylib/Makefile index e891f2ff5a..41775fee7f 100644 --- a/packages/tplylib/Makefile +++ b/packages/tplylib/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/univint/Makefile b/packages/univint/Makefile index 5a77b2e883..be21d2cb8b 100644 --- a/packages/univint/Makefile +++ b/packages/univint/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/unixutil/Makefile b/packages/unixutil/Makefile index 87dcc3a621..a4c34046d8 100644 --- a/packages/unixutil/Makefile +++ b/packages/unixutil/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/unzip/Makefile b/packages/unzip/Makefile index 2187a81c6c..2085302393 100644 --- a/packages/unzip/Makefile +++ b/packages/unzip/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/users/Makefile b/packages/users/Makefile index ed995e9ee8..437987fd50 100644 --- a/packages/users/Makefile +++ b/packages/users/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/utmp/Makefile b/packages/utmp/Makefile index f38a4a3975..630b346429 100644 --- a/packages/utmp/Makefile +++ b/packages/utmp/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/uuid/Makefile b/packages/uuid/Makefile index 44b5faada9..2793702e87 100644 --- a/packages/uuid/Makefile +++ b/packages/uuid/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/vcl-compat/Makefile b/packages/vcl-compat/Makefile index 58ebb95aa4..d8866f64d3 100644 --- a/packages/vcl-compat/Makefile +++ b/packages/vcl-compat/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/webidl/Makefile b/packages/webidl/Makefile index 2bac1d28df..4a7b74a6d3 100644 --- a/packages/webidl/Makefile +++ b/packages/webidl/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/winceunits/Makefile b/packages/winceunits/Makefile index b253023d72..0084a2bab6 100644 --- a/packages/winceunits/Makefile +++ b/packages/winceunits/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/winunits-base/Makefile b/packages/winunits-base/Makefile index 00fd2a33aa..9fb3105ada 100644 --- a/packages/winunits-base/Makefile +++ b/packages/winunits-base/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/winunits-jedi/Makefile b/packages/winunits-jedi/Makefile index 9164f76b1d..6db40dc287 100644 --- a/packages/winunits-jedi/Makefile +++ b/packages/winunits-jedi/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/x11/Makefile b/packages/x11/Makefile index 5565ba36f9..729041b03b 100644 --- a/packages/x11/Makefile +++ b/packages/x11/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/xforms/Makefile b/packages/xforms/Makefile index b9cf3bdf6e..d1357939ce 100644 --- a/packages/xforms/Makefile +++ b/packages/xforms/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/zlib/Makefile b/packages/zlib/Makefile index 2ab1570978..48ea001ad5 100644 --- a/packages/zlib/Makefile +++ b/packages/zlib/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/packages/zorba/Makefile b/packages/zorba/Makefile index 2863d38b2c..a57ad58bf1 100644 --- a/packages/zorba/Makefile +++ b/packages/zorba/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/rtl/Makefile b/rtl/Makefile index fd5ad7b82d..f674611cb9 100644 --- a/rtl/Makefile +++ b/rtl/Makefile @@ -912,10 +912,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif @@ -1523,7 +1531,7 @@ ifdef CREATESHARED override FPCOPT+=-Cg endif ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),) -ifneq ($(findstring $(CPU_TARGET),x86_64 mips mipsel),) +ifneq ($(findstring $(CPU_TARGET),x86_64 mips mipsel riscv64),) override FPCOPT+=-Cg endif endif diff --git a/rtl/aix/Makefile b/rtl/aix/Makefile index b42a8b6f8b..fcf9c0b289 100644 --- a/rtl/aix/Makefile +++ b/rtl/aix/Makefile @@ -2200,10 +2200,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/rtl/amiga/Makefile b/rtl/amiga/Makefile index b2aa554816..abefef6e2e 100644 --- a/rtl/amiga/Makefile +++ b/rtl/amiga/Makefile @@ -2514,10 +2514,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/rtl/android/Makefile b/rtl/android/Makefile index a821ab7477..588279ec22 100644 --- a/rtl/android/Makefile +++ b/rtl/android/Makefile @@ -2893,7 +2893,7 @@ endif ifeq ($(FULL_TARGET),z80-amstradcpc) override COMPILER_TARGETDIR+=. endif -override SHARED_LIBUNITS=$(SYSTEMUNIT) objpas strings dos unix baseunix unixtype unixutil sysutils typinfo math $(CPU_UNITS) getopts errors sockets sortbase classes fgl sysconst rtlconsts +override SHARED_LIBUNITS=$(SYSTEMUNIT) objpas strings dos unix baseunix unixtype unixutil sysutils typinfo math $(CPU_UNITS) getopts errors sockets sortbase classes fgl sysconst rtlconsts ifdef REQUIRE_UNITSDIR override UNITSDIR+=$(REQUIRE_UNITSDIR) endif @@ -3143,10 +3143,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/rtl/android/jvm/Makefile b/rtl/android/jvm/Makefile index 8f94b9a9af..6a42f30a57 100644 --- a/rtl/android/jvm/Makefile +++ b/rtl/android/jvm/Makefile @@ -1556,10 +1556,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/rtl/aros/Makefile b/rtl/aros/Makefile index 8cd0a2f9b5..0c0b595b58 100644 --- a/rtl/aros/Makefile +++ b/rtl/aros/Makefile @@ -2508,10 +2508,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/rtl/atari/Makefile b/rtl/atari/Makefile index 259c023e2d..1ba07a7167 100644 --- a/rtl/atari/Makefile +++ b/rtl/atari/Makefile @@ -2502,10 +2502,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/rtl/beos/Makefile b/rtl/beos/Makefile index dd8d179a88..a3a36ff2e2 100644 --- a/rtl/beos/Makefile +++ b/rtl/beos/Makefile @@ -2817,10 +2817,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/rtl/darwin/Makefile b/rtl/darwin/Makefile index db0cb98a43..5240dfc177 100644 --- a/rtl/darwin/Makefile +++ b/rtl/darwin/Makefile @@ -2204,10 +2204,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/rtl/dragonfly/Makefile b/rtl/dragonfly/Makefile index 60af0f32be..7f56af4881 100644 --- a/rtl/dragonfly/Makefile +++ b/rtl/dragonfly/Makefile @@ -2514,10 +2514,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/rtl/embedded/Makefile b/rtl/embedded/Makefile index acb5650df5..a27dfb032d 100644 --- a/rtl/embedded/Makefile +++ b/rtl/embedded/Makefile @@ -2041,10 +2041,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/rtl/emx/Makefile b/rtl/emx/Makefile index 4b87a872a9..95420fcce3 100644 --- a/rtl/emx/Makefile +++ b/rtl/emx/Makefile @@ -2506,10 +2506,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/rtl/freebsd/Makefile b/rtl/freebsd/Makefile index 68c7398d66..471da7dbb1 100644 --- a/rtl/freebsd/Makefile +++ b/rtl/freebsd/Makefile @@ -2519,10 +2519,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/rtl/freertos/Makefile b/rtl/freertos/Makefile index c861506a2e..3d2eb2c559 100644 --- a/rtl/freertos/Makefile +++ b/rtl/freertos/Makefile @@ -2355,10 +2355,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/rtl/gba/Makefile b/rtl/gba/Makefile index b15a524c4e..1dd205578d 100644 --- a/rtl/gba/Makefile +++ b/rtl/gba/Makefile @@ -2188,10 +2188,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/rtl/go32v2/Makefile b/rtl/go32v2/Makefile index ac215f6715..a728761e3a 100644 --- a/rtl/go32v2/Makefile +++ b/rtl/go32v2/Makefile @@ -2507,10 +2507,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/rtl/haiku/Makefile b/rtl/haiku/Makefile index b71195983d..435bb6e89b 100644 --- a/rtl/haiku/Makefile +++ b/rtl/haiku/Makefile @@ -2825,10 +2825,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/rtl/java/Makefile b/rtl/java/Makefile index 0bf77b9247..97299656c6 100644 --- a/rtl/java/Makefile +++ b/rtl/java/Makefile @@ -1560,10 +1560,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/rtl/linux/Makefile b/rtl/linux/Makefile index c8bcf0f398..7f5531f0b0 100644 --- a/rtl/linux/Makefile +++ b/rtl/linux/Makefile @@ -382,7 +382,7 @@ SYSINIT_UNITS=si_prc si_dll si_c endif ifeq ($(ARCH),riscv64) override LOADERS= -SYSINIT_UNITS=si_prc si_dll si_c +SYSINIT_UNITS=si_prc si_dll si_c si_g endif ifeq ($(ARCH),mipsel) override FPCOPT+=-Ur @@ -3177,10 +3177,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif @@ -3788,7 +3796,7 @@ ifdef CREATESHARED override FPCOPT+=-Cg endif ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),) -ifneq ($(findstring $(CPU_TARGET),x86_64 mips mipsel),) +ifneq ($(findstring $(CPU_TARGET),x86_64 mips mipsel riscv64),) override FPCOPT+=-Cg endif endif diff --git a/rtl/linux/Makefile.fpc b/rtl/linux/Makefile.fpc index 310d467d84..fca8b2ef55 100644 --- a/rtl/linux/Makefile.fpc +++ b/rtl/linux/Makefile.fpc @@ -98,7 +98,7 @@ endif ifeq ($(ARCH),riscv64) override LOADERS= -SYSINIT_UNITS=si_prc si_dll si_c +SYSINIT_UNITS=si_prc si_dll si_c si_g endif # mipsel reuses mips files by including so some file names exist diff --git a/rtl/linux/riscv64/si_c.inc b/rtl/linux/riscv64/si_c.inc index 942372e934..87dcd050b6 100644 --- a/rtl/linux/riscv64/si_c.inc +++ b/rtl/linux/riscv64/si_c.inc @@ -16,11 +16,7 @@ ******************************************************************************} var - dlexitproc : pointer; - -var BSS_START: record end; external name '__bss_start'; - STACK_PTR: record end; external name '__stkptr'; { as we do not call these procedures directly, calling conventions do not matter and even if we did, we use c calling conventions anyways } @@ -53,7 +49,7 @@ procedure _FPC_proc_start; assembler; nostackframe; public name '_start'; .option push .option norelax .L1: - auipc gp, %pcrel_hi(BSS_START+0x7f8) + auipc gp, %pcrel_hi(BSS_START+0x800) addi gp, gp, %pcrel_lo(.L1) .option pop @@ -89,7 +85,7 @@ procedure _FPC_proc_haltproc(e:longint); cdecl; public name '_haltproc'; .option push .option norelax .L1: - auipc gp, %pcrel_hi(BSS_START+0x7f8) + auipc gp, %pcrel_hi(BSS_START+0x800) addi gp, gp, %pcrel_lo(.L1) .option pop jalr x0, x1 diff --git a/rtl/linux/riscv64/si_g.inc b/rtl/linux/riscv64/si_g.inc new file mode 100644 index 0000000000..64131f8948 --- /dev/null +++ b/rtl/linux/riscv64/si_g.inc @@ -0,0 +1,106 @@ +{ + This file is part of the Free Pascal run time library. + Copyright (c) 2019 by Jeppe Johansen. + + See the file COPYING.FPC, included in this distribution, + for details about the copyright. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + + **********************************************************************} + +{****************************************************************************** + Process start/halt + ******************************************************************************} +{$linklib c} +{$linklib gcc} + +var + BSS_START: record end; external name '__bss_start'; + _etext: pointer; external name '_etext'; + +{ as we do not call these procedures directly, calling conventions do not matter and + even if we did, we use c calling conventions anyways } +procedure __libc_csu_init; external name '__libc_csu_init'; +procedure __libc_csu_fini; external name '__libc_csu_fini'; + +procedure libc_start_main(main: TProcedure; argc: ptruint; argv: ppchar; init, fini, rtld_fini: TProcedure; stack_end: pointer); cdecl; external name '__libc_start_main'; +procedure libc_exit(code: ptruint); cdecl; external name 'exit'; + +procedure monstartup(low_pc,high_pc: pointer); cdecl; external; +procedure _mcleanup; cdecl; external; +procedure atexit(p: pointer); cdecl; external; + +procedure _FPC_rv_enter(at_exit: TProcedure; sp: pptruint); + var + argc: ptruint; + argv: ppchar; + begin + argc:=sp[0]; + argv:=@sp[1]; + + initialstkptr:=sp; + operatingsystem_parameter_argc:=argc; + operatingsystem_parameter_argv:=argv; + operatingsystem_parameter_envp:=@sp[argc+2]; + + monstartup(@_FPC_rv_enter,@_etext); + atexit(@_mcleanup); + + libc_start_main(@PascalMain, argc, argv, @__libc_csu_init, @__libc_csu_fini, at_exit, sp); + end; + + +procedure _FPC_proc_start; assembler; nostackframe; public name '_start'; + asm + { set up GP } + .option push + .option norelax +.L1: + auipc gp, %pcrel_hi(BSS_START+0x800) + addi gp, gp, %pcrel_lo(.L1) + .option pop + + { Initialise FP to zero } + addi fp, x0, 0 + + { atexit is in a0 } + addi a1, sp, 0 + jal x1, _FPC_rv_enter + end; + + +procedure _FPC_rv_exit(e:longint); assembler; nostackframe; + asm + addi a7, x0, 94 + ecall + end; + + +procedure _FPC_proc_haltproc(e:longint); cdecl; public name '_haltproc'; + begin + while true do + begin + libc_exit(e); + _FPC_rv_exit(e); + end; + end; + + + procedure initgp; assembler; nostackframe; + asm + .Linitgp: + .option push + .option norelax + .L1: + auipc gp, %pcrel_hi(BSS_START+0x800) + addi gp, gp, %pcrel_lo(.L1) + .option pop + jalr x0, x1 + + .section ".preinit_array","aw" + .dc.a .Linitgp + .text + end; diff --git a/rtl/macos/Makefile b/rtl/macos/Makefile index 5681fbefaf..6634aa920d 100644 --- a/rtl/macos/Makefile +++ b/rtl/macos/Makefile @@ -2191,10 +2191,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/rtl/morphos/Makefile b/rtl/morphos/Makefile index 76951f4959..2c21fb610e 100644 --- a/rtl/morphos/Makefile +++ b/rtl/morphos/Makefile @@ -2189,10 +2189,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/rtl/msdos/Makefile b/rtl/msdos/Makefile index 742e6201cc..b644658c6f 100644 --- a/rtl/msdos/Makefile +++ b/rtl/msdos/Makefile @@ -2189,10 +2189,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/rtl/msxdos/Makefile b/rtl/msxdos/Makefile index e39ff445a4..c462acc711 100644 --- a/rtl/msxdos/Makefile +++ b/rtl/msxdos/Makefile @@ -1874,10 +1874,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/rtl/nativent/Makefile b/rtl/nativent/Makefile index 70ef9d1b94..8f7148bed8 100644 --- a/rtl/nativent/Makefile +++ b/rtl/nativent/Makefile @@ -2197,10 +2197,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/rtl/nds/Makefile b/rtl/nds/Makefile index 3199fa41d2..c215edb37d 100644 --- a/rtl/nds/Makefile +++ b/rtl/nds/Makefile @@ -2188,10 +2188,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/rtl/netbsd/Makefile b/rtl/netbsd/Makefile index e9d7e101ec..b6d37d8b65 100644 --- a/rtl/netbsd/Makefile +++ b/rtl/netbsd/Makefile @@ -2516,10 +2516,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/rtl/netware/Makefile b/rtl/netware/Makefile index 9e7ed8f7b5..98de96a64b 100644 --- a/rtl/netware/Makefile +++ b/rtl/netware/Makefile @@ -2510,10 +2510,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/rtl/netwlibc/Makefile b/rtl/netwlibc/Makefile index 501176d8f7..981ba89934 100644 --- a/rtl/netwlibc/Makefile +++ b/rtl/netwlibc/Makefile @@ -2503,10 +2503,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/rtl/openbsd/Makefile b/rtl/openbsd/Makefile index 20f26e26e4..ff9a8e5bf5 100644 --- a/rtl/openbsd/Makefile +++ b/rtl/openbsd/Makefile @@ -2521,10 +2521,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/rtl/os2/Makefile b/rtl/os2/Makefile index a4c66cfa71..1abba18e7a 100644 --- a/rtl/os2/Makefile +++ b/rtl/os2/Makefile @@ -2506,10 +2506,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/rtl/palmos/Makefile b/rtl/palmos/Makefile index b649c56ed6..24dc3ab881 100644 --- a/rtl/palmos/Makefile +++ b/rtl/palmos/Makefile @@ -2187,10 +2187,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/rtl/solaris/Makefile b/rtl/solaris/Makefile index 623b1989cd..159a83f1d2 100644 --- a/rtl/solaris/Makefile +++ b/rtl/solaris/Makefile @@ -2200,10 +2200,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/rtl/symbian/Makefile b/rtl/symbian/Makefile index 5eccbbe1c8..9c0a7643ab 100644 --- a/rtl/symbian/Makefile +++ b/rtl/symbian/Makefile @@ -1870,10 +1870,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/rtl/unix/cthreads.pp b/rtl/unix/cthreads.pp index fe7ce7cfc9..58eab49fc1 100644 --- a/rtl/unix/cthreads.pp +++ b/rtl/unix/cthreads.pp @@ -116,41 +116,69 @@ Type PINTRTLEvent = ^TINTRTLEvent; procedure CInitThreadvar(var offset : dword;size : dword); begin {$ifdef cpusparc} + {$define threadvarblocksize_set} threadvarblocksize:=align(threadvarblocksize,16); {$endif cpusparc} {$ifdef cpusparc64} + {$define threadvarblocksize_set} threadvarblocksize:=align(threadvarblocksize,16); {$endif cpusparc64} {$ifdef cpupowerpc} + {$define threadvarblocksize_set} threadvarblocksize:=align(threadvarblocksize,8); {$endif cpupowerc} {$ifdef cpui386} + {$define threadvarblocksize_set} threadvarblocksize:=align(threadvarblocksize,8); {$endif cpui386} {$ifdef cpuarm} + {$define threadvarblocksize_set} threadvarblocksize:=align(threadvarblocksize,4); {$endif cpuarm} {$ifdef cpum68k} + {$define threadvarblocksize_set} threadvarblocksize:=align(threadvarblocksize,2); {$endif cpum68k} {$ifdef cpux86_64} + {$define threadvarblocksize_set} threadvarblocksize:=align(threadvarblocksize,16); {$endif cpux86_64} {$ifdef cpupowerpc64} + {$define threadvarblocksize_set} threadvarblocksize:=align(threadvarblocksize,16); {$endif cpupowerpc64} {$ifdef cpuaarch64} + {$define threadvarblocksize_set} threadvarblocksize:=align(threadvarblocksize,16); {$endif cpuaarch64} + {$ifdef cpuriscv} + {$define threadvarblocksize_set} + threadvarblocksize:=align(threadvarblocksize,16); + {$endif cpuriscv} + + {$ifdef cpumips} + {$define threadvarblocksize_set} + threadvarblocksize:=align(threadvarblocksize,16); + {$endif cpumips} + + {$ifdef cpuxtensa} + {$define threadvarblocksize_set} + threadvarblocksize:=align(threadvarblocksize,16); + {$endif cpuxtensa} + + {$ifndef threadvarblocksize_set} + {$error threadvarblocksize must be set! } + {$endif threadvarblocksize_set} + offset:=threadvarblocksize; inc(threadvarblocksize,size); diff --git a/rtl/watcom/Makefile b/rtl/watcom/Makefile index 9a8bd17a86..0d6bf3300f 100644 --- a/rtl/watcom/Makefile +++ b/rtl/watcom/Makefile @@ -2505,10 +2505,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/rtl/wii/Makefile b/rtl/wii/Makefile index 589103d26a..25f8f2713d 100644 --- a/rtl/wii/Makefile +++ b/rtl/wii/Makefile @@ -1873,10 +1873,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/rtl/win16/Makefile b/rtl/win16/Makefile index a8c7490a16..53c74158fd 100644 --- a/rtl/win16/Makefile +++ b/rtl/win16/Makefile @@ -1874,10 +1874,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/rtl/win32/Makefile b/rtl/win32/Makefile index 31d8b8dcf6..78237537b0 100644 --- a/rtl/win32/Makefile +++ b/rtl/win32/Makefile @@ -2503,10 +2503,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/rtl/win64/Makefile b/rtl/win64/Makefile index c7f4201f3a..809855dc2d 100644 --- a/rtl/win64/Makefile +++ b/rtl/win64/Makefile @@ -2507,10 +2507,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/rtl/wince/Makefile b/rtl/wince/Makefile index daddf45623..0555280094 100644 --- a/rtl/wince/Makefile +++ b/rtl/wince/Makefile @@ -1876,10 +1876,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/rtl/zxspectrum/Makefile b/rtl/zxspectrum/Makefile index c24011ad87..98c64fb8bc 100644 --- a/rtl/zxspectrum/Makefile +++ b/rtl/zxspectrum/Makefile @@ -1559,10 +1559,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/tests/Makefile b/tests/Makefile index 5ba9988b9c..a0debfe836 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -912,10 +912,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/tests/test/cg/obj/linux/riscv64/cpptcl1.o b/tests/test/cg/obj/linux/riscv64/cpptcl1.o Binary files differindex ed87ce332c..516e62dce3 100644 --- a/tests/test/cg/obj/linux/riscv64/cpptcl1.o +++ b/tests/test/cg/obj/linux/riscv64/cpptcl1.o diff --git a/tests/test/cg/obj/linux/riscv64/cpptcl2.o b/tests/test/cg/obj/linux/riscv64/cpptcl2.o Binary files differindex a68a01df73..90082aff94 100644 --- a/tests/test/cg/obj/linux/riscv64/cpptcl2.o +++ b/tests/test/cg/obj/linux/riscv64/cpptcl2.o diff --git a/tests/test/cg/obj/linux/riscv64/ctest.o b/tests/test/cg/obj/linux/riscv64/ctest.o Binary files differindex eb33cb3d97..28d04474ff 100644 --- a/tests/test/cg/obj/linux/riscv64/ctest.o +++ b/tests/test/cg/obj/linux/riscv64/ctest.o diff --git a/tests/test/cg/obj/linux/riscv64/tcext3.o b/tests/test/cg/obj/linux/riscv64/tcext3.o Binary files differindex 65ac546a49..65a87df479 100644 --- a/tests/test/cg/obj/linux/riscv64/tcext3.o +++ b/tests/test/cg/obj/linux/riscv64/tcext3.o diff --git a/tests/test/cg/obj/linux/riscv64/tcext4.o b/tests/test/cg/obj/linux/riscv64/tcext4.o Binary files differindex d88800bc40..9b60368927 100644 --- a/tests/test/cg/obj/linux/riscv64/tcext4.o +++ b/tests/test/cg/obj/linux/riscv64/tcext4.o diff --git a/tests/test/cg/obj/linux/riscv64/tcext5.o b/tests/test/cg/obj/linux/riscv64/tcext5.o Binary files differindex 7331c3788d..af318ca626 100644 --- a/tests/test/cg/obj/linux/riscv64/tcext5.o +++ b/tests/test/cg/obj/linux/riscv64/tcext5.o diff --git a/tests/test/cg/obj/linux/riscv64/tcext6.o b/tests/test/cg/obj/linux/riscv64/tcext6.o Binary files differindex 580f242dda..a3a365394f 100644 --- a/tests/test/cg/obj/linux/riscv64/tcext6.o +++ b/tests/test/cg/obj/linux/riscv64/tcext6.o diff --git a/tests/tstunits/Makefile b/tests/tstunits/Makefile index d1c41669c9..93523e6836 100644 --- a/tests/tstunits/Makefile +++ b/tests/tstunits/Makefile @@ -1227,10 +1227,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/tests/utils/Makefile b/tests/utils/Makefile index c1c6f12edb..fdf149bee4 100644 --- a/tests/utils/Makefile +++ b/tests/utils/Makefile @@ -1232,10 +1232,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/tests/utils/testsuite/Makefile b/tests/utils/testsuite/Makefile index 23c67efe51..75924e7d76 100644 --- a/tests/utils/testsuite/Makefile +++ b/tests/utils/testsuite/Makefile @@ -1228,10 +1228,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/tests/webtbs/tw2242.pp b/tests/webtbs/tw2242.pp index e99f415321..7ea094d6f6 100644 --- a/tests/webtbs/tw2242.pp +++ b/tests/webtbs/tw2242.pp @@ -8124,6 +8124,7 @@ s += chr(68); s += chr(69); s += chr(70); s += chr(71); +{$if not defined(cpuarm) and not defined(cpusparc) and not defined(cpuaarch64) and not defined(cpuriscv)} s += chr(72); s += chr(73); s += chr(74); @@ -8193,7 +8194,6 @@ s += chr(85); s += chr(86); s += chr(87); s += chr(88); -{$if not defined(cpuarm) and not defined(cpusparc) and not defined(cpuaarch64)} s += chr(89); s += chr(90); s += chr(65); @@ -13077,7 +13077,7 @@ s += chr(80); s += chr(81); s += chr(82); s += chr(83); -{$endif cpuarm or cpusparc} +{$endif not defined(cpuarm) and not defined(cpusparc) and not defined(cpuaarch64) and not defined(cpuriscv)} {$endif not fpc_pic} writeln(s) END. diff --git a/utils/Makefile b/utils/Makefile index 01b1c01ccb..66663047f9 100644 --- a/utils/Makefile +++ b/utils/Makefile @@ -616,10 +616,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/utils/debugsvr/Makefile b/utils/debugsvr/Makefile index a3c7f6a1be..f85a359aa9 100644 --- a/utils/debugsvr/Makefile +++ b/utils/debugsvr/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/utils/dxegen/Makefile b/utils/dxegen/Makefile index b796a697b2..030a2afe97 100644 --- a/utils/dxegen/Makefile +++ b/utils/dxegen/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/utils/fpcm/Makefile b/utils/fpcm/Makefile index cc02fb9e37..51a11b8d4a 100644 --- a/utils/fpcm/Makefile +++ b/utils/fpcm/Makefile @@ -608,10 +608,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/utils/fpcm/fpcmake.inc b/utils/fpcm/fpcmake.inc index f897955cfd..0525342e08 100644 --- a/utils/fpcm/fpcmake.inc +++ b/utils/fpcm/fpcmake.inc @@ -1,7 +1,7 @@ {$ifdef Delphi} -const fpcmakeini : array[0..255] of string[240]=( +const fpcmakeini : array[0..256] of string[240]=( {$else Delphi} -const fpcmakeini : array[0..255,1..240] of char=( +const fpcmakeini : array[0..256,1..240] of char=( {$endif Delphi} ';'#010+ '; Templates used by fpcmake to create a Makefile from Makefile.fpc'#010+ @@ -951,32 +951,40 @@ const fpcmakeini : array[0..255,1..240] of char=( 'ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),)'#010+ 'FPCMAKE_CROSSGCCOPT','=-mabi=32'#010+ 'else'#010+ + 'ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),)'#010+ + 'FPCMAKE_CROSSGCCOPT=-mabi=lp64'#010+ + 'else'#010+ + 'ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),)'#010+ + 'FPCMAKE_CROSSGCCOPT=-mabi=ilp32'#010+ + 'else'#010+ 'FPCMAKE_CROSSGCCOPT=-m32'#010+ 'endif'#010+ 'endif'#010+ 'endif'#010+ + 'endif',#010+ + 'endif'#010+ 'FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-l'+ 'ibgcc-file-name`)'#010+ 'endif'#010+ 'endif'#010+ #010+ 'ifndef FPCMAKEGCCLIBDIR'#010+ - 'FPCMAKEGCCLIBDIR:=$(shell dirname `gcc -print-libgcc-file','-name`)'#010+ + 'FPCMAKEGCCLIBDIR:=$(shell dirname `gcc -print-libgcc-file-name`)'#010+ 'endif'#010+ #010+ '# Try cross gcc'#010+ 'ifndef GCCLIBDIR'#010+ - 'CROSSGCC=$(strip $(wildcard $(addsuffix /$(BINUTILSPREFIX)gcc$(SRCEXEE'+ - 'XT),$(SEARCHPATH))))'#010+ + 'CRO','SSGCC=$(strip $(wildcard $(addsuffix /$(BINUTILSPREFIX)gcc$(SRCEX'+ + 'EEXT),$(SEARCHPATH))))'#010+ 'ifneq ($(CROSSGCC),)'#010+ 'GCCLIBDIR:=$(shell dirname `$(CROSSGCC) $(CROSSGCCOPT) -print-libgcc-f'+ - 'ile-name`)',#010+ + 'ile-name`)'#010+ 'endif'#010+ 'endif'#010+ 'endif'#010+ '#ifeq($(OS_SOURCE),linux)'#010+ #010+ - 'ifdef inUnix'#010+ + 'ifdef',' inUnix'#010+ 'ifeq ($(OS_SOURCE),netbsd)'#010+ 'OTHERLIBDIR:=/usr/pkg/lib'#010+ 'endif'#010+ @@ -985,10 +993,10 @@ const fpcmakeini : array[0..255,1..240] of char=( #010+ #010+ '[extensions]'#010+ - '#######################################################','#############'+ - '#'#010+ - '# Default extensions'#010+ '#####################################################################'#010+ + '# Default extensions'#010+ + '###############','#####################################################'+ + '#'#010+ #010+ '# Default needed extensions (Go32v2,Linux)'#010+ 'BATCHEXT=.bat'#010+ @@ -998,21 +1006,21 @@ const fpcmakeini : array[0..255,1..240] of char=( 'PPUEXT=.ppu'#010+ 'OEXT=.o'#010+ 'LTOEXT=.bc'#010+ - 'ASMEXT=','.s'#010+ + 'ASMEXT=.s'#010+ 'SMARTEXT=.sl'#010+ 'STATICLIBEXT=.a'#010+ 'SHAREDLIBEXT=.so'#010+ - 'SHAREDLIBPREFIX=libfp'#010+ + 'SH','AREDLIBPREFIX=libfp'#010+ 'STATICLIBPREFIX=libp'#010+ 'IMPORTLIBPREFIX=libimp'#010+ 'RSTEXT=.rst'#010+ '# external debug info for executable'#010+ 'EXEDBGEXT=.dbg'#010+ - '#DEBUGSYMEXT #for debugger symbol files, define only for targ','ets whi'+ - 'ch has this'#010+ + '#DEBUGSYMEXT #for debugger symbol files, define only for targets which'+ + ' has this'#010+ #010+ '# Go32v1'#010+ - 'ifeq ($(OS_TARGET),go32v1)'#010+ + 'ifeq ($(OS_TARGET),go3','2v1)'#010+ 'STATICLIBPREFIX='#010+ 'SHORTSUFFIX=v1'#010+ 'endif'#010+ @@ -1026,11 +1034,11 @@ const fpcmakeini : array[0..255,1..240] of char=( #010+ '# watcom'#010+ 'ifeq ($(OS_TARGET),watcom)'#010+ - 'STATICLIBPREFIX=',#010+ + 'STATICLIBPREFIX='#010+ 'OEXT=.obj'#010+ 'ASMEXT=.asm'#010+ 'SHAREDLIBEXT=.dll'#010+ - 'SHORTSUFFIX=wat'#010+ + 'SHORTSUFFI','X=wat'#010+ 'IMPORTLIBPREFIX='#010+ 'endif'#010+ #010+ @@ -1045,11 +1053,11 @@ const fpcmakeini : array[0..255,1..240] of char=( 'endif'#010+ #010+ '# Linux'#010+ - 'ifeq ($(OS_TARG','ET),linux)'#010+ + 'ifeq ($(OS_TARGET),linux)'#010+ 'BATCHEXT=.sh'#010+ 'EXEEXT='#010+ 'HASSHAREDLIB=1'#010+ - 'SHORTSUFFIX=lnx'#010+ + 'SHOR','TSUFFIX=lnx'#010+ 'endif'#010+ #010+ '# DragonFly BSD'#010+ @@ -1064,12 +1072,12 @@ const fpcmakeini : array[0..255,1..240] of char=( 'ifeq ($(OS_TARGET),freebsd)'#010+ 'BATCHEXT=.sh'#010+ 'EXEEXT='#010+ - 'HASSHAR','EDLIB=1'#010+ + 'HASSHAREDLIB=1'#010+ 'SHORTSUFFIX=fbs'#010+ 'endif'#010+ #010+ '# NetBSD'#010+ - 'ifeq ($(OS_TARGET),netbsd)'#010+ + 'ifeq ($(OS_','TARGET),netbsd)'#010+ 'BATCHEXT=.sh'#010+ 'EXEEXT='#010+ 'HASSHAREDLIB=1'#010+ @@ -1085,9 +1093,9 @@ const fpcmakeini : array[0..255,1..240] of char=( 'endif'#010+ #010+ '# Win32'#010+ - 'ifeq ($(O','S_TARGET),win32)'#010+ + 'ifeq ($(OS_TARGET),win32)'#010+ 'SHAREDLIBEXT=.dll'#010+ - 'SHORTSUFFIX=w32'#010+ + 'SHORTSUFFIX=w32'#010, 'endif'#010+ #010+ '# OS/2'#010+ @@ -1103,10 +1111,10 @@ const fpcmakeini : array[0..255,1..240] of char=( #010+ '# EMX'#010+ 'ifeq ($(OS_TARGET),emx)'#010+ - 'BATCHEXT=','.cmd'#010+ + 'BATCHEXT=.cmd'#010+ 'AOUTEXT=.out'#010+ 'STATICLIBPREFIX='#010+ - 'SHAREDLIBEXT=.dll'#010+ + 'SHAREDLIBEXT=.dl','l'#010+ 'SHORTSUFFIX=emx'#010+ 'ECHO=echo'#010+ 'IMPORTLIBPREFIX='#010+ @@ -1122,12 +1130,12 @@ const fpcmakeini : array[0..255,1..240] of char=( '# AROS'#010+ 'ifeq ($(OS_TARGET),aros)'#010+ 'EXEEXT='#010+ - 'SHAREDLIBE','XT=.library'#010+ + 'SHAREDLIBEXT=.library'#010+ 'SHORTSUFFIX=aros'#010+ 'endif'#010+ #010+ '# MorphOS'#010+ - 'ifeq ($(OS_TARGET),morphos)'#010+ + 'ifeq ','($(OS_TARGET),morphos)'#010+ 'EXEEXT='#010+ 'SHAREDLIBEXT=.library'#010+ 'SHORTSUFFIX=mos'#010+ @@ -1141,13 +1149,13 @@ const fpcmakeini : array[0..255,1..240] of char=( #010+ '# BeOS'#010+ 'ifeq ($(OS_TARGET),beos)'#010+ - 'BATCHEXT=.sh',#010+ + 'BATCHEXT=.sh'#010+ 'EXEEXT='#010+ 'SHORTSUFFIX=be'#010+ 'endif'#010+ #010+ '# Haiku'#010+ - 'ifeq ($(OS_TARGET),haiku)'#010+ + 'ifeq ($(OS_T','ARGET),haiku)'#010+ 'BATCHEXT=.sh'#010+ 'EXEEXT='#010+ 'SHORTSUFFIX=hai'#010+ @@ -1163,12 +1171,12 @@ const fpcmakeini : array[0..255,1..240] of char=( '# QNX'#010+ 'ifeq ($(OS_TARGET),qnx)'#010+ 'BATCHEXT=.sh'#010+ - 'EXEEXT','='#010+ + 'EXEEXT='#010+ 'SHORTSUFFIX=qnx'#010+ 'endif'#010+ #010+ '# Netware clib'#010+ - 'ifeq ($(OS_TARGET),netware)'#010+ + 'ifeq ($(OS_','TARGET),netware)'#010+ 'EXEEXT=.nlm'#010+ 'STATICLIBPREFIX='#010+ 'SHORTSUFFIX=nw'#010+ @@ -1180,11 +1188,11 @@ const fpcmakeini : array[0..255,1..240] of char=( 'EXEEXT=.nlm'#010+ 'STATICLIBPREFIX='#010+ 'SHORTSUFFIX=nwl'#010+ - 'IMPORTLIBPRE','FIX=imp'#010+ + 'IMPORTLIBPREFIX=imp'#010+ 'endif'#010+ #010+ '# Mac OS Classic'#010+ - 'ifeq ($(OS_TARGET),macosclassic)'#010+ + 'ifeq ($(OS_TARGET),','macosclassic)'#010+ 'BATCHEXT='#010+ 'EXEEXT='#010+ 'DEBUGSYMEXT=.xcoff'#010+ @@ -1196,12 +1204,12 @@ const fpcmakeini : array[0..255,1..240] of char=( 'ifneq ($(findstring $(OS_TARGET),darwin iphonesim ios),)'#010+ 'BATCHEXT=.sh'#010+ 'EXEEXT='#010+ - 'HASSHARE','DLIB=1'#010+ + 'HASSHAREDLIB=1'#010+ 'SHORTSUFFIX=dwn'#010+ 'EXEDBGEXT=.dSYM'#010+ 'endif'#010+ #010+ - '# gba'#010+ + '# gba',#010+ 'ifeq ($(OS_TARGET),gba)'#010+ 'EXEEXT=.gba'#010+ 'SHAREDLIBEXT=.so'#010+ @@ -1215,9 +1223,9 @@ const fpcmakeini : array[0..255,1..240] of char=( 'endif'#010+ #010+ '# NativeNT'#010+ - 'ifeq ($(OS_TARG','ET),NativeNT)'#010+ + 'ifeq ($(OS_TARGET),NativeNT)'#010+ 'SHAREDLIBEXT=.dll'#010+ - 'SHORTSUFFIX=nativent'#010+ + 'SHORTSUFFIX=nativen','t'#010+ 'endif'#010+ #010+ '# wii'#010+ @@ -1236,10 +1244,10 @@ const fpcmakeini : array[0..255,1..240] of char=( 'endif'#010+ #010+ '# Java'#010+ - 'i','feq ($(OS_TARGET),java)'#010+ + 'ifeq ($(OS_TARGET),java)'#010+ 'OEXT=.class'#010+ 'ASMEXT=.j'#010+ - 'SHAREDLIBEXT=.jar'#010+ + 'SHARE','DLIBEXT=.jar'#010+ 'SHORTSUFFIX=java'#010+ 'endif'#010+ #010+ @@ -1254,9 +1262,9 @@ const fpcmakeini : array[0..255,1..240] of char=( 'endif'#010+ #010+ '# MS-DOS'#010+ - 'if','eq ($(OS_TARGET),msdos)'#010+ + 'ifeq ($(OS_TARGET),msdos)'#010+ 'STATICLIBPREFIX='#010+ - 'STATICLIBEXT=.a'#010+ + 'STATICLIBE','XT=.a'#010+ 'SHORTSUFFIX=d16'#010+ 'endif'#010+ #010+ @@ -1269,12 +1277,12 @@ const fpcmakeini : array[0..255,1..240] of char=( #010+ '# Embedded'#010+ 'ifeq ($(OS_TARGET),embedded)'#010+ - 'ifeq ($(CPU_TARGET),i8086)'#010, + 'ifeq ($(CPU_TARGET),i8086)'#010+ 'STATICLIBPREFIX='#010+ 'STATICLIBEXT=.a'#010+ 'else'#010+ 'EXEEXT=.bin'#010+ - 'endif'#010+ + 'e','ndif'#010+ 'ifeq ($(CPU_TARGET),z80)'#010+ 'OEXT=.rel'#010+ 'endif'#010+ @@ -1289,20 +1297,20 @@ const fpcmakeini : array[0..255,1..240] of char=( 'SHORTSUFFIX=w16'#010+ 'endif'#010+ #010+ - '# ZX Spectru','m'#010+ + '# ZX Spectrum'#010+ 'ifeq ($(OS_TARGET),zxspectrum)'#010+ 'OEXT=.rel'#010+ 'endif'#010+ #010+ - #010+ + #010, '# For 8.3 limited OS'#039's the short suffixes'#010+ '# Otherwise use the full source/target names'#010+ 'ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)'#010+ 'FPCMADE=fpcmade.$(SHORTSUFFIX)'#010+ - 'ZIPSUFFIX=$(SHORTSUFFI','X)'#010+ + 'ZIPSUFFIX=$(SHORTSUFFIX)'#010+ 'ZIPCROSSPREFIX='#010+ 'ZIPSOURCESUFFIX=src'#010+ - 'ZIPEXAMPLESUFFIX=exm'#010+ + 'ZIPEXAMPLESU','FFIX=exm'#010+ 'else'#010+ 'FPCMADE=fpcmade.$(TARGETSUFFIX)'#010+ 'ZIPSOURCESUFFIX=.source'#010+ @@ -1311,19 +1319,19 @@ const fpcmakeini : array[0..255,1..240] of char=( 'ZIPSUFFIX=.$(SOURCESUFFIX)'#010+ 'ZIPCROSSPREFIX=$(TARGETSUFFIX)-'#010+ 'else'#010+ - 'ZIPSUFFIX','=.$(TARGETSUFFIX)'#010+ + 'ZIPSUFFIX=.$(TARGETSUFFIX)'#010+ 'ZIPCROSSPREFIX='#010+ 'endif'#010+ 'endif'#010+ #010+ - '[defaulttools]'#010+ + '[def','aulttools]'#010+ '#####################################################################'#010+ '# Default Tools'#010+ '#####################################################################'#010+ #010+ - '# Names of the binuti','ls tools'#010+ + '# Names of the binutils tools'#010+ 'ASNAME=$(BINUTILSPREFIX)as'#010+ - 'LDNAME=$(BINUTILSPREFIX)ld'#010+ + 'LDNAME=$(BINUTI','LSPREFIX)ld'#010+ 'ARNAME=$(BINUTILSPREFIX)ar'#010+ 'RCNAME=$(BINUTILSPREFIX)rc'#010+ 'NASMNAME=$(BINUTILSPREFIX)nasm'#010+ @@ -1331,9 +1339,9 @@ const fpcmakeini : array[0..255,1..240] of char=( '# assembler, redefine it if cross compiling'#010+ 'ifndef ASPROG'#010+ 'ifdef CROSSBINDIR'#010+ - 'ASPROG=$(CROSSB','INDIR)/$(ASNAME)$(SRCEXEEXT)'#010+ + 'ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT)'#010+ 'else'#010+ - 'ASPROG=$(ASNAME)'#010+ + 'ASPROG=$(ASNAME)'#010, 'endif'#010+ 'endif'#010+ #010+ @@ -1347,9 +1355,9 @@ const fpcmakeini : array[0..255,1..240] of char=( 'endif'#010+ #010+ '# Resource compiler'#010+ - 'ifndef RCPROG',#010+ + 'ifndef RCPROG'#010+ 'ifdef CROSSBINDIR'#010+ - 'RCPROG=$(CROSSBINDIR)/$(RCNAME)$(SRCEXEEXT)'#010+ + 'RCPROG=$(CROSSBINDIR)/$(RCNAME)$','(SRCEXEEXT)'#010+ 'else'#010+ 'RCPROG=$(RCNAME)'#010+ 'endif'#010+ @@ -1364,9 +1372,9 @@ const fpcmakeini : array[0..255,1..240] of char=( 'endif'#010+ 'endif'#010+ #010+ - '# NASM assembler, re','define it if cross compiling'#010+ + '# NASM assembler, redefine it if cross compiling'#010+ 'ifndef NASMPROG'#010+ - 'ifdef CROSSBINDIR'#010+ + 'ifdef ','CROSSBINDIR'#010+ 'NASMPROG=$(CROSSBINDIR)/$(NASMNAME)$(SRCEXEEXT)'#010+ 'else'#010+ 'NASMPROG=$(NASMNAME)'#010+ @@ -1379,10 +1387,10 @@ const fpcmakeini : array[0..255,1..240] of char=( 'RC=$(RCPROG)'#010+ 'AR=$(ARPROG)'#010+ 'NASM=$(NASMPROG)'#010+ - #010, + #010+ '# ppas.bat / ppas.sh'#010+ 'ifdef inUnix'#010+ - 'PPAS=./ppas$(SRCBATCHEXT)'#010+ + 'PPAS=./ppas$(SRCB','ATCHEXT)'#010+ 'else'#010+ 'PPAS=ppas$(SRCBATCHEXT)'#010+ 'endif'#010+ @@ -1397,14 +1405,14 @@ const fpcmakeini : array[0..255,1..240] of char=( 'ifdef DATE'#010+ 'DATESTR:=$(shell $(DATE) +%Y%m%d)'#010+ 'else'#010+ - 'DATESTR='#010, + 'DATESTR='#010+ 'endif'#010+ #010+ '# Zip options'#010+ 'ZIPOPT=-9'#010+ 'ZIPEXT=.zip'#010+ #010+ - '# Tar options'#010+ + '# Tar o','ptions'#010+ 'ifeq ($(USETAR),bz2)'#010+ 'TAROPT=vj'#010+ 'TAREXT=.tar.bz2'#010+ @@ -1416,17 +1424,18 @@ const fpcmakeini : array[0..255,1..240] of char=( #010+ '[command_begin]'#010+ '#####################################################################'#010+ - '# Compiler ','Command Line'#010+ - '#####################################################################'#010+ + '# Compiler Command Line'#010+ + '######################################','##############################'+ + '#'#010+ #010+ '# Load commandline OPTDEF and add FPC_CPU define, for compiling the'#010+ '# compiler this needs to be turned off'#010+ 'ifndef NOCPUDEF'#010+ 'override FPCOPTDEF=$(ARCH)'#010+ - 'endif'#010, + 'endif'#010+ #010+ #010+ - '# Load commandline OPT and add target and unit dir to be sure'#010+ + '# Load commandline OPT and add target and unit di','r to be sure'#010+ 'ifneq ($(OS_TARGET),$(OS_SOURCE))'#010+ 'override FPCOPT+=-T$(OS_TARGET)'#010+ 'endif'#010+ @@ -1436,18 +1445,18 @@ const fpcmakeini : array[0..255,1..240] of char=( 'endif'#010+ #010+ 'ifeq ($(OS_SOURCE),openbsd)'#010+ - 'overr','ide FPCOPT+=-FD$(NEW_BINUTILS_PATH)'#010+ - 'override FPCMAKEOPT+=-FD$(NEW_BINUTILS_PATH)'#010+ + 'override FPCOPT+=-FD$(NEW_BINUTILS_PATH)'#010+ + 'override FPCMAK','EOPT+=-FD$(NEW_BINUTILS_PATH)'#010+ 'override FPMAKE_BUILD_OPT+=-FD$(NEW_BINUTILS_PATH)'#010+ 'endif'#010+ #010+ 'ifndef CROSSBOOTSTRAP'#010+ 'ifneq ($(BINUTILSPREFIX),)'#010+ 'override FPCOPT+=-XP$(BINUTILSPREFIX)'#010+ - 'ifneq ($(RLINK','PATH),)'#010+ + 'ifneq ($(RLINKPATH),)'#010+ 'override FPCOPT+=-Xr$(RLINKPATH)'#010+ 'endif'#010+ - 'endif'#010+ + 'endi','f'#010+ 'endif'#010+ #010+ '# When BINUTILSPREFIX is given and we are not cross-compiling then use'+ @@ -1455,19 +1464,19 @@ const fpcmakeini : array[0..255,1..240] of char=( '# it while compiling the fpmake file. (For example to build i386-freeb'+ 'sd'#010+ '# with BINUTILSPREFIX=i386-)'#010+ - 'ifndef ','CROSSCOMPILE'#010+ + 'ifndef CROSSCOMPILE'#010+ 'ifneq ($(BINUTILSPREFIX),)'#010+ - 'override FPCMAKEOPT+=-XP$(BINUTILSPREFIX)'#010+ + 'override FP','CMAKEOPT+=-XP$(BINUTILSPREFIX)'#010+ 'override FPMAKE_BUILD_OPT+=-XP$(BINUTILSPREFIX)'#010+ 'endif'#010+ 'endif'#010+ #010+ '# User dirs should be first, so they are looked at first'#010+ 'ifdef UNITDIR'#010+ - 'override FPCOPT+=$(addpref','ix -Fu,$(UNITDIR))'#010+ + 'override FPCOPT+=$(addprefix -Fu,$(UNITDIR))'#010+ 'endif'#010+ 'ifdef LIBDIR'#010+ - 'override FPCOPT+=$(addprefix -Fl,$(LIBDIR))'#010+ + 'override FPCO','PT+=$(addprefix -Fl,$(LIBDIR))'#010+ 'endif'#010+ 'ifdef OBJDIR'#010+ 'override FPCOPT+=$(addprefix -Fo,$(OBJDIR))'#010+ @@ -1477,11 +1486,11 @@ const fpcmakeini : array[0..255,1..240] of char=( 'endif'#010+ #010+ '# Smartlinking'#010+ - 'ifdef LINK','SMART'#010+ + 'ifdef LINKSMART'#010+ 'override FPCOPT+=-XX'#010+ 'endif'#010+ #010+ - '# Smartlinking creation'#010+ + '# Smartlinking cr','eation'#010+ 'ifdef CREATESMART'#010+ 'override FPCOPT+=-CX'#010+ 'endif'#010+ @@ -1494,9 +1503,9 @@ const fpcmakeini : array[0..255,1..240] of char=( #010+ '# Release mode'#010+ '# (strip, optimize and don'#039't load fpc.cfg)'#010+ - 'ifde','f RELEASE'#010+ + 'ifdef RELEASE'#010+ 'FPCCPUOPT:=-O2'#010+ - 'override FPCOPT+=-Ur -Xs $(FPCCPUOPT) -n'#010+ + 'override FPCOPT+=-Ur -Xs $','(FPCCPUOPT) -n'#010+ 'override FPCOPTDEF+=RELEASE'#010+ 'endif'#010+ #010+ @@ -1510,68 +1519,68 @@ const fpcmakeini : array[0..255,1..240] of char=( 'override FPCOPT+=-O2'#010+ 'endif'#010+ #010+ - '# Verbose settings (warning,note,inf','o)'#010+ + '# Verbose settings (warning,note,info)'#010+ 'ifdef VERBOSE'#010+ 'override FPCOPT+=-vwni'#010+ 'endif'#010+ #010+ - '# Needed compiler options'#010+ + '# Ne','eded compiler options'#010+ 'ifdef COMPILER_OPTIONS'#010+ 'override FPCOPT+=$(COMPILER_OPTIONS)'#010+ 'endif'#010+ 'ifdef COMPILER_UNITDIR'#010+ 'override FPCOPT+=$(addprefix -Fu,$(COMPILER_UNITDIR))'#010+ 'endif'#010+ - 'ifdef COMPILER_LIB','RARYDIR'#010+ - 'override FPCOPT+=$(addprefix -Fl,$(COMPILER_LIBRARYDIR))'#010+ + 'ifdef COMPILER_LIBRARYDIR'#010+ + 'override FPCOPT+=$(addprefix -Fl,$(COMPILER','_LIBRARYDIR))'#010+ 'endif'#010+ 'ifdef COMPILER_OBJECTDIR'#010+ 'override FPCOPT+=$(addprefix -Fo,$(COMPILER_OBJECTDIR))'#010+ 'endif'#010+ 'ifdef COMPILER_INCLUDEDIR'#010+ - 'override FPCOPT+=$(addprefix -Fi,$(COMPILER_INCLUDEDIR))',#010+ + 'override FPCOPT+=$(addprefix -Fi,$(COMPILER_INCLUDEDIR))'#010+ 'endif'#010+ #010+ '# Cross compiler utils'#010+ 'ifdef CROSSBINDIR'#010+ - 'override FPCOPT+=-FD$(CROSSBINDIR)'#010+ + 'ov','erride FPCOPT+=-FD$(CROSSBINDIR)'#010+ 'endif'#010+ #010+ '# Target dirs and the prefix to use for clean/install'#010+ 'ifdef COMPILER_TARGETDIR'#010+ 'override FPCOPT+=-FE$(COMPILER_TARGETDIR)'#010+ - 'ifeq ($(COMPILER_TARGETDIR),','.)'#010+ + 'ifeq ($(COMPILER_TARGETDIR),.)'#010+ 'override TARGETDIRPREFIX='#010+ 'else'#010+ - 'override TARGETDIRPREFIX=$(COMPILER_TARGETDIR)/'#010+ + 'override TARGETDI','RPREFIX=$(COMPILER_TARGETDIR)/'#010+ 'endif'#010+ 'endif'#010+ #010+ '# Unit target dir (default is units/<cpu>-<os>/'#010+ 'ifdef COMPILER_UNITTARGETDIR'#010+ 'override FPCOPT+=-FU$(COMPILER_UNITTARGETDIR)'#010+ - 'ifeq ($(COMPILER_UNITT','ARGETDIR),.)'#010+ + 'ifeq ($(COMPILER_UNITTARGETDIR),.)'#010+ 'override UNITTARGETDIRPREFIX='#010+ 'else'#010+ - 'override UNITTARGETDIRPREFIX=$(COMPILER_UNITTARGETDIR)/'#010+ + 'ove','rride UNITTARGETDIRPREFIX=$(COMPILER_UNITTARGETDIR)/'#010+ 'endif'#010+ 'else'#010+ 'ifdef COMPILER_TARGETDIR'#010+ 'override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR)'#010+ - 'override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX',')'#010+ + 'override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX)'#010+ 'endif'#010+ 'endif'#010+ #010+ 'ifdef CREATESHARED'#010+ - 'override FPCOPT+=-Cg'#010+ + 'override FPCOPT+=','-Cg'#010+ 'endif'#010+ #010+ '# create always pic'#039'ed code on x86_64, mips and mipsel'#010+ '# on unix-like systems'#010+ 'ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linu'+ 'x solaris),)'#010+ - 'ifneq ($(findstri','ng $(CPU_TARGET),x86_64 mips mipsel),)'#010+ - 'override FPCOPT+=-Cg'#010+ + 'ifneq ($(findstring $(CPU_TARGET),x86_64 mips mipsel riscv64),)'#010+ + 'over','ride FPCOPT+=-Cg'#010+ 'endif'#010+ 'endif'#010+ #010+ @@ -1584,8 +1593,8 @@ const fpcmakeini : array[0..255,1..240] of char=( '# Add GCC lib path if asked'#010+ 'ifdef GCCLIBDIR'#010+ 'override FPCOPT+=-Fl$(GCCLIBDIR)'#010+ - 'if','def FPCMAKEGCCLIBDIR'#010+ - 'override FPCMAKEOPT+=-Fl$(FPCMAKEGCCLIBDIR)'#010+ + 'ifdef FPCMAKEGCCLIBDIR'#010+ + 'override FPCMAKEOPT+=-','Fl$(FPCMAKEGCCLIBDIR)'#010+ 'else'#010+ 'override FPCMAKEOPT+=-Fl$(GCCLIBDIR)'#010+ 'endif'#010+ @@ -1596,9 +1605,9 @@ const fpcmakeini : array[0..255,1..240] of char=( #010+ #010+ '[command_end]'#010+ - '# Add commandline options last s','o they can override'#010+ + '# Add commandline options last so they can override'#010+ 'ifdef OPT'#010+ - 'override FPCOPT+=$(OPT)'#010+ + 'override FPCO','PT+=$(OPT)'#010+ 'endif'#010+ #010+ '# Override options to compile the fpmake-binary with command-line opti'+ @@ -1607,8 +1616,8 @@ const fpcmakeini : array[0..255,1..240] of char=( 'override FPMAKE_BUILD_OPT+=$(FPMAKEBUILDOPT)'#010+ 'endif'#010+ #010+ - '# Add',' defines from FPCOPTDEF to FPCOPT'#010+ - 'ifdef FPCOPTDEF'#010+ + '# Add defines from FPCOPTDEF to FPCOPT'#010+ + 'ifdef FPC','OPTDEF'#010+ 'override FPCOPT+=$(addprefix -d,$(FPCOPTDEF))'#010+ 'endif'#010+ #010+ @@ -1618,9 +1627,9 @@ const fpcmakeini : array[0..255,1..240] of char=( 'endif'#010+ #010+ '# Use the environment to pass commandline options?'#010+ - 'ifde','f USEENV'#010+ + 'ifdef USEENV'#010+ 'override FPCEXTCMD:=$(FPCOPT)'#010+ - 'override FPCOPT:=!FPCEXTCMD'#010+ + 'over','ride FPCOPT:=!FPCEXTCMD'#010+ 'export FPCEXTCMD'#010+ 'endif'#010+ #010+ @@ -1628,20 +1637,20 @@ const fpcmakeini : array[0..255,1..240] of char=( 'override AFULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)'#010+ #010+ 'ifneq ($(AFULL_TARGET),$(AFULL_SOURCE))'#010+ - 'override A','CROSSCOMPILE=1'#010+ + 'override ACROSSCOMPILE=1'#010+ 'endif'#010+ #010+ 'ifdef ACROSSCOMPILE'#010+ - 'override FPCOPT+=$(CROSSOPT)'#010+ + 'o','verride FPCOPT+=$(CROSSOPT)'#010+ 'endif'#010+ #010+ '# Compiler commandline'#010+ 'override COMPILER:=$(strip $(FPC) $(FPCOPT))'#010+ #010+ '# also call ppas if with command option -s'#010+ - '# but only if the FULL_SOURCE and FULL_TARGET are ','equal'#010+ + '# but only if the FULL_SOURCE and FULL_TARGET are equal'#010+ '# or if -sh is used'#010+ - 'ifneq (,$(findstring -sh ,$(COMPILER)))'#010+ + 'ifneq (,$(findstr','ing -sh ,$(COMPILER)))'#010+ 'UseEXECPPAS=1'#010+ 'endif'#010+ 'ifneq (,$(findstring -s ,$(COMPILER)))'#010+ @@ -1652,10 +1661,10 @@ const fpcmakeini : array[0..255,1..240] of char=( 'ifneq ($(UseEXECPPAS),1)'#010+ 'EXECPPAS='#010+ 'else'#010+ - 'ifdef RUNBAT','CH'#010+ + 'ifdef RUNBATCH'#010+ 'EXECPPAS:=@$(RUNBATCH) $(PPAS)'#010+ 'else'#010+ - 'EXECPPAS:=@$(PPAS)'#010+ + 'EXEC','PPAS:=@$(PPAS)'#010+ 'endif'#010+ 'endif'#010+ #010+ @@ -1665,9 +1674,9 @@ const fpcmakeini : array[0..255,1..240] of char=( '# Loaders'#010+ '#####################################################################'#010+ #010+ - '.PH','ONY: fpc_loaders'#010+ + '.PHONY: fpc_loaders'#010+ #010+ - 'ifneq ($(TARGET_LOADERS),)'#010+ + 'ifneq ($(TARGET_LOADERS),',')'#010+ 'override ALLTARGET+=fpc_loaders'#010+ 'override CLEANTARGET+=fpc_loaders_clean'#010+ 'override INSTALLTARGET+=fpc_loaders_install'#010+ @@ -1675,8 +1684,8 @@ const fpcmakeini : array[0..255,1..240] of char=( 'override LOADEROFILES:=$(addsuffix $(OEXT),$(TARGET_LOADERS))'#010+ 'endif'#010+ #010+ - '%$(OEXT):',' %$(LOADEREXT)'#010+ - 'ifdef COMPILER_UNITTARGETDIR'#010+ + '%$(OEXT): %$(LOADEREXT)'#010+ + 'ifdef COMPILER_UNITTARGETDIR',#010+ ' $(AS) -o $(COMPILER_UNITTARGETDIR)/$*$(OEXT) $<'#010+ 'else'#010+ ' $(AS) -o $*$(OEXT) $<'#010+ @@ -1685,9 +1694,9 @@ const fpcmakeini : array[0..255,1..240] of char=( 'fpc_loaders: $(COMPILER_UNITTARGETDIR) $(LOADEROFILES)'#010+ #010+ 'fpc_loaders_clean:'#010+ - 'ifdef COMPILER_UNITTARG','ETDIR'#010+ - ' -$(DEL) $(addprefix $(COMPILER_UNITTARGETDIR)/,$(LOADEROFILES)'+ - ')'#010+ + 'ifdef COMPILER_UNITTARGETDIR'#010+ + ' -$(DEL) $(addprefix $(COMPILE','R_UNITTARGETDIR)/,$(LOADEROFILE'+ + 'S))'#010+ 'else'#010+ ' -$(DEL) $(LOADEROFILES)'#010+ 'endif'#010+ @@ -1695,8 +1704,8 @@ const fpcmakeini : array[0..255,1..240] of char=( 'fpc_loaders_install:'#010+ ' $(MKDIR) $(INSTALL_UNITDIR)'#010+ 'ifdef COMPILER_UNITTARGETDIR'#010+ - ' $(INSTALL) $(addprefix $','(COMPILER_UNITTARGETDIR)/,$(LOADEROF'+ - 'ILES)) $(INSTALL_UNITDIR)'#010+ + ' $(INSTALL) $(addprefix $(COMPILER_UNITTARGETDIR)/,$(LOADEROFIL'+ + 'ES)) ','$(INSTALL_UNITDIR)'#010+ 'else'#010+ ' $(INSTALL) $(LOADEROFILES) $(INSTALL_UNITDIR)'#010+ 'endif'#010+ @@ -1705,7 +1714,7 @@ const fpcmakeini : array[0..255,1..240] of char=( '[unitrules]'#010+ '#####################################################################'#010+ '# Units'#010+ - '#####################','###############################################'+ + '################################################################','####'+ '#'#010+ #010+ '.PHONY: fpc_units'#010+ @@ -1714,8 +1723,8 @@ const fpcmakeini : array[0..255,1..240] of char=( 'override ALLTARGET+=fpc_units'#010+ #010+ 'override UNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_UNITS))'#010+ - 'override IMPLICITUNITPPUFILES=$','(addsuffix $(PPUEXT),$(TARGET_IMPLICI'+ - 'TUNITS))'#010+ + 'override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITU'+ + 'NITS','))'#010+ 'override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)'#010+ 'override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)'#010+ 'endif'#010+ @@ -1723,32 +1732,33 @@ const fpcmakeini : array[0..255,1..240] of char=( 'fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)'#010+ #010+ #010+ - '[e','xerules]'#010+ - '#####################################################################'#010+ + '[exerules]'#010+ + '##################################','##################################'+ + '#'#010+ '# Exes'#010+ '#####################################################################'#010+ #010+ '.PHONY: fpc_exes'#010+ #010+ '# Programs are not needed for a cross installation'#010+ - 'ifndef CROSSIN','STALL'#010+ + 'ifndef CROSSINSTALL'#010+ 'ifneq ($(TARGET_PROGRAMS),)'#010+ - 'override EXEFILES=$(addsuffix $(EXEEXT),$(TARGET_PROGRAMS))'#010+ + 'override ','EXEFILES=$(addsuffix $(EXEEXT),$(TARGET_PROGRAMS))'#010+ 'override EXEOFILES:=$(addsuffix $(OEXT),$(TARGET_PROGRAMS)) $(addsuffi'+ 'x $(LTOEXT),$(TARGET_PROGRAMS))$(addprefix $(STATICLIBPREFIX),$(addsuf'+ - 'fix $(','STATICLIBEXT),$(TARGET_PROGRAMS))) $(addprefix $(IMPORTLIBPREF'+ + 'fix $(STATICLIBEXT),$(TARGET_PROGRAMS))) $(addpre','fix $(IMPORTLIBPREF'+ 'IX),$(addsuffix $(STATICLIBEXT),$(TARGET_PROGRAMS)))'#010+ 'override EXEDBGFILES:=$(addsuffix $(EXEDBGEXT),$(TARGET_PROGRAMS))'#010+ #010+ 'override ALLTARGET+=fpc_exes'#010+ - 'override INSTALLEXEFILES+=$(','EXEFILES)'#010+ - 'override CLEANEXEFILES+=$(EXEFILES) $(EXEOFILES)'#010+ + 'override INSTALLEXEFILES+=$(EXEFILES)'#010+ + 'override CLEANEXEFILES+=$(EXEFILE','S) $(EXEOFILES)'#010+ 'override CLEANEXEDBGFILES+=$(EXEDBGFILES)'#010+ 'ifeq ($(OS_TARGET),os2)'#010+ 'override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))'#010+ 'endif'#010+ 'ifeq ($(OS_TARGET),emx)'#010+ - 'override CLEANEXEF','ILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))'#010+ + 'override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGR','AMS))'#010+ 'endif'#010+ 'endif'#010+ 'endif'#010+ @@ -1758,8 +1768,9 @@ const fpcmakeini : array[0..255,1..240] of char=( #010+ '[rstrules]'#010+ '#####################################################################'#010+ - '# Resource strings'#010, - '#####################################################################'#010+ + '# Resource strings'#010+ + '###########################################','#########################'+ + '#'#010+ #010+ 'ifdef TARGET_RSTS'#010+ 'override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))'#010+ @@ -1769,33 +1780,32 @@ const fpcmakeini : array[0..255,1..240] of char=( #010+ #010+ '[examplerules]'#010+ - '###################################','#################################'+ - '#'#010+ - '# Examples'#010+ + '#####################################################################'#010+ + '# Exampl','es'#010+ '#####################################################################'#010+ #010+ '.PHONY: fpc_examples'#010+ #010+ 'ifneq ($(TARGET_EXAMPLES),)'#010+ 'HASEXAMPLES=1'#010+ - 'override EXAMPLESOURCEFILES=$(wildcard $(addsuffix .pp,$(TA','RGET_EXAM'+ - 'PLES)) $(addsuffix .pas,$(TARGET_EXAMPLES)) $(addsuffix .lpr,$(TARGET_'+ + 'override EXAMPLESOURCEFILES=$(wildcard $(addsuffix .pp,$(TARGET_EXAMPL'+ + 'ES)) $(addsuffix .pas,$(TARGET_E','XAMPLES)) $(addsuffix .lpr,$(TARGET_'+ 'EXAMPLES)) $(addsuffix .dpr,$(TARGET_EXAMPLES)))'#010+ 'override EXAMPLEFILES:=$(addsuffix $(EXEEXT),$(TARGET_EXAMPLES))'#010+ - 'override EXAMPLEOFILES:=$(addsuffix $(OEXT),$(T','ARGET_EXAMPLES)) $(ad'+ - 'dsuffix $(LTOEXT),$(TARGET_EXAMPLES)) $(addprefix $(STATICLIBPREFIX),$'+ + 'override EXAMPLEOFILES:=$(addsuffix $(OEXT),$(TARGET_EXAMPLES)) $(adds'+ + 'uffix $(LTOEXT),$(TA','RGET_EXAMPLES)) $(addprefix $(STATICLIBPREFIX),$'+ '(addsuffix $(STATICLIBEXT),$(TARGET_EXAMPLES))) $(addprefix $(IMPORTLI'+ 'BPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_EXAMPLES)))'#010+ - 'override EXAMPLEDBGFI','LES:=$(addsuffix $(EXEDBGEXT),$(TARGET_EXAMPLES'+ + 'override EXAMPLEDBGFILES:=$(addsuffix $(EXEDBGEXT),$(TARGET_EXAM','PLES'+ '))'#010+ #010+ 'override CLEANEXEFILES+=$(EXAMPLEFILES) $(EXAMPLEOFILES)'#010+ 'override CLEANEXEDBGFILES+=$(EXAMPLEDBGFILES)'#010+ 'ifeq ($(OS_TARGET),os2)'#010+ - 'override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_EXAMPL','ES))'#010+ + 'override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_EXAMPLES))'#010+ 'endif'#010+ 'ifeq ($(OS_TARGET),emx)'#010+ - 'override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_EXAMPLES))'#010+ + 'override',' CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_EXAMPLES))'#010+ 'endif'#010+ 'endif'#010+ 'ifneq ($(TARGET_EXAMPLEDIRS),)'#010+ @@ -1803,17 +1813,18 @@ const fpcmakeini : array[0..255,1..240] of char=( 'endif'#010+ #010+ 'fpc_examples: all $(EXAMPLEFILES) $(addsuffix _all,$(TARGET_EXAMPLEDIR'+ - 'S))'#010, + 'S))'#010+ #010+ #010+ '[compilerules]'#010+ - '#####################################################################'#010+ + '##########################','##########################################'+ + '#'#010+ '# General compile rules'#010+ '#####################################################################'#010+ #010+ - '.PHONY: fpc_all fpc_smart fpc_debug fpc_release fpc_shared',#010+ + '.PHONY: fpc_all fpc_smart fpc_debug fpc_release fpc_shared'#010+ #010+ - '$(FPCMADE): $(ALLDEPENDENCIES) $(ALLTARGET)'#010+ + '$(FPCMADE): $(ALLDEPENDENCIES) $(ALLTARGE','T)'#010+ ' @$(ECHOREDIR) Compiled > $(FPCMADE)'#010+ #010+ 'fpc_all: $(FPCMADE)'#010+ @@ -1825,19 +1836,19 @@ const fpcmakeini : array[0..255,1..240] of char=( ' $(MAKE) all DEBUG=1'#010+ #010+ 'fpc_release:'#010+ - ' $(MAKE) a','ll RELEASE=1'#010+ + ' $(MAKE) all RELEASE=1'#010+ #010+ - '# General compile rules, available for both possible .pp and .pas exte'+ - 'nsions'#010+ + '# General compile rules, avai','lable for both possible .pp and .pas ex'+ + 'tensions'#010+ #010+ '.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) $(LTOEXT) .pas .lpr .dpr .pp .r'+ 'c .res'#010+ #010+ '$(COMPILER_UNITTARGETDIR):'#010+ - ' $(MKDIRTREE) $(COMPILER_UNITTARGETD','IR)'#010+ + ' $(MKDIRTREE) $(COMPILER_UNITTARGETDIR)'#010+ #010+ '$(COMPILER_TARGETDIR):'#010+ - ' $(MKDIRTREE) $(COMPILER_TARGETDIR)'#010+ + ' $(MKDIR','TREE) $(COMPILER_TARGETDIR)'#010+ #010+ '%$(PPUEXT): %.pp'#010+ ' $(COMPILER) $<'#010+ @@ -1849,10 +1860,10 @@ const fpcmakeini : array[0..255,1..240] of char=( #010+ '%$(EXEEXT): %.pp'#010+ ' $(COMPILER) $<'#010+ - ' ',' $(EXECPPAS)'#010+ + ' $(EXECPPAS)'#010+ #010+ '%$(EXEEXT): %.pas'#010+ - ' $(COMPILER) $<'#010+ + ' $','(COMPILER) $<'#010+ ' $(EXECPPAS)'#010+ #010+ '%$(EXEEXT): %.lpr'#010+ @@ -1864,21 +1875,21 @@ const fpcmakeini : array[0..255,1..240] of char=( ' $(EXECPPAS)'#010+ #010+ '%.res: %.rc'#010+ - ' windres -i $< -o $','@'#010+ + ' windres -i $< -o $@'#010+ #010+ - '# Search paths for .ppu, .pp, .pas, .lpr, .dpr'#010+ + '# Search paths for .ppu, .pp, .pas, .lpr',', .dpr'#010+ 'vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)'#010+ 'vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)'#010+ 'vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)'#010+ - 'vpath %.dpr $(COMPIL','ER_SOURCEDIR) $(COMPILER_INCLUDEDIR)'#010+ - 'vpath %.inc $(COMPILER_INCLUDEDIR)'#010+ + 'vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)'#010+ + 'vpath ','%.inc $(COMPILER_INCLUDEDIR)'#010+ 'vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)'#010+ 'vpath %$(LTOEXT) $(COMPILER_UNITTARGETDIR)'#010+ 'vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)'#010+ #010+ '[sharedrules]'#010+ - '##########################','##########################################'+ - '#'#010+ + '#####################################################################', + #010+ '# Library'#010+ '#####################################################################'#010+ #010+ @@ -1887,11 +1898,11 @@ const fpcmakeini : array[0..255,1..240] of char=( 'override INSTALLTARGET+=fpc_shared_install'#010+ #010+ 'ifndef SHARED_LIBVERSION'#010+ - 'SHARED_LIBVERSION=$(FPC_VE','RSION)'#010+ + 'SHARED_LIBVERSION=$(FPC_VERSION)'#010+ 'endif'#010+ #010+ 'ifndef SHARED_LIBNAME'#010+ - 'SHARED_LIBNAME=$(PACKAGE_NAME)'#010+ + 'SHARED_','LIBNAME=$(PACKAGE_NAME)'#010+ 'endif'#010+ #010+ 'ifndef SHARED_FULLNAME'#010+ @@ -1900,42 +1911,43 @@ const fpcmakeini : array[0..255,1..240] of char=( 'endif'#010+ #010+ '# Default sharedlib units are all unit objects'#010+ - 'i','fndef SHARED_LIBUNITS'#010+ - 'SHARED_LIBUNITS:=$(TARGET_UNITS) $(TARGET_IMPLICITUNITS)'#010+ + 'ifndef SHARED_LIBUNITS'#010+ + 'SHARED_LIBUNITS:=$(TA','RGET_UNITS) $(TARGET_IMPLICITUNITS)'#010+ 'override SHARED_LIBUNITS:=$(filter-out $(INSTALL_BUILDUNIT),$(SHARED_L'+ 'IBUNITS))'#010+ 'endif'#010+ #010+ 'fpc_shared:'#010+ 'ifdef HASSHAREDLIB'#010+ - ' $(MAKE) all CREATESHARED=1 LINKSHAR','ED=1 CREATESMART=1'#010+ - 'ifneq ($(SHARED_BUILD),n)'#010+ + ' $(MAKE) all CREATESHARED=1 LINKSHARED=1 CREATESMART=1'#010+ + 'ifneq ($(SHARED_BUILD),n',')'#010+ ' $(PPUMOVE) -q $(SHARED_LIBUNITS) -i$(COMPILER_UNITTARGETDIR) -'+ 'o$(SHARED_FULLNAME) -d$(COMPILER_UNITTARGETDIR) -P$(BINUTILSPREFIX)'#010+ 'endif'#010+ 'else'#010+ - ' @$(ECHO) Shared Libraries not supporte','d'#010+ + ' @$(ECHO) Shared Libraries not supported'#010+ 'endif'#010+ #010+ 'fpc_shared_install:'#010+ - 'ifneq ($(SHARED_BUILD),n)'#010+ + 'ifneq ($(SHARE','D_BUILD),n)'#010+ 'ifneq ($(SHARED_LIBUNITS),)'#010+ 'ifneq ($(wildcard $(COMPILER_UNITTARGETDIR)/$(SHARED_FULLNAME)),)'#010+ ' $(INSTALL) $(COMPILER_UNITTARGETDIR)/$(SHARED_FULLNAME) $(INST'+ 'ALL_SHAREDDIR)'#010+ - 'endif'#010, + 'endif'#010+ 'endif'#010+ 'endif'#010+ #010+ '[installrules]'#010+ - '#####################################################################'#010+ + '###############','#####################################################'+ + '#'#010+ '# Install rules'#010+ '#####################################################################'#010+ #010+ - '.PHONY: fpc_install fpc_sourceinstall fpc_exampleinstal','l'#010+ + '.PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall'#010+ #010+ 'ifdef INSTALL_UNITS'#010+ - 'override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(INSTALL_UNITS))'#010+ + 'override INSTALLPPUF','ILES+=$(addsuffix $(PPUEXT),$(INSTALL_UNITS))'#010+ 'endif'#010+ #010+ 'ifdef INSTALL_BUILDUNIT'#010+ @@ -1944,27 +1956,28 @@ const fpcmakeini : array[0..255,1..240] of char=( 'endif'#010+ #010+ 'ifdef INSTALLPPUFILES'#010+ - '# ','Avoid getting the same name twice as some install EXE fail'#010+ + '# Avoid getting the same name twice as some i','nstall EXE fail'#010+ '# in this case, happends for instance for OS/2 target'#010+ 'ifneq ($(IMPORTLIBPREFIX)-$(STATICLIBEXT),$(STATICLIBPREFIX)-$(STATICL'+ 'IBEXT))'#010+ - 'override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$','(OEXT),$(INSTALLPPU'+ - 'FILES)) $(subst $(PPUEXT),$(LTOEXT),$(INSTALLPPUFILES)) $(addprefix $('+ + 'override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFI'+ + 'LES)) $(subst $(PPUEXT','),$(LTOEXT),$(INSTALLPPUFILES)) $(addprefix $('+ 'STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))'+ ') $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(I'+ - 'NSTALLPPUFI','LES)))'#010+ + 'NSTALLPPUFILES)))'#010+ 'else'#010+ - 'override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFI'+ - 'LES)) $(subst $(PPUEXT),$(LTOEXT),$(INSTALLPPUFILES)) $(addprefix $(ST'+ - 'ATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES)))'#010+ + 'override INSTALLPPULINKFILES:=$','(subst $(PPUEXT),$(OEXT),$(INSTALLPPU'+ + 'FILES)) $(subst $(PPUEXT),$(LTOEXT),$(INSTALLPPUFILES)) $(addprefix $('+ + 'STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))'+ + ')'#010+ 'endif'#010+ #010+ - 'ifneq ($(UN','ITTARGETDIRPREFIX),)'#010+ - 'override INSTALLPPUFILENAMES:=$(notdir $(INSTALLPPUFILES))'#010+ + 'ifneq ($(UNITTARGETDIRPREFIX),)'#010+ + 'override INSTALLPPUFIL','ENAMES:=$(notdir $(INSTALLPPUFILES))'#010+ 'override INSTALLPPULINKFILENAMES:=$(notdir $(INSTALLPPULINKFILES))'#010+ 'override INSTALLPPUFILES=$(addprefix $(UNITTARGETDIRPREFIX),$(INSTALLP'+ 'PUFILENAMES))'#010+ - 'override ','INSTALLPPULINKFILES=$(wildcard $(addprefix $(UNITTARGETDIRP'+ + 'override INSTALLPPULINKFILES=$(wildcard $(addprefix ','$(UNITTARGETDIRP'+ 'REFIX),$(INSTALLPPULINKFILENAMES)))'#010+ 'endif'#010+ '# Implicitly install Package.fpc'#010+ @@ -1973,7 +1986,7 @@ const fpcmakeini : array[0..255,1..240] of char=( #010+ 'ifdef INSTALLEXEFILES'#010+ 'ifneq ($(TARGETDIRPREFIX),)'#010+ - 'override INST','ALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(notdir $('+ + 'override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX)',',$(notdir $('+ 'INSTALLEXEFILES)))'#010+ 'endif'#010+ 'endif'#010+ @@ -1982,15 +1995,15 @@ const fpcmakeini : array[0..255,1..240] of char=( 'ifdef INSTALLEXEFILES'#010+ ' $(MKDIR) $(INSTALL_BINDIR)'#010+ ' $(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR)'#010+ - 'end','if'#010+ + 'endif'#010+ 'ifdef INSTALL_CREATEPACKAGEFPC'#010+ - 'ifdef FPCMAKE'#010+ + 'ifdef FPC','MAKE'#010+ '# If the fpcpackage variable is set then create and install Package.fp'+ 'c,'#010+ '# a safety check is done if Makefile.fpc is available'#010+ 'ifdef PACKAGE_VERSION'#010+ 'ifneq ($(wildcard Makefile.fpc),)'#010+ - ' $','(FPCMAKE) -p -T$(CPU_TARGET)-$(OS_TARGET) Makefile.fpc'#010+ + ' $(FPCMAKE) -p -T$(CPU_TARGET)-$(OS_TARGET) M','akefile.fpc'#010+ ' $(MKDIR) $(INSTALL_UNITDIR)'#010+ ' $(INSTALL) Package.fpc $(INSTALL_UNITDIR)'#010+ 'endif'#010+ @@ -1999,15 +2012,15 @@ const fpcmakeini : array[0..255,1..240] of char=( 'endif'#010+ 'ifdef INSTALLPPUFILES'#010+ ' $(MKDIR) $(INSTALL_UNITDIR)'#010+ - ' $(INSTALL',') $(INSTALLPPUFILES) $(INSTALL_UNITDIR)'#010+ - 'ifneq ($(INSTALLPPULINKFILES),)'#010+ + ' $(INSTALL) $(INSTALLPPUFILES) $(INSTALL_UNITDIR)'#010+ + 'ifn','eq ($(INSTALLPPULINKFILES),)'#010+ ' $(INSTALL) $(INSTALLPPULINKFILES) $(INSTALL_UNITDIR)'#010+ 'endif'#010+ 'ifneq ($(wildcard $(LIB_FULLNAME)),)'#010+ ' $(MKDIR) $(INSTALL_LIBDIR)'#010+ - ' $(INSTALL) $(LIB_FULL','NAME) $(INSTALL_LIBDIR)'#010+ + ' $(INSTALL) $(LIB_FULLNAME) $(INSTALL_LIBDIR)'#010+ 'ifdef inUnix'#010+ - ' ln -sf $(LIB_FULLNAME) $(INSTALL_LIBDIR)/$(LIB_NAME)'#010+ + ' ',' ln -sf $(LIB_FULLNAME) $(INSTALL_LIBDIR)/$(LIB_NAME)'#010+ 'endif'#010+ 'endif'#010+ 'endif'#010+ @@ -2016,16 +2029,16 @@ const fpcmakeini : array[0..255,1..240] of char=( ' $(INSTALL) $(INSTALL_FILES) $(INSTALL_DATADIR)'#010+ 'endif'#010+ #010+ - 'fpc_so','urceinstall: distclean'#010+ - ' $(MKDIR) $(INSTALL_SOURCEDIR)'#010+ + 'fpc_sourceinstall: distclean'#010+ + ' $(MKDIR) $(I','NSTALL_SOURCEDIR)'#010+ ' $(COPYTREE) $(BASEDIR)/* $(INSTALL_SOURCEDIR)'#010+ #010+ 'fpc_exampleinstall: $(EXAMPLEINSTALLTARGET) $(addsuffix _distclean,$(T'+ 'ARGET_EXAMPLEDIRS))'#010+ 'ifdef HASEXAMPLES'#010+ - ' $(MKDIR)',' $(INSTALL_EXAMPLEDIR)'#010+ + ' $(MKDIR) $(INSTALL_EXAMPLEDIR)'#010+ 'endif'#010+ - 'ifdef EXAMPLESOURCEFILES'#010+ + 'ifdef EXAMPLES','OURCEFILES'#010+ ' $(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR)'#010+ 'endif'#010+ 'ifdef TARGET_EXAMPLEDIRS'#010+ @@ -2033,8 +2046,9 @@ const fpcmakeini : array[0..255,1..240] of char=( 'AMPLEDIR)'#010+ 'endif'#010+ #010+ - '[distins','tallrules]'#010+ - '#####################################################################'#010+ + '[distinstallrules]'#010+ + '################################','####################################'+ + '#'#010+ '# Dist Install'#010+ '#####################################################################'#010+ #010+ @@ -2043,14 +2057,15 @@ const fpcmakeini : array[0..255,1..240] of char=( 'fpc_distinstall: install exampleinstall'#010+ #010+ #010+ - '[zipin','stallrules]'#010+ - '#####################################################################'#010+ + '[zipinstallrules]'#010+ + '###############################','#####################################'+ + '#'#010+ '# Zip'#010+ '#####################################################################'#010+ #010+ '.PHONY: fpc_zipinstall fpc_zipsourceinstall fpc_zipexampleinstall'#010+ #010+ - '# Temporary pa','th to pack a file, can only use a single deep'#010+ + '# Temporary path to pack a file, can only use a single de','ep'#010+ '# subdir, because the deltree can'#039't see the whole tree to remove'#010+ 'ifndef PACKDIR'#010+ 'ifndef inUnix'#010+ @@ -2060,9 +2075,9 @@ const fpcmakeini : array[0..255,1..240] of char=( 'endif'#010+ 'endif'#010+ #010+ - '# Maybe create default zipnam','e from packagename'#010+ + '# Maybe create default zipname from packagename'#010+ 'ifndef ZIPNAME'#010+ - 'ifdef DIST_ZIPNAME'#010+ + 'ifdef DIS','T_ZIPNAME'#010+ 'ZIPNAME=$(DIST_ZIPNAME)'#010+ 'else'#010+ 'ZIPNAME=$(PACKAGE_NAME)'#010+ @@ -2075,8 +2090,8 @@ const fpcmakeini : array[0..255,1..240] of char=( #010+ '# ZipTarget'#010+ 'ifndef ZIPTARGET'#010+ - 'if','def DIST_ZIPTARGET'#010+ - 'ZIPTARGET=DIST_ZIPTARGET'#010+ + 'ifdef DIST_ZIPTARGET'#010+ + 'ZIPTARGET=DIST_ZIPTARGET',#010+ 'else'#010+ 'ZIPTARGET=install'#010+ 'endif'#010+ @@ -2092,9 +2107,9 @@ const fpcmakeini : array[0..255,1..240] of char=( '# Use a wrapper script by default for Os/2'#010+ 'ifndef inUnix'#010+ 'USEZIPWRAPPER=1'#010+ - 'endif',#010+ + 'endif'#010+ #010+ - '# We need to be able to run in the current OS so fix'#010+ + '# We need to be able to run in the curren','t OS so fix'#010+ '# the path separator'#010+ 'ifdef USEZIPWRAPPER'#010+ 'ZIPPATHSEP=$(PATHSEP)'#010+ @@ -2103,37 +2118,37 @@ const fpcmakeini : array[0..255,1..240] of char=( 'ZIPPATHSEP=/'#010+ 'endif'#010+ #010+ - '# Create commands to create',' the zip/tar file'#010+ - 'ZIPCMD_CDPACK:=cd $(subst /,$(ZIPPATHSEP),$(PACKDIR))'#010+ + '# Create commands to create the zip/tar file'#010+ + 'ZIPCMD_CDPACK:=cd $(subst',' /,$(ZIPPATHSEP),$(PACKDIR))'#010+ 'ZIPCMD_CDBASE:=cd $(subst /,$(ZIPPATHSEP),$(BASEDIR))'#010+ 'ifdef USETAR'#010+ 'ZIPDESTFILE:=$(DIST_DESTDIR)/$(FULLZIPNAME)$(TAREXT)'#010+ - 'ZIPCMD_ZIP:=$(TARPROG) c$(TAROPT)f $(ZIPDESTFILE',') *'#010+ + 'ZIPCMD_ZIP:=$(TARPROG) c$(TAROPT)f $(ZIPDESTFILE) *'#010+ 'else'#010+ - 'ZIPDESTFILE:=$(DIST_DESTDIR)/$(FULLZIPNAME)$(ZIPEXT)'#010+ + 'ZIPDESTFILE:=$(DIST_DESTDIR)/$(FUL','LZIPNAME)$(ZIPEXT)'#010+ 'ZIPCMD_ZIP:=$(subst /,$(ZIPPATHSEP),$(ZIPPROG)) -Dr $(ZIPOPT) $(ZIPDES'+ 'TFILE) *'#010+ 'endif'#010+ #010+ 'fpc_zipinstall:'#010+ ' $(MAKE) $(ZIPTARGET) INSTALL_PREFIX=$(PACKDIR) ZIPINSTALL=1'#010+ - ' ','$(MKDIR) $(DIST_DESTDIR)'#010+ - ' $(DEL) $(ZIPDESTFILE)'#010+ + ' $(MKDIR) $(DIST_DESTDIR)'#010+ + ' $(DEL) $(Z','IPDESTFILE)'#010+ 'ifdef USEZIPWRAPPER'#010+ '# Handle gecho separate as we need to espace \ with \\'#010+ 'ifneq ($(ECHOREDIR),echo)'#010+ ' $(ECHOREDIR) -e "$(subst \,\\,$(ZIPCMD_CDPACK))" > $(ZIPWRAPPE'+ 'R)'#010+ - ' $(E','CHOREDIR) -e "$(subst \,\\,$(ZIPCMD_ZIP))" >> $(ZIPWRAPPE'+ + ' $(ECHOREDIR) -e "$(subst \,\\,$(ZIPCMD_ZIP))" ','>> $(ZIPWRAPPE'+ 'R)'#010+ ' $(ECHOREDIR) -e "$(subst \,\\,$(ZIPCMD_CDBASE))" >> $(ZIPWRAPP'+ 'ER)'#010+ 'else'#010+ ' echo $(ZIPCMD_CDPACK) > $(ZIPWRAPPER)'#010+ ' echo $(ZIPCMD_ZIP) >> $(ZIPWRAPPER)'#010+ - ' ech','o $(ZIPCMD_CDBASE) >> $(ZIPWRAPPER)'#010+ + ' echo $(ZIPCMD_CDBASE) >> $(ZIPWRAPPER)'#010+ 'endif'#010+ - 'ifdef inUnix'#010+ + 'i','fdef inUnix'#010+ ' /bin/sh $(ZIPWRAPPER)'#010+ 'else'#010+ 'ifdef RUNBATCH'#010+ @@ -2144,9 +2159,9 @@ const fpcmakeini : array[0..255,1..240] of char=( 'endif'#010+ ' $(DEL) $(ZIPWRAPPER)'#010+ 'else'#010+ - ' $(ZIPCMD_CDPACK) ; $','(ZIPCMD_ZIP) ; $(ZIPCMD_CDBASE)'#010+ + ' $(ZIPCMD_CDPACK) ; $(ZIPCMD_ZIP) ; $(ZIPCMD_CDBASE)'#010+ 'endif'#010+ - ' $(DELTREE) $(PACKDIR)'#010+ + ' ',' $(DELTREE) $(PACKDIR)'#010+ #010+ 'fpc_zipsourceinstall:'#010+ ' $(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall ZIPSUFFIX=$(ZIP'+ @@ -2154,7 +2169,7 @@ const fpcmakeini : array[0..255,1..240] of char=( #010+ 'fpc_zipexampleinstall:'#010+ 'ifdef HASEXAMPLES'#010+ - ' $(MAKE) fpc_zip','install ZIPTARGET=exampleinstall ZIPSUFFIX=$('+ + ' $(MAKE) fpc_zipinstall ZIPTARGET=exampleinstall ZIPSUFFIX=','$('+ 'ZIPEXAMPLESUFFIX)'#010+ 'endif'#010+ #010+ @@ -2164,44 +2179,45 @@ const fpcmakeini : array[0..255,1..240] of char=( #010+ '[cleanrules]'#010+ '#####################################################################'#010+ - '# Clean rule','s'#010+ - '#####################################################################'#010+ + '# Clean rules'#010+ + '#########################################','###########################'+ + '#'#010+ #010+ '.PHONY: fpc_clean fpc_cleanall fpc_distclean'#010+ #010+ 'ifdef EXEFILES'#010+ 'override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES'+ '))'#010+ - 'override CLEANEXEDBGFILES:=$(addp','refix $(TARGETDIRPREFIX),$(CLEANEXE'+ - 'DBGFILES))'#010+ + 'override CLEANEXEDBGFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEDB'+ + 'GFILES','))'#010+ 'endif'#010+ #010+ 'ifdef CLEAN_PROGRAMS'#010+ 'override CLEANEXEFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix $(E'+ 'XEEXT), $(CLEAN_PROGRAMS)))'#010+ - 'override CLEANEXEDBGFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffi','x'+ - ' $(EXEDBGEXT), $(CLEAN_PROGRAMS)))'#010+ + 'override CLEANEXEDBGFILES+=$(addprefix $(TARGETDIRPREFIX),$(addsuffix '+ + '$(EXEDBGEXT), $(CLEAN_PROGRAMS)))'#010+ 'endif'#010+ - #010+ + #010, 'ifdef CLEAN_UNITS'#010+ 'override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS))'#010+ 'endif'#010+ #010+ 'ifdef CLEANPPUFILES'#010+ 'override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)'+ - ') $(subst $(PPUEXT),','$(LTOEXT),$(CLEANPPUFILES)) $(addprefix $(STATIC'+ + ') $(subst $(PPUEXT),$(LTOEXT),$(CLEANPPUFILES)) $(addprefix $(S','TATIC'+ 'LIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) $(addp'+ 'refix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUF'+ 'ILES)))'#010+ 'ifdef DEBUGSYMEXT'#010+ - 'override CLEANPPULINKFILES','+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEAN'+ - 'PPUFILES))'#010+ + 'override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANP', + 'PUFILES))'#010+ 'endif'#010+ 'override CLEANPPUFILENAMES:=$(CLEANPPUFILES)'#010+ 'override CLEANPPUFILES=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFI'+ 'LENAMES))'#010+ 'override CLEANPPULINKFILENAMES:=$(CLEANPPULINKFILES)'#010+ - 'ove','rride CLEANPPULINKFILES=$(wildcard $(addprefix $(UNITTARGETDIRPRE'+ + 'override CLEANPPULINKFILES=$(wildcard $(addpre','fix $(UNITTARGETDIRPRE'+ 'FIX),$(CLEANPPULINKFILENAMES)))'#010+ 'endif'#010+ #010+ @@ -2209,9 +2225,9 @@ const fpcmakeini : array[0..255,1..240] of char=( 'ifdef CLEANEXEFILES'#010+ ' -$(DEL) $(CLEANEXEFILES)'#010+ 'endif'#010+ - '# DELTREE instead of DEL because on Mac OS X these ','are directories'#010+ + '# DELTREE instead of DEL because on Mac OS X these are directories'#010+ 'ifdef CLEANEXEDBGFILES'#010+ - ' -$(DELTREE) $(CLEANEXEDBGFILES)'#010+ + ' ',' -$(DELTREE) $(CLEANEXEDBGFILES)'#010+ 'endif'#010+ 'ifdef CLEANPPUFILES'#010+ ' -$(DEL) $(CLEANPPUFILES)'#010+ @@ -2220,7 +2236,7 @@ const fpcmakeini : array[0..255,1..240] of char=( ' -$(DEL) $(CLEANPPULINKFILES)'#010+ 'endif'#010+ 'ifdef CLEANRSTFILES'#010+ - ' ',' -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))'+ + ' -$(DEL) $(addprefix $(UNITTARGETDIRPRE','FIX),$(CLEANRSTFILES))'+ #010+ 'endif'#010+ 'ifdef CLEAN_FILES'#010+ @@ -2229,18 +2245,17 @@ const fpcmakeini : array[0..255,1..240] of char=( 'ifdef LIB_NAME'#010+ ' -$(DEL) $(LIB_NAME) $(LIB_FULLNAME)'#010+ 'endif'#010+ - ' -$(DEL) $(FPCMADE) *$(FULL_TARGET).fpm P','ackage.fpc *$(ASMEXT'+ - ')'#010+ - ' -$(DEL) $(FPCEXTFILE) $(REDIRFILE) script*.res link*.res *_scr'+ - 'ipt.res *_link.res'#010+ + ' -$(DEL) $(FPCMADE) *$(FULL_TARGET).fpm Package.fpc *$(ASMEXT)'#010+ + ' -$(DEL) $(FPC','EXTFILE) $(REDIRFILE) script*.res link*.res *_s'+ + 'cript.res *_link.res'#010+ ' -$(DEL) $(PPAS) *_ppas$(BATCHEXT) ppas$(BATCHEXT) ppaslink$(BA'+ 'TCHEXT)'#010+ #010+ 'fpc_cleanall: $(CLEANTARGET)'#010+ 'ifdef CLEANEXEFILES'#010+ - ' ',' -$(DEL) $(CLEANEXEFILES)'#010+ + ' -$(DEL) $(CLEANEXEFILES)'#010+ 'endif'#010+ - 'ifdef COMPILER_UNITTARGETDIR'#010+ + 'ifdef',' COMPILER_UNITTARGETDIR'#010+ 'ifdef CLEANPPUFILES'#010+ ' -$(DEL) $(CLEANPPUFILES)'#010+ 'endif'#010+ @@ -2248,7 +2263,7 @@ const fpcmakeini : array[0..255,1..240] of char=( ' -$(DEL) $(CLEANPPULINKFILES)'#010+ 'endif'#010+ 'ifdef CLEANRSTFILES'#010+ - ' -$(DEL) $(add','prefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))'+ + ' -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFIL','ES))'+ #010+ 'endif'#010+ 'endif'#010+ @@ -2258,16 +2273,16 @@ const fpcmakeini : array[0..255,1..240] of char=( ' -$(DELTREE) units'#010+ ' -$(DELTREE) bin'#010+ ' -$(DEL) *$(OEXT) *$(LTOEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *'+ - '$(STA','TICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)'#010+ - 'ifneq ($(PPUEXT),.ppu)'#010+ + '$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)'#010+ + 'ifne','q ($(PPUEXT),.ppu)'#010+ ' -$(DEL) *.o *.ppu *.a'#010+ 'endif'#010+ ' -$(DELTREE) *$(SMARTEXT)'#010+ ' -$(DEL) fpcmade.* Package.fpc *.fpm'#010+ - ' -$(DEL) $(FPCEXTFILE) $(REDIRFILE) script*.res link*.res ','*_s'+ - 'cript.res *_link.res'#010+ - ' -$(DEL) $(PPAS) *_ppas$(BATCHEXT) ppas$(BATCHEXT) ppaslink$(BA'+ - 'TCHEXT)'#010+ + ' -$(DEL) $(FPCEXTFILE) $(REDIRFILE) script*.res link*.res *_scr'+ + 'ipt.res *_link.res'#010+ + ' -$(DEL) $(P','PAS) *_ppas$(BATCHEXT) ppas$(BATCHEXT) ppaslink$('+ + 'BATCHEXT)'#010+ 'ifdef AOUTEXT'#010+ ' -$(DEL) *$(AOUTEXT)'#010+ 'endif'#010+ @@ -2275,8 +2290,8 @@ const fpcmakeini : array[0..255,1..240] of char=( ' -$(DEL) *$(DEBUGSYMEXT)'#010+ 'endif'#010+ 'ifdef LOCALFPMAKEBIN'#010+ - ' -$(DE','L) $(LOCALFPMAKEBIN)'#010+ - ' -$(DEL) $(FPMAKEBINOBJ)'#010+ + ' -$(DEL) $(LOCALFPMAKEBIN)'#010+ + ' -$(DEL) $(FPMA','KEBINOBJ)'#010+ 'endif'#010+ #010+ 'fpc_distclean: cleanall'#010+ @@ -2285,108 +2300,107 @@ const fpcmakeini : array[0..255,1..240] of char=( '[baseinforules]'#010+ '#####################################################################'#010+ '# Base info rules'#010+ - '##################################################','##################'+ - '#'#010+ + '#####################################################################'#010+ #010+ '.PHONY: fpc_baseinfo'#010+ - #010+ + #010, 'override INFORULES+=fpc_baseinfo'#010+ #010+ 'fpc_baseinfo:'#010+ ' @$(ECHO)'#010+ ' @$(ECHO) == Package info =='#010+ ' @$(ECHO) Package Name..... $(PACKAGE_NAME)'#010+ - ' @$(ECHO) Package Version.. $(PACKA','GE_VERSION)'#010+ + ' @$(ECHO) Package Version.. $(PACKAGE_VERSION)'#010+ ' @$(ECHO)'#010+ - ' @$(ECHO) == Configuration info =='#010+ + ' @$(ECH','O) == Configuration info =='#010+ ' @$(ECHO)'#010+ ' @$(ECHO) FPC.......... $(FPC)'#010+ ' @$(ECHO) FPC Version.. $(FPC_VERSION)'#010+ ' @$(ECHO) Source CPU... $(CPU_SOURCE)'#010+ - ' @$(ECHO) T','arget CPU... $(CPU_TARGET)'#010+ - ' @$(ECHO) Source OS.... $(OS_SOURCE)'#010+ + ' @$(ECHO) Target CPU... $(CPU_TARGET)'#010+ + ' @$(ECHO)',' Source OS.... $(OS_SOURCE)'#010+ ' @$(ECHO) Target OS.... $(OS_TARGET)'#010+ ' @$(ECHO) Full Source.. $(FULL_SOURCE)'#010+ ' @$(ECHO) Full Target.. $(FULL_TARGET)'#010+ - ' @$(ECHO) SourceSuffi','x. $(SOURCESUFFIX)'#010+ - ' @$(ECHO) TargetSuffix. $(TARGETSUFFIX)'#010+ + ' @$(ECHO) SourceSuffix. $(SOURCESUFFIX)'#010+ + ' @$(ECHO) Target','Suffix. $(TARGETSUFFIX)'#010+ ' @$(ECHO) FPC fpmake... $(FPCFPMAKE)'#010+ ' @$(ECHO)'#010+ ' @$(ECHO) == Directory info =='#010+ ' @$(ECHO)'#010+ - ' @$(ECHO) Required pkgs... $(REQUIRE_PACKAGES)'#010, + ' @$(ECHO) Required pkgs... $(REQUIRE_PACKAGES)'#010+ ' @$(ECHO)'#010+ - ' @$(ECHO) Basedir......... $(BASEDIR)'#010+ + ' @$(ECHO) Basedir.','........ $(BASEDIR)'#010+ ' @$(ECHO) FPCDir.......... $(FPCDIR)'#010+ ' @$(ECHO) CrossBinDir..... $(CROSSBINDIR)'#010+ ' @$(ECHO) UnitsDir........ $(UNITSDIR)'#010+ - ' @$(ECHO) PackagesDir..... ','$(PACKAGESDIR)'#010+ + ' @$(ECHO) PackagesDir..... $(PACKAGESDIR)'#010+ ' @$(ECHO)'#010+ - ' @$(ECHO) GCC library..... $(GCCLIBDIR)'#010+ + ' @$(','ECHO) GCC library..... $(GCCLIBDIR)'#010+ ' @$(ECHO) Other library... $(OTHERLIBDIR)'#010+ ' @$(ECHO)'#010+ ' @$(ECHO) == Tools info =='#010+ ' @$(ECHO)'#010+ ' @$(ECHO) As........ $(AS)'#010+ - ' ',' @$(ECHO) Ld........ $(LD)'#010+ - ' @$(ECHO) Ar........ $(AR)'#010+ + ' @$(ECHO) Ld........ $(LD)'#010+ + ' @$(ECH','O) Ar........ $(AR)'#010+ ' @$(ECHO) Rc........ $(RC)'#010+ ' @$(ECHO)'#010+ ' @$(ECHO) Mv........ $(MVPROG)'#010+ ' @$(ECHO) Cp........ $(CPPROG)'#010+ ' @$(ECHO) Rm........ $(RMPROG)'#010+ - ' ',' @$(ECHO) GInstall.. $(GINSTALL)'#010+ - ' @$(ECHO) Echo...... $(ECHO)'#010+ + ' @$(ECHO) GInstall.. $(GINSTALL)'#010+ + ' @','$(ECHO) Echo...... $(ECHO)'#010+ ' @$(ECHO) Shell..... $(SHELL)'#010+ ' @$(ECHO) Date...... $(DATE)'#010+ ' @$(ECHO) FPCMake... $(FPCMAKE)'#010+ ' @$(ECHO) PPUMove... $(PPUMOVE)'#010+ - ' @$(ECH','O) Zip....... $(ZIPPROG)'#010+ - ' @$(ECHO)'#010+ + ' @$(ECHO) Zip....... $(ZIPPROG)'#010+ + ' @$(ECHO)'#010, ' @$(ECHO) == Object info =='#010+ ' @$(ECHO)'#010+ ' @$(ECHO) Target Loaders........ $(TARGET_LOADERS)'#010+ ' @$(ECHO) Target Units.......... $(TARGET_UNITS)'#010+ - ' @$(ECHO) Target Imp','licit Units. $(TARGET_IMPLICITUNITS)'#010+ - ' @$(ECHO) Target Programs....... $(TARGET_PROGRAMS)'#010+ + ' @$(ECHO) Target Implicit Units. $(TARGET_IMPLICITUNITS)'#010+ + ' ',' @$(ECHO) Target Programs....... $(TARGET_PROGRAMS)'#010+ ' @$(ECHO) Target Dirs........... $(TARGET_DIRS)'#010+ ' @$(ECHO) Target Examples....... $(TARGET_EXAMPLES)'#010+ - ' @$(ECHO) Target Ex','ampleDirs.... $(TARGET_EXAMPLEDIRS)'#010+ - ' @$(ECHO)'#010+ + ' @$(ECHO) Target ExampleDirs.... $(TARGET_EXAMPLEDIRS)'#010+ + ' ',' @$(ECHO)'#010+ ' @$(ECHO) Clean Units......... $(CLEAN_UNITS)'#010+ ' @$(ECHO) Clean Files......... $(CLEAN_FILES)'#010+ ' @$(ECHO)'#010+ ' @$(ECHO) Install Units....... $(INSTALL_UNITS)'#010+ - ' ',' @$(ECHO) Install Files....... $(INSTALL_FILES)'#010+ + ' @$(ECHO) Install Files....... $(INSTALL_','FILES)'#010+ ' @$(ECHO)'#010+ ' @$(ECHO) == Install info =='#010+ ' @$(ECHO)'#010+ ' @$(ECHO) DateStr.............. $(DATESTR)'#010+ ' @$(ECHO) ZipName.............. $(ZIPNAME)'#010+ - ' @$(ECHO) ',' ZipPrefix............ $(ZIPPREFIX)'#010+ - ' @$(ECHO) ZipCrossPrefix....... $(ZIPCROSSPREFIX)'#010+ + ' @$(ECHO) ZipPrefix............ $(ZIPPREFIX)'#010+ + ' ',' @$(ECHO) ZipCrossPrefix....... $(ZIPCROSSPREFIX)'#010+ ' @$(ECHO) ZipSuffix............ $(ZIPSUFFIX)'#010+ ' @$(ECHO) FullZipName.......... $(FULLZIPNAME)'#010+ - ' @$(ECHO) Install FPC Package.','. $(INSTALL_FPCPACKAGE)'#010+ + ' @$(ECHO) Install FPC Package.. $(INSTALL_FPCPACKAGE)'#010+ ' @$(ECHO)'#010+ - ' @$(ECHO) Install base dir..... $(INSTALL_BASEDIR)'#010+ + ' ',' @$(ECHO) Install base dir..... $(INSTALL_BASEDIR)'#010+ ' @$(ECHO) Install binary dir... $(INSTALL_BINDIR)'#010+ ' @$(ECHO) Install library dir.. $(INSTALL_LIBDIR)'#010+ - ' @$(ECHO) Instal','l units dir.... $(INSTALL_UNITDIR)'#010+ - ' @$(ECHO) Install source dir... $(INSTALL_SOURCEDIR)'#010+ + ' @$(ECHO) Install units dir.... $(INSTALL_UNITDIR)'#010+ + ' ','@$(ECHO) Install source dir... $(INSTALL_SOURCEDIR)'#010+ ' @$(ECHO) Install doc dir...... $(INSTALL_DOCDIR)'#010+ ' @$(ECHO) Install example dir.. $(INSTALL_EXAMPLEDIR)'#010+ - ' @$(ECHO) Instal','l data dir..... $(INSTALL_DATADIR)'#010+ - ' @$(ECHO)'#010+ + ' @$(ECHO) Install data dir..... $(INSTALL_DATADIR)'#010+ + ' ','@$(ECHO)'#010+ ' @$(ECHO) Dist destination dir. $(DIST_DESTDIR)'#010+ ' @$(ECHO) Dist zip name........ $(DIST_ZIPNAME)'#010+ ' @$(ECHO)'#010+ #010+ '[inforules]'#010+ - '##############################################','######################'+ - '#'#010+ - '# Info rules'#010+ '#####################################################################'#010+ + '# Info rules'#010+ + '######','##############################################################'+ + '#'#010+ #010+ '.PHONY: fpc_info'#010+ #010+ @@ -2394,36 +2408,37 @@ const fpcmakeini : array[0..255,1..240] of char=( #010+ '[makefilerules]'#010+ '#####################################################################'#010+ - '# Re','build Makefile'#010+ - '#####################################################################'#010+ + '# Rebuild Makefile'#010+ + '############################','########################################'+ + '#'#010+ #010+ '.PHONY: fpc_makefile fpc_makefiles fpc_makefile_sub1 fpc_makefile_sub2'+ ' \'#010+ ' fpc_makefile_dirs'#010+ #010+ 'fpc_makefile:'#010+ - ' $(FPCMAKE) -w -T$(OS_TARGET) Mak','efile.fpc'#010+ + ' $(FPCMAKE) -w -T$(OS_TARGET) Makefile.fpc'#010+ #010+ 'fpc_makefile_sub1:'#010+ - 'ifdef TARGET_DIRS'#010+ + 'ifdef TARGET_','DIRS'#010+ ' $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGE'+ 'T_DIRS))'#010+ 'endif'#010+ 'ifdef TARGET_EXAMPLEDIRS'#010+ ' $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGE'+ - 'T_EXAMPLEDIR','S))'#010+ + 'T_EXAMPLEDIRS))'#010+ 'endif'#010+ #010+ - 'fpc_makefile_sub2: $(addsuffix _makefile_dirs,$(TARGET_DIRS) $(TARGET_'+ - 'EXAMPLEDIRS))'#010+ + 'fpc_makefile_sub2: $(addsuffix _','makefile_dirs,$(TARGET_DIRS) $(TARGE'+ + 'T_EXAMPLEDIRS))'#010+ #010+ 'fpc_makefile_dirs: fpc_makefile_sub1 fpc_makefile_sub2'#010+ #010+ 'fpc_makefiles: fpc_makefile fpc_makefile_dirs'#010+ #010+ '[localmakefile]'#010+ - '#########################','###########################################'+ - '#'#010+ + '####################################################################','#'+ + #010+ '# Local Makefile'#010+ '#####################################################################'#010+ #010+ @@ -2433,16 +2448,15 @@ const fpcmakeini : array[0..255,1..240] of char=( #010+ #010+ '[userrules]'#010+ - '##################################','##################################'+ - '#'#010+ - '# Users rules'#010+ + '#####################################################################'#010+ + '# Users',' rules'#010+ '#####################################################################'#010+ #010+ '[lclrules]'#010+ '#####################################################################'#010+ '# LCL Rules'#010+ - '##########################','##########################################'+ - '#'#010+ + '#####################################################################', + #010+ #010+ '# LCL Platform'#010+ 'ifndef LCL_PLATFORM'#010+ @@ -2454,9 +2468,9 @@ const fpcmakeini : array[0..255,1..240] of char=( 'endif'#010+ 'export LCL_PLATFORM'#010+ #010+ - '# Check if the specified LCLDIR is cor','rect'#010+ + '# Check if the specified LCLDIR is correct'#010+ 'ifdef LCLDIR'#010+ - 'override LCLDIR:=$(subst \,/,$(LCLDIR))'#010+ + 'override LCLDIR:=$(subst ','\,/,$(LCLDIR))'#010+ 'ifeq ($(wildcard $(LCLDIR)/units/$(LCL_PLATFORM)),)'#010+ 'override LCLDIR=wrong'#010+ 'endif'#010+ @@ -2466,16 +2480,16 @@ const fpcmakeini : array[0..255,1..240] of char=( #010+ '# Check if the default LCLDIR is correct'#010+ 'ifdef DEFAULT_LCLDIR'#010+ - 'overri','de LCLDIR:=$(subst \,/,$(DEFAULT_LCLDIR))'#010+ - 'ifeq ($(wildcard $(LCLDIR)/units/$(LCL_PLATFORM)),)'#010+ + 'override LCLDIR:=$(subst \,/,$(DEFAULT_LCLDIR))'#010+ + 'i','feq ($(wildcard $(LCLDIR)/units/$(LCL_PLATFORM)),)'#010+ 'override LCLDIR=wrong'#010+ 'endif'#010+ 'endif'#010+ #010+ '# Check for development version'#010+ 'ifeq ($(LCLDIR),wrong)'#010+ - 'override LCLDIR=$(subst /units/$(LCL_PLATFORM),,$(firstw','ord $(wildca'+ - 'rd $(addsuffix /units/$(LCL_PLATFORM),$(BASEDIR)/lcl $(BASEDIR)))))'#010+ + 'override LCLDIR=$(subst /units/$(LCL_PLATFORM),,$(firstword $(wildcard'+ + ' $(addsuffix /units/$(LCL_PLA','TFORM),$(BASEDIR)/lcl $(BASEDIR)))))'#010+ 'ifeq ($(LCLDIR),)'#010+ 'override LCLDIR=wrong'#010+ 'endif'#010+ @@ -2483,8 +2497,8 @@ const fpcmakeini : array[0..255,1..240] of char=( #010+ '# Check for release version'#010+ 'ifeq ($(LCLDIR),wrong)'#010+ - 'override LCLDIR=$(subst /units/$(LCL_PLATFORM),,$(firstw','ord $(wildca'+ - 'rd $(addsuffix /lib/lazarus/units/$(LCL_PLATFORM),/usr/local /usr))))'#010+ + 'override LCLDIR=$(subst /units/$(LCL_PLATFORM),,$(firstword $(wildcard'+ + ' $(addsuffix /lib/lazarus/uni','ts/$(LCL_PLATFORM),/usr/local /usr))))'#010+ 'ifeq ($(LCLDIR),)'#010+ 'override LCLDIR=wrong'#010+ 'endif'#010+ @@ -2493,16 +2507,17 @@ const fpcmakeini : array[0..255,1..240] of char=( '# Generate dirs'#010+ 'override LCLUNITDIR=$(wildcard $(LCLDIR)/units/$(LCL_PLATFORM) $(LCLDI'+ 'R)/units)'#010+ - 'override ','LCLCOMPONENTDIR=$(wildcard $(LCLDIR)/.. $(LCLDIR)/../compon'+ + 'override LCLCOMPONENTDIR=$(wildcard $(LCLDIR)/.. $(L','CLDIR)/../compon'+ 'ents $(LCLDIR)/components)'#010+ 'export LCLDIR LCLUNITDIR LCLCOMPONENTDIR'#010+ #010+ '# Add LCL dirs to paths'#010+ 'override REQUIRE_PACKAGESDIR+=$(LCLCOMPONENTDIR)'#010+ - 'override COMPILER_UNITDIR+=$(LCLUNITDIR',')'#010+ + 'override COMPILER_UNITDIR+=$(LCLUNITDIR)'#010+ #010+ '[lclinforules]'#010+ - '#####################################################################'#010+ + '#########################','###########################################'+ + '#'#010+ '# LCL Info rules'#010+ '#####################################################################'#010+ 'override INFORULES+=lclinfo'#010+ @@ -2510,20 +2525,20 @@ const fpcmakeini : array[0..255,1..240] of char=( '.PHONY: lclinfo'#010+ #010+ 'lclinfo:'#010+ - ' @$','(ECHO) == LCL info =='#010+ + ' @$(ECHO) == LCL info =='#010+ ' @$(ECHO)'#010+ - ' @$(ECHO) Platform............. $(LCL_PLATFORM)'#010+ + ' ',' @$(ECHO) Platform............. $(LCL_PLATFORM)'#010+ ' @$(ECHO) LCLDIR............... $(LCLDIR)'#010+ ' @$(ECHO) LCL Unit dir......... $(LCLUNITDIR)'#010+ - ' @$(ECHO) LCL Component dir.... ','$(LCLCOMPONENTDIR)'#010+ + ' @$(ECHO) LCL Component dir.... $(LCLCOMPONENTDIR)'#010+ ' @$(ECHO)'#010+ #010+ - '[fpmakeprerules]'#010+ + '[fpmak','eprerules]'#010+ '#####################################################################'#010+ '# fpmake prerules'#010+ '#####################################################################'#010+ - 'FPMAKEBIN=fpmake$(SRCEXEEXT)',#010+ - 'FPMAKEBINOBJ=fpmake$(OEXT) fpmake$(LTOEXT)'#010+ + 'FPMAKEBIN=fpmake$(SRCEXEEXT)'#010+ + 'FPMAKEBINOBJ=fpmake$(OEXT) fpmake$(LTOEXT)',#010+ 'LOCALFPMAKEBIN=.$(PATHSEP)$(FPMAKEBIN)'#010+ #010+ '# Convert the OS_TARGET and CPU_TARGET options to fpmake'#039's --os an'+ @@ -2531,53 +2546,52 @@ const fpcmakeini : array[0..255,1..240] of char=( 'ifdef OS_TARGET'#010+ 'FPC_TARGETOPT+=--os=$(OS_TARGET)'#010+ 'endif'#010+ - 'ifdef CPU_TARGET',#010+ + 'ifdef CPU_TARGET'#010+ 'FPC_TARGETOPT+=--cpu=$(CPU_TARGET)'#010+ 'endif'#010+ - #010+ + #010, '# Get the location of the bootstrap-fpmkunit units'#010+ 'PACKAGEDIR_FPMKUNIT:=$(firstword $(subst /Makefile.fpc,,$(strip $(wild'+ 'card $(addsuffix /fpmkunit/Makefile.fpc,$(PACKAGESDIR))))))'#010+ - 'ifneq ($(PACKAGE','DIR_FPMKUNIT),)'#010+ - 'UNITDIR_FPMAKE_FPMKUNIT=$(PACKAGEDIR_FPMKUNIT)/units_bs/$(SOURCESUFFIX'+ - ')'#010+ + 'ifneq ($(PACKAGEDIR_FPMKUNIT),)'#010+ + 'UNITDIR_FPMAKE_FPMKUNIT=$(P','ACKAGEDIR_FPMKUNIT)/units_bs/$(SOURCESUFF'+ + 'IX)'#010+ 'override COMPILER_FPMAKE_UNITDIR=$(UNITDIR_FPMAKE_FPMKUNIT)'#010+ 'FPMKUNIT_SRC=$(PACKAGEDIR_FPMKUNIT)/src/fpmkunit.pp'#010+ - 'FPMKUNIT_PPU=$(UNITDIR_FPMAKE_FPMKUNIT)/','fpmkunit.ppu'#010+ + 'FPMKUNIT_PPU=$(UNITDIR_FPMAKE_FPMKUNIT)/fpmkunit.ppu'#010+ 'endif'#010+ #010+ - 'ifdef FPMAKE_SKIP_CONFIG'#010+ + 'ifdef FPMAKE_SKIP_CONFI','G'#010+ 'override FPMAKE_BUILD_OPT+=$(FPMAKE_SKIP_CONFIG)'#010+ 'endif'#010+ #010+ '[fpmakerules]'#010+ '#####################################################################'#010+ '# fpmake rules'#010+ - '########################################','############################'+ - '#'#010+ - '.PHONY: fpc_fpmake fpc_fpmake_clean fpc_fpmake_install fpc_fpmake_exam'+ - 'pleinstall'#010+ + '#####################################################################'#010+ + '.PHONY: fpc_f','pmake fpc_fpmake_clean fpc_fpmake_install fpc_fpmake_ex'+ + 'ampleinstall'#010+ #010+ '# Do not pass the Makefile'#039's unit and binary target locations. fpm'+ 'ake uses it'#039's own.'#010+ - 'override FPCOPT:=$(filter-out -FU%,$(FPCOPT','))'#010+ - 'override FPCOPT:=$(filter-out -FE%,$(FPCOPT))'#010+ + 'override FPCOPT:=$(filter-out -FU%,$(FPCOPT))'#010+ + 'override FPCOPT:=$(filter-out -FE%,$(FPC','OPT))'#010+ '# Compose general fpmake-parameters'#010+ 'ifdef FPMAKEOPT'#010+ 'FPMAKE_OPT+=$(FPMAKEOPT)'#010+ 'endif'#010+ 'FPMAKE_OPT+=--localunitdir=$(FPCDIR)'#010+ 'FPMAKE_OPT+=--globalunitdir=$(FPCDIR)/packages'#010+ - 'FPMAKE_OPT+=$(FPC_TARGET','OPT)'#010+ - 'FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))'#010+ + 'FPMAKE_OPT+=$(FPC_TARGETOPT)'#010+ + 'FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))',#010+ 'FPMAKE_OPT+=--compiler=$(FPC)'#010+ 'FPMAKE_OPT+=-bu'#010+ #010+ 'FPMAKE_INSTALL_OPT+=--unitinstalldir=$(INSTALL_UNITDIR)'#010+ 'ifdef UNIXHier'#010+ 'FPMAKE_INSTALL_OPT+=--prefix=$(INSTALL_PREFIX)'#010+ - 'FPMAKE_INSTALL_OPT+=--baseinsta','lldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VER'+ - 'SION)'#010+ + 'FPMAKE_INSTALL_OPT+=--baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSI'+ + 'ON)'#010, 'else'#010+ 'FPMAKE_INSTALL_OPT+=--prefix=$(INSTALL_BASEDIR)'#010+ 'endif'#010+ @@ -2585,21 +2599,21 @@ const fpcmakeini : array[0..255,1..240] of char=( 'override ALLTARGET+=fpc_fpmake'#010+ 'override INSTALLTARGET+=fpc_fpmake_install'#010+ 'override EXAMPLEINSTALLTARGET+=fpc_fpmake_exampleinstall'#010+ - '# If n','o fpmake exists and (dist)clean is called, do not try to build'+ + '# If no fpmake exists and (dist)clean is called, ','do not try to build'+ ' fpmake, it will'#010+ '# most often fail because the dependencies are cleared.'#010+ '# In case of a clean, simply do nothing'#010+ 'ifneq ($(wildcard $(LOCALFPMAKEBIN)),)'#010+ - 'override CLEANTARGET+=fpc_','fpmake_clean'#010+ + 'override CLEANTARGET+=fpc_fpmake_clean'#010+ 'endif'#010+ #010+ - '$(FPMKUNIT_PPU): $(FPMKUNIT_SRC)'#010+ + '$(FPMKUNIT_PPU): $(FPMK','UNIT_SRC)'#010+ ' $(MAKE) -C $(PACKAGEDIR_FPMKUNIT) bootstrap $(addprefix OP'+ 'T=,$(FPMAKE_BUILD_OPT))'#010+ #010+ '$(FPMAKEBIN): fpmake.pp $(FPMKUNIT_PPU)'#010+ - ' $(FPCFPMAKE) fpmake.pp $(addprefix -Fu,$(COM','PILER_FPMAKE_UNI'+ - 'TDIR)) $(FPMAKE_BUILD_OPT)'#010+ + ' $(FPCFPMAKE) fpmake.pp $(addprefix -Fu,$(COMPILER_FPMAKE_UNITD'+ + 'IR)) $(FPMAKE_BUILD_OPT)'#010, #010+ 'fpc_fpmake: $(FPMAKEBIN)'#010+ ' $(LOCALFPMAKEBIN) compile $(FPMAKE_OPT)'#010+ @@ -2608,14 +2622,14 @@ const fpcmakeini : array[0..255,1..240] of char=( ' $(LOCALFPMAKEBIN) clean $(FPMAKE_OPT)'#010+ #010+ 'fpc_fpmake_install: $(FPMAKEBIN)'#010+ - ' ',' $(LOCALFPMAKEBIN) install $(FPMAKE_OPT) $(FPMAKE_INSTALL'+ + ' $(LOCALFPMAKEBIN) install $(FPMAKE','_OPT) $(FPMAKE_INSTALL'+ '_OPT)'#010+ #010+ '# This is not completely valid. Exampleinstall should only install the'+ ' examples, while'#010+ '# fpmake -ie installs everything, including the examples. This also me'+ - 'ans that on',#010+ - '# a distinstall fpmake install wil be called twice.'#010+ + 'ans that on'#010+ + '# a distinstall fpmake install wil be call','ed twice.'#010+ 'fpc_fpmake_exampleinstall: $(FPMAKEBIN)'#010+ ' $(LOCALFPMAKEBIN) install -ie $(FPMAKE_OPT) $(FPMAKE_INSTA'+ 'LL_OPT)'#010 diff --git a/utils/fpcm/fpcmake.ini b/utils/fpcm/fpcmake.ini index f78782fe29..8af5b1ce10 100644 --- a/utils/fpcm/fpcmake.ini +++ b/utils/fpcm/fpcmake.ini @@ -898,10 +898,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif @@ -1509,7 +1517,7 @@ endif # create always pic'ed code on x86_64, mips and mipsel # on unix-like systems ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),) -ifneq ($(findstring $(CPU_TARGET),x86_64 mips mipsel),) +ifneq ($(findstring $(CPU_TARGET),x86_64 mips mipsel riscv64),) override FPCOPT+=-Cg endif endif diff --git a/utils/fpcm/revision.inc b/utils/fpcm/revision.inc index 877a2cb79b..f0692a17cb 100644 --- a/utils/fpcm/revision.inc +++ b/utils/fpcm/revision.inc @@ -1 +1 @@ -'2021-01-24 rev 48368' +'2021-03-10 rev 48929' diff --git a/utils/fpcmkcfg/Makefile b/utils/fpcmkcfg/Makefile index 8ed4345c57..18a20eba1e 100644 --- a/utils/fpcmkcfg/Makefile +++ b/utils/fpcmkcfg/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/utils/fpcres/Makefile b/utils/fpcres/Makefile index 89d3fdbab3..0f72608c6c 100644 --- a/utils/fpcres/Makefile +++ b/utils/fpcres/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/utils/fpcreslipo/Makefile b/utils/fpcreslipo/Makefile index 058493a967..ce5a2fddc0 100644 --- a/utils/fpcreslipo/Makefile +++ b/utils/fpcreslipo/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/utils/fpdoc/Makefile b/utils/fpdoc/Makefile index e16917fdfc..21b676c8f2 100644 --- a/utils/fpdoc/Makefile +++ b/utils/fpdoc/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/utils/fpmc/Makefile b/utils/fpmc/Makefile index 8efbda7db5..a557db1cca 100644 --- a/utils/fpmc/Makefile +++ b/utils/fpmc/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/utils/fppkg/Makefile b/utils/fppkg/Makefile index 1dd7590db4..31ebc6905c 100644 --- a/utils/fppkg/Makefile +++ b/utils/fppkg/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/utils/fprcp/Makefile b/utils/fprcp/Makefile index b9d3a75f6a..958dc19021 100644 --- a/utils/fprcp/Makefile +++ b/utils/fprcp/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/utils/h2pas/Makefile b/utils/h2pas/Makefile index 4204d75746..192aecc114 100644 --- a/utils/h2pas/Makefile +++ b/utils/h2pas/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/utils/ihxutil/Makefile b/utils/ihxutil/Makefile index 111586ae3a..6a2d4f52ea 100644 --- a/utils/ihxutil/Makefile +++ b/utils/ihxutil/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/utils/importtl/Makefile b/utils/importtl/Makefile index 2c07a323a9..02b6368191 100644 --- a/utils/importtl/Makefile +++ b/utils/importtl/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/utils/instantfpc/Makefile b/utils/instantfpc/Makefile index e1c8eb93b1..1b3e0c6bd8 100644 --- a/utils/instantfpc/Makefile +++ b/utils/instantfpc/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/utils/json2pas/Makefile b/utils/json2pas/Makefile index c4736c659e..e9fb7c3fa9 100644 --- a/utils/json2pas/Makefile +++ b/utils/json2pas/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/utils/mksymbian/Makefile b/utils/mksymbian/Makefile index bea6b44b90..3d1ea44503 100644 --- a/utils/mksymbian/Makefile +++ b/utils/mksymbian/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/utils/pas2fpm/Makefile b/utils/pas2fpm/Makefile index 26efb90654..c82e0769ee 100644 --- a/utils/pas2fpm/Makefile +++ b/utils/pas2fpm/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/utils/pas2jni/Makefile b/utils/pas2jni/Makefile index 2b106f2b4f..4afc9d107e 100644 --- a/utils/pas2jni/Makefile +++ b/utils/pas2jni/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/utils/pas2js/Makefile b/utils/pas2js/Makefile index b1a9bee0f7..14ba173fa0 100644 --- a/utils/pas2js/Makefile +++ b/utils/pas2js/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/utils/pas2ut/Makefile b/utils/pas2ut/Makefile index 469b016b0f..3ce10ece7e 100644 --- a/utils/pas2ut/Makefile +++ b/utils/pas2ut/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/utils/rmwait/Makefile b/utils/rmwait/Makefile index d708ad2700..125f783870 100644 --- a/utils/rmwait/Makefile +++ b/utils/rmwait/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/utils/tply/Makefile b/utils/tply/Makefile index ca9b2d5bc0..eda5dd4074 100644 --- a/utils/tply/Makefile +++ b/utils/tply/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif diff --git a/utils/unicode/Makefile b/utils/unicode/Makefile index de30ab14fc..845490910a 100644 --- a/utils/unicode/Makefile +++ b/utils/unicode/Makefile @@ -607,10 +607,18 @@ else ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),mips mipsel),) FPCMAKE_CROSSGCCOPT=-mabi=32 else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv64),) +FPCMAKE_CROSSGCCOPT=-mabi=lp64 +else +ifneq ($(findstring $(FPCFPMAKE_CPU_OPT),riscv32),) +FPCMAKE_CROSSGCCOPT=-mabi=ilp32 +else FPCMAKE_CROSSGCCOPT=-m32 endif endif endif +endif +endif FPCMAKEGCCLIBDIR:=$(shell dirname `gcc $(FPCMAKE_CROSSGCCOPT) -print-libgcc-file-name`) endif endif |