Amiga: Enable Dotted RTL for Amiga

This commit is contained in:
Marcus Sackrow 2023-08-27 12:13:43 +02:00
parent e19103e9a9
commit 1714dbb563
5 changed files with 34 additions and 12 deletions

View File

@ -820,7 +820,7 @@ var p:pintrtlevent;
begin begin
p:=pintrtlevent(aevent); p:=pintrtlevent(aevent);
ObtainSemaphore(@p^.Sem); ObtainSemaphore(@p^.Sem);
while not p^.isset do while not p^.isset do
begin begin
ReleaseSemaphore(@p^.Sem); ReleaseSemaphore(@p^.Sem);
DOSDelay(1); DOSDelay(1);

View File

@ -471,7 +471,7 @@ begin
Rslt.Size := fib_Size; Rslt.Size := fib_Size;
Rslt.Time := DateTimeToFileDate(AmigaFileDateToDateTime(fib_Date,validDate)); Rslt.Time := DateTimeToFileDate(AmigaFileDateToDateTime(fib_Date,validDate));
if not validDate then if not validDate then
begin begin
InternalFindClose(Rslt.FindHandle); InternalFindClose(Rslt.FindHandle);
exit; exit;
@ -538,7 +538,7 @@ var
attr: word; attr: word;
begin begin
Assign(F,FileName); Assign(F,FileName);
dos.GetFAttr(F,attr); {$IFDEF FPC_DOTTEDUNITS}TP.{$ENDIF}dos.GetFAttr(F,attr);
if DosError <> 0 then if DosError <> 0 then
FileGetAttr := -1 FileGetAttr := -1
else else
@ -551,7 +551,7 @@ var
F: file; F: file;
begin begin
Assign(F, FileName); Assign(F, FileName);
Dos.SetFAttr(F, Attr and $ffff); {$IFDEF FPC_DOTTEDUNITS}TP.{$ENDIF}Dos.SetFAttr(F, Attr and $ffff);
FileSetAttr := DosError; FileSetAttr := DosError;
end; end;
@ -759,9 +759,9 @@ var
dayOfWeek: word; dayOfWeek: word;
Sec100: Word; Sec100: Word;
begin begin
dos.GetTime(SystemTime.Hour, SystemTime.Minute, SystemTime.Second, Sec100); {$IFDEF FPC_DOTTEDUNITS}TP.{$ENDIF}dos.GetTime(SystemTime.Hour, SystemTime.Minute, SystemTime.Second, Sec100);
SystemTime.Millisecond := Sec100 * 10; SystemTime.Millisecond := Sec100 * 10;
dos.GetDate(SystemTime.Year, SystemTime.Month, SystemTime.Day, DayOfWeek); {$IFDEF FPC_DOTTEDUNITS}TP.{$ENDIF}dos.GetDate(SystemTime.Year, SystemTime.Month, SystemTime.Day, DayOfWeek);
end; end;
@ -856,21 +856,21 @@ begin
if StrOfpaths = '' then StrOfPaths := GetPathString; if StrOfpaths = '' then StrOfPaths := GetPathString;
Result:=StrOfPaths; Result:=StrOfPaths;
end else end else
Result:=Dos.Getenv(shortstring(EnvVar)); Result:={$IFDEF FPC_DOTTEDUNITS}TP.{$ENDIF}Dos.Getenv(shortstring(EnvVar));
end; end;
Function GetEnvironmentVariableCount : Integer; Function GetEnvironmentVariableCount : Integer;
begin begin
// Result:=FPCCountEnvVar(EnvP); // Result:=FPCCountEnvVar(EnvP);
Result:=Dos.envCount; Result:={$IFDEF FPC_DOTTEDUNITS}TP.{$ENDIF}Dos.envCount;
end; end;
Function GetEnvironmentString(Index : Integer) : {$ifdef FPC_RTL_UNICODE}UnicodeString{$else}AnsiString{$endif}; Function GetEnvironmentString(Index : Integer) : {$ifdef FPC_RTL_UNICODE}UnicodeString{$else}AnsiString{$endif};
begin begin
// Result:=FPCGetEnvStrFromP(Envp,Index); // Result:=FPCGetEnvStrFromP(Envp,Index);
Result:=Dos.EnvStr(Index); Result:={$IFDEF FPC_DOTTEDUNITS}TP.{$ENDIF}Dos.EnvStr(Index);
end; end;
function ExecuteProcess (const Path: RawByteString; const ComLine: RawByteString;Flags:TExecuteFlags=[]): function ExecuteProcess (const Path: RawByteString; const ComLine: RawByteString;Flags:TExecuteFlags=[]):

View File

