[fpc-pascal] ppc64le ABI problem
Pierre Muller
pierre at freepascal.org
Mon Aug 26 23:22:01 CEST 2019
Le 26/08/2019 à 22:46, tobiasgiesen at gmail.com a écrit :
> Hi Jonas,
>
> fantastic, that looks great. I think now I can just wait until Pierre
> Muller's snapshot is updated :=)
As I followed the thread, I made a special issue for you,
you should find the new snapshot of ftp site:
$ cat ftp/snapshot/trunk/powerpc64-linux/README-powerpc64-linux
This snapshot was generated 2019-08-26 using:
make distclean singlezipinstall SNAPSHOT=1 NOGDB=1 DEBUG=1 NOWPOCYCLE=1 OPT=" -Fl/usr/lib64 -Fl/lib64 -Fd -Fl/usr/lib/gcc/ppc64le-redhat-linux/4.8.5"
started using /home/muller/pas/fpc-3.3.1/bin/ppcppc64
ppcppc64 -iVDW output is: 3.3.1 2019/08/26 3.3.1
uname -a of the machine is:
Linux gcc2-power8.osuosl.org 3.10.0-957.10.1.el7.ppc64le #1 SMP Thu Mar 14 11:25:48 GMT 2019 ppc64le ppc64le ppc64le GNU/Linux
"svnversion -c ." output is: 1:1415
"svnversion -c fpcsrc" output is: 1:42841M
Enjoy,
Pierre Muller
PS: note that I do have local modifications that I did not have time to really check...
Most are probably not significant, but:
[muller at gcc2-power8 fpcsrc]$ svn diff
Index: rtl/linux/ostypes.inc
===================================================================
--- rtl/linux/ostypes.inc (revision 42841)
+++ rtl/linux/ostypes.inc (working copy)
@@ -170,8 +170,8 @@
FLock = Record
l_type : cshort; { lock type: read/write, etc. }
l_whence: cshort; { type of l_start }
- l_start : kernel_off_t; { starting offset }
- l_len : kernel_off_t; { len = 0 means until end of file }
+ l_start : off_t; { starting offset }
+ l_len : off_t; { len = 0 means until end of file }
l_pid : pid_t; { lock owner }
{$if defined(cpusparc) or defined(cpusparc64)}
__pad : cshort;
@@ -386,7 +386,7 @@
RLIMIT_LOCKS = 10; { maximum file locks held }
type
- rlim_t = cULong;
+ rlim_t = cULongLong;
PRLimit = ^TRLimit;
TRLimit = record
rlim_cur : rlim_t;
Index: rtl/linux/powerpc/stat.inc
===================================================================
--- rtl/linux/powerpc/stat.inc (revision 42841)
+++ rtl/linux/powerpc/stat.inc (working copy)
@@ -35,9 +35,9 @@
st_rdev : culonglong;
__pad2_ : cushort;
st_size : clonglong;
- st_blksize: clong;
+ st_blksize: blksize_t;
- st_blocks : clonglong;
+ st_blocks : culonglong;
st_atime : clong;
st_atime_nsec : culong;
st_mtime : clong;
Index: rtl/linux/powerpc64/stat.inc
===================================================================
--- rtl/linux/powerpc64/stat.inc (revision 42841)
+++ rtl/linux/powerpc64/stat.inc (working copy)
@@ -43,5 +43,7 @@
st_mtime_nsec : cULong;
st_ctime : cULong;
st_ctime_nsec : cULong;
- __unused : array[0..2] of cULong;
+ __unused4 : culong;
+ __unused5 : culong;
+ __unused6 : culong;
end;
Index: rtl/linux/ptypes.inc
===================================================================
--- rtl/linux/ptypes.inc (revision 42841)
+++ rtl/linux/ptypes.inc (working copy)
@@ -206,7 +206,7 @@
bfree, { free blocks in system }
bavail, { Available free blocks to non-root users }
files, { File nodes in system }
- ffree : culong; { Free file nodes in system }
+ ffree :{$ifdef cpupowerpc}culonglong{$else}culong{$endif}; { Free file nodes in system }
fsid : array[0..1] of cint; { File system ID }
namelen, { Maximum name length in system }
frsize : cint;
More information about the fpc-pascal
mailing list