summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlaksen <laksen@3ad0048d-3df7-0310-abae-a5850022a9f2>2018-09-22 12:34:48 +0000
committerlaksen <laksen@3ad0048d-3df7-0310-abae-a5850022a9f2>2018-09-22 12:34:48 +0000
commitae04d22ff7aa72c1482c4f3aeebe25ba3358ac90 (patch)
tree797f66748c2070a5bc35bf08ae582333446b7510
parentbc1b01077062ffab38a84aae6b2a1ffcbbe1bf82 (diff)
downloadfpc-ae04d22ff7aa72c1482c4f3aeebe25ba3358ac90.tar.gz
asm-generic syscalls only selectively include nr_renameat. Instead nr_renameat2 seems to be the new default.
git-svn-id: https://svn.freepascal.org/svn/fpc/branches/laksen@39795 3ad0048d-3df7-0310-abae-a5850022a9f2
-rw-r--r--riscv_new/rtl/linux/osdefs.inc1
-rw-r--r--riscv_new/rtl/linux/ossysc.inc6
2 files changed, 6 insertions, 1 deletions
diff --git a/riscv_new/rtl/linux/osdefs.inc b/riscv_new/rtl/linux/osdefs.inc
index 7e7a91e227..a756e03477 100644
--- a/riscv_new/rtl/linux/osdefs.inc
+++ b/riscv_new/rtl/linux/osdefs.inc
@@ -88,6 +88,7 @@
{$ifdef cpuaarch64}
{$define generic_linux_syscalls}
{$undef usestime}
+ {$define userenameat}
{$endif cpuaarch64}
{$ifdef cpusparc64}
diff --git a/riscv_new/rtl/linux/ossysc.inc b/riscv_new/rtl/linux/ossysc.inc
index 3edc485011..d924b9aa8f 100644
--- a/riscv_new/rtl/linux/ossysc.inc
+++ b/riscv_new/rtl/linux/ossysc.inc
@@ -100,7 +100,11 @@ function Fprename(old : pchar; newpath: pchar): cint; [public, alias : 'FPC_SYSC
begin
{$if defined(generic_linux_syscalls)}
- Fprename:=do_syscall(syscall_nr_renameat,AT_FDCWD,TSysParam(old),AT_FDCWD,TSysParam(newpath));
+ {$if defined(userenameat)}
+ Fprename:=do_syscall(syscall_nr_renameat,AT_FDCWD,TSysParam(old),AT_FDCWD,TSysParam(newpath));
+ {$else}
+ Fprename:=do_syscall(syscall_nr_renameat2,AT_FDCWD,TSysParam(old),AT_FDCWD,TSysParam(newpath),0);
+ {$endif}
{$else}
Fprename:=do_syscall(syscall_nr_rename,TSysParam(old),TSysParam(newpath));
{$endif}