2
0
Эх сурвалжийг харах

asm-generic syscalls only selectively include nr_renameat. Instead nr_renameat2 seems to be the new default.

git-svn-id: branches/laksen/riscv_new@39795 -
Jeppe Johansen 6 жил өмнө
parent
commit
2b4532d3fa

+ 1 - 0
rtl/linux/osdefs.inc

@@ -88,6 +88,7 @@
 {$ifdef cpuaarch64}
   {$define generic_linux_syscalls}
   {$undef usestime}
+  {$define userenameat}
 {$endif cpuaarch64}
 
 {$ifdef cpusparc64}

+ 5 - 1
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}