@ -2868,7 +2868,10 @@ SYSCPUDEPS=$(addprefix $(PROCINC)/,$(CPUINCNAMES))
SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS) SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
prt0$(OEXT) : $(CPU_TARGET)/prt0.as prt0$(OEXT) : $(CPU_TARGET)/prt0.as
$(AS) -o $(UNITTARGETDIRPREFIX)prt0$(OEXT) $(CPU_TARGET)/prt0.as $(AS) -o $(UNITTARGETDIRPREFIX)prt0$(OEXT) $(CPU_TARGET)/prt0.as
ifdef FPC_DOTTEDUNITS
BUILDRTL_OPT:=$(BUILDRTL_OPT) -Fu$(NSINC) -Fu$(NSOSDIR) -dFPC_DOTTEDUNITS
endif
buildrtl$(PPUEXT): buildrtl.pp system$(PPUEXT) objpas$(PPUEXT) heaptrc$(PPUEXT) buildrtl$(PPUEXT): buildrtl.pp system$(PPUEXT) objpas$(PPUEXT) heaptrc$(PPUEXT)
$(COMPILER) -Fi$(OBJPASDIR)/sysutils -Fi$(OBJPASDIR)/classes -Fu$(CPU_TARGET) -Fu$(PROCINC) -Fu$(AMIINC) -I$(INC) -Fu$(INC) -Fu$(OBJPASDIR) buildrtl $(COMPILER) -Fi$(OBJPASDIR) -Fi$(OBJPASDIR)/sysutils -Fi$(OBJPASDIR)/classes -Fu$(CPU_TARGET) -Fu$(PROCINC) -Fu$(AMIINC) -I$(INC) -Fu$(INC) -Fu$(OBJPASDIR) $(BUILDRTL_OPT) buildrtl
$(RESUNIT)$(PPUEXT) : $(INC)/$(RESUNIT).pp $(SYSTEMUNIT)$(PPUEXT) $(RESUNIT)$(PPUEXT) : $(INC)/$(RESUNIT).pp $(SYSTEMUNIT)$(PPUEXT)
$(COMPILER) -Sg $(INC)/$(RESUNIT).pp $(COMPILER) -Sg $(INC)/$(RESUNIT).pp

View File

@ -94,12 +94,16 @@ SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
prt0$(OEXT) : $(CPU_TARGET)/prt0.as prt0$(OEXT) : $(CPU_TARGET)/prt0.as
$(AS) -o $(UNITTARGETDIRPREFIX)prt0$(OEXT) $(CPU_TARGET)/prt0.as $(AS) -o $(UNITTARGETDIRPREFIX)prt0$(OEXT) $(CPU_TARGET)/prt0.as
ifdef FPC_DOTTEDUNITS
BUILDRTL_OPT:=$(BUILDRTL_OPT) -Fu$(NSINC) -Fu$(NSOSDIR) -dFPC_DOTTEDUNITS
endif
# #
# Base Units (System, strings, os-dependent-base-unit) # Base Units (System, strings, os-dependent-base-unit)
# #
buildrtl$(PPUEXT): buildrtl.pp system$(PPUEXT) objpas$(PPUEXT) heaptrc$(PPUEXT) buildrtl$(PPUEXT): buildrtl.pp system$(PPUEXT) objpas$(PPUEXT) heaptrc$(PPUEXT)
$(COMPILER) -Fi$(OBJPASDIR)/sysutils -Fi$(OBJPASDIR)/classes -Fu$(CPU_TARGET) -Fu$(PROCINC) -Fu$(AMIINC) -I$(INC) -Fu$(INC) -Fu$(OBJPASDIR) buildrtl $(COMPILER) -Fi$(OBJPASDIR)/sysutils -Fi$(OBJPASDIR)/classes -Fu$(CPU_TARGET) -Fu$(PROCINC) -Fu$(AMIINC) -I$(INC) -Fu$(INC) -Fu$(OBJPASDIR) $(BUILDRTL_OPT) buildrtl
$(RESUNIT)$(PPUEXT) : $(INC)/$(RESUNIT).pp $(SYSTEMUNIT)$(PPUEXT) $(RESUNIT)$(PPUEXT) : $(INC)/$(RESUNIT).pp $(SYSTEMUNIT)$(PPUEXT)
$(COMPILER) -Sg $(INC)/$(RESUNIT).pp $(COMPILER) -Sg $(INC)/$(RESUNIT).pp

View File

@ -1,7 +1,22 @@
unit buildrtl; unit buildrtl;
interface interface
{$IFDEF FPC_DOTTEDUNITS}
uses
si_prc,
AmigaApi.AThreads, TP.DOS, System.SysUtils,
{$ifdef cpupowerpc}
exeinfo, lineinfo,
{$endif}
System.CTypes, System.Strings,
System.RtlConsts, System.SysConst, System.Math, System.Types,
System.TypInfo, System.SortBase, System.FGL, System.Classes,
System.CharSet, System.Character, System.GetOpts,
System.FPWideString,
System.SoftFPU, System.SoftFpuX80, System.SoftFpu128, System.UFloatX80, System.UFloat128;
{$ELSE FPC_DOTTEDUNITS}
uses uses
si_prc, si_prc,
athreads, dos, sysutils, athreads, dos, sysutils,
@ -16,7 +31,7 @@ unit buildrtl;
charset, character, getopts, charset, character, getopts,
fpwidestring, fpwidestring,
softfpu, sfpux80, ufloatx80, sfpu128, ufloat128; softfpu, sfpux80, ufloatx80, sfpu128, ufloat128;
{$ENDIF FPC_DOTTEDUNITS}
implementation implementation
end. end.