Skip to content

Commit e5ecc2a

Browse files
committed
unix: use Renameat2 to implement Renameat on linux/riscv64
On linux/riscv64, the renameat syscall no longer exists and has been superseded by renameat2. Use Renameat2 to implement Renameat on linux/riscv64. Based on a patch by Ryan O'Leary. Updates golang/go#27532 Change-Id: I7c60c7f824750408265f67397b8ac1fa7226f425 Reviewed-on: https://go-review.googlesource.com/c/157899 Run-TryBot: Tobias Klauser <[email protected]> TryBot-Result: Gobot Gobot <[email protected]> Reviewed-by: Ian Lance Taylor <[email protected]>
1 parent 5552a98 commit e5ecc2a

24 files changed

+253
-261
lines changed

unix/syscall_linux.go

-1
Original file line numberDiff line numberDiff line change
@@ -1442,7 +1442,6 @@ func Getpgrp() (pid int) {
14421442
//sys Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) = SYS_PSELECT6
14431443
//sys read(fd int, p []byte) (n int, err error)
14441444
//sys Removexattr(path string, attr string) (err error)
1445-
//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
14461445
//sys Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error)
14471446
//sys RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error)
14481447
//sys Setdomainname(p []byte) (err error)

unix/syscall_linux_386.go

+1
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ func Pipe2(p []int, flags int) (err error) {
6868
//sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64
6969
//sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
7070
//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
71+
//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
7172
//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64
7273
//sys Setfsgid(gid int) (err error) = SYS_SETFSGID32
7374
//sys Setfsuid(uid int) (err error) = SYS_SETFSUID32

unix/syscall_linux_amd64.go

+1
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ func Lstat(path string, stat *Stat_t) (err error) {
4343
//sys Pause() (err error)
4444
//sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
4545
//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
46+
//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
4647
//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK
4748

4849
func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {

unix/syscall_linux_arm.go

+1
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
8989
//sys Listen(s int, n int) (err error)
9090
//sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64
9191
//sys Pause() (err error)
92+
//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
9293
//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64
9394
//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT
9495
//sys Setfsgid(gid int) (err error) = SYS_SETFSGID32

unix/syscall_linux_arm64.go

+1
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ func EpollCreate(size int) (fd int, err error) {
3030
//sys Listen(s int, n int) (err error)
3131
//sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
3232
//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
33+
//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
3334
//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK
3435

3536
func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {

unix/syscall_linux_mips64x.go

+1
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ package unix
2424
//sys Pause() (err error)
2525
//sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
2626
//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
27+
//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
2728
//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK
2829

2930
func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {

unix/syscall_linux_mipsx.go

+1
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr,
2828
//sys Listen(s int, n int) (err error)
2929
//sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
3030
//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
31+
//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
3132
//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT
3233
//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64
3334
//sys Setfsgid(gid int) (err error)

unix/syscall_linux_ppc64x.go

+1
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ package unix
3030
//sys Pause() (err error)
3131
//sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
3232
//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
33+
//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
3334
//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK
3435
//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT
3536
//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error)

unix/syscall_linux_riscv64.go

+4
Original file line numberDiff line numberDiff line change
@@ -207,3 +207,7 @@ func Poll(fds []PollFd, timeout int) (n int, err error) {
207207
}
208208
return ppoll(&fds[0], len(fds), ts, nil)
209209
}
210+
211+
func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
212+
return Renameat2(olddirfd, oldpath, newdirfd, newpath, 0)
213+
}

unix/syscall_linux_s390x.go

+1
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ import (
3030
//sys Pause() (err error)
3131
//sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
3232
//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
33+
//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
3334
//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK
3435
//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)
3536
//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error)

unix/syscall_linux_sparc64.go

+1
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ package unix
2626
//sys Pause() (err error)
2727
//sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
2828
//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
29+
//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
2930
//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK
3031
//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)
3132
//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error)

unix/zsyscall_linux_386.go

+20-20
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

unix/zsyscall_linux_amd64.go

+20-20
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

unix/zsyscall_linux_arm.go

+20-20
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

unix/zsyscall_linux_arm64.go

+20-20
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

unix/zsyscall_linux_mips.go

+20-20
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)