@@ -122,7 +122,8 @@ end;
function Fpstat(path: pchar; var buf: stat):cint; [public, alias : 'FPC_SYSC_STAT'];
begin
-{$if defined(cpu64)}
+{ standard stat call is 32 bit on sparc64, so explicitly force a stat64 call }
+{$if defined(cpu64) and not(defined(cpusparc64))}
{$if defined(generic_linux_syscalls)}
Fpstat:=do_syscall(syscall_nr_fstatat,AT_FDCWD,TSysParam(path),TSysParam(@buf),0);
{$else}
@@ -12,6 +12,8 @@
**********************************************************************}
+{$PACKRECORDS C}
+
{$IFNDEF FPC_USE_LIBC}
{ do NOT declare this record as packed, because it needs to be aligned }
@@ -43,8 +45,6 @@
{$ELSE FPC_USE_LIBC}
-{$PACKRECORDS C}
-
Stat = record
st_dev : cULongLong;
st_ino : cULongLong;