From e2226598abc6f3aff55212e7a0c1f672a6ec501a Mon Sep 17 00:00:00 2001 From: florian Date: Fri, 7 Jul 2017 12:22:49 +0000 Subject: [PATCH] * force usage of stat64 on sparc64 * always use packrecords c for the stat records on sparc64 git-svn-id: trunk@36664 - --- rtl/linux/ossysc.inc | 3 ++- rtl/linux/sparc64/stat.inc | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/rtl/linux/ossysc.inc b/rtl/linux/ossysc.inc index 6e802b480c..1d97afa4b3 100644 --- a/rtl/linux/ossysc.inc +++ b/rtl/linux/ossysc.inc @@ -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} diff --git a/rtl/linux/sparc64/stat.inc b/rtl/linux/sparc64/stat.inc index 720203bb72..dcd594c2a0 100644 --- a/rtl/linux/sparc64/stat.inc +++ b/rtl/linux/sparc64/stat.inc @@ -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;