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
p:=pintrtlevent(aevent);
ObtainSemaphore(@p^.Sem);
while not p^.isset do
while not p^.isset do
begin
ReleaseSemaphore(@p^.Sem);
DOSDelay(1);

View File

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

View File

@ -2868,7 +2868,10 @@ SYSCPUDEPS=$(addprefix $(PROCINC)/,$(CPUINCNAMES))
SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
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)
$(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)
$(COMPILER) -Sg $(INC)/$(RESUNIT).pp

View File

@ -94,12 +94,16 @@ SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
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)
#
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)
$(COMPILER) -Sg $(INC)/$(RESUNIT).pp

View File

@ -1,7 +1,22 @@
unit buildrtl;
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
si_prc,
athreads, dos, sysutils,
@ -16,7 +31,7 @@ unit buildrtl;
charset, character, getopts,
fpwidestring,
softfpu, sfpux80, ufloatx80, sfpu128, ufloat128;
{$ENDIF FPC_DOTTEDUNITS}
implementation
end.