--- lang/fpc/Makefile (revision 568937) +++ lang/fpc/Makefile (working copy) @@ -3,7 +3,7 @@ PORTNAME= fpc PORTVERSION= 3.2.0 -PORTREVISION?= 1 +PORTREVISION?= 2 CATEGORIES?= lang MASTER_SITES= ftp://ftp.freepascal.org/pub/fpc/dist/${PORTVERSION}/source/:source \ ftp://planetmirror.com/pub/fpc/dist/${PORTVERSION}/source/:source \ --- lang/fpc/files/patch-rtl-bsd_bunxsysc.inc (revision 568937) +++ lang/fpc/files/patch-rtl-bsd_bunxsysc.inc (working copy) @@ -1,15 +1,41 @@ ---- rtl/bsd/bunxsysc.inc 2015-08-04 04:31:09.000000000 -0500 -+++ rtl/bsd/bunxsysc.inc 2020-02-21 18:30:23.409088000 -0500 -@@ -379,10 +379,10 @@ - {$if defined(freebsd) or defined (dragonfly)} - {$define PIPE_RESULT_IN_EAX_AND_EDX} - {$endif} --Function FPpipe(var fildes : tfildes):cint; -+Function FPpipe(var fildes : tfildes; flags:cint):cint; - {$ifndef PIPE_RESULT_IN_EAX_AND_EDX} +--- rtl/bsd/bunxsysc.inc.orig 2015-07-14 21:58:27 UTC ++++ rtl/bsd/bunxsysc.inc +@@ -376,37 +376,10 @@ end; + + function __pipe_call(sysnr:TSysParam):TSysResult; {$ifdef cpui386}oldfpccall{$endif} external name 'FPC_DOSYS0'; + +-{$if defined(freebsd) or defined (dragonfly)} +- {$define PIPE_RESULT_IN_EAX_AND_EDX} +-{$endif} + Function FPpipe(var fildes : tfildes):cint; +-{$ifndef PIPE_RESULT_IN_EAX_AND_EDX} begin - fppipe:=do_syscall(syscall_nr_pipe,TSysParam(@fildes)); -+ fppipe:=do_syscall(syscall_nr_pipe2,TSysParam(@fildes), TSysParam(flags)); ++ FPpipe:=do_syscall(syscall_nr_pipe2,TSysParam(@fildes),0); end; - {$else} - var +-{$else} +-var +- a, b: cInt; +-begin +- asm +- {$ifdef CPUi386} +- pushl syscall_nr_pipe +- call __pipe_call +- movl %eax, a +- movl %edx, b +- {$else} +- movq syscall_nr_pipe, %rdi +- call __pipe_call +- movl %eax, a +- movl %edx, b +- {$endif} +- end; +- +- fpPipe := a; // eax is in a, no matter if it worked or not +- fildes[0] := a; +- fildes[1] := b; +-end; +-{$endif} + + function FPfcntl(fildes:cint;Cmd:cint;Arg:cint):cint; + --- lang/fpc/files/patch-rtl-freebsd_unxfunc.inc (revision 568937) +++ lang/fpc/files/patch-rtl-freebsd_unxfunc.inc (nonexistent) @@ -1,13 +0,0 @@ ---- rtl/freebsd/unxfunc.inc 2020-02-21 18:39:27.076200000 -0500 -+++ rtl/freebsd/unxfunc.inc 2020-02-21 18:39:47.649039000 -0500 -@@ -49,8 +49,9 @@ - } - var - pip : tfildes; -+ flags : cint; - begin -- assignPipe:=fppipe(pip); -+ assignPipe:=fppipe(pip, flags); - pipe_in:=pip[0]; - pipe_out:=pip[1]; - end; --- lang/fpc/files/patch-rtl-unix_bunxh.inc (revision 568937) +++ lang/fpc/files/patch-rtl-unix_bunxh.inc (nonexistent) @@ -1,11 +0,0 @@ ---- rtl/unix/bunxh.inc 2020-02-21 18:37:42.890255000 -0500 -+++ rtl/unix/bunxh.inc 2020-02-21 18:38:00.256721000 -0500 -@@ -34,7 +34,7 @@ - Function FpChmod (path : pChar; Mode : TMode): cInt; - Function FpChown (path : pChar; owner : TUid; group : TGid): cInt; - Function FpUtime (path : pChar; times : putimbuf): cInt; -- Function FpPipe (var fildes : tfildes):cInt; -+ Function FpPipe (var fildes : tfildes; flags : cInt):cInt; - Function FpDup (fildes : cInt): cInt; external name 'FPC_SYSC_DUP'; - Function FpDup2 (fildes, fildes2 : cInt): cInt; external name 'FPC_SYSC_DUP2'; - Function FpTimes (var buffer : tms): TClock;