From 24879947d5ad7fda983a098f651130b6bfaa750f Mon Sep 17 00:00:00 2001 From: Tobias Klauser Date: Tue, 13 Feb 2018 17:07:54 +0100 Subject: [PATCH] [release-branch.go1.10] runtime: add symbol for AT_FDCWD on Linux amd64 and mips64x Also order the syscall number list by numerically for mips64x. Follow-up for CL 92895. Change-Id: I5f01f8c626132a06160997fce8a2aef0c486bb1c Reviewed-on: https://go-review.googlesource.com/93616 Run-TryBot: Tobias Klauser Reviewed-by: Brad Fitzpatrick Reviewed-by: Austin Clements TryBot-Result: Gobot Gobot Reviewed-on: https://go-review.googlesource.com/103035 Run-TryBot: Andrew Bonventre Reviewed-by: Ian Lance Taylor --- src/runtime/sys_linux_amd64.s | 6 ++++-- src/runtime/sys_linux_mips64x.s | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/runtime/sys_linux_amd64.s b/src/runtime/sys_linux_amd64.s index 017e7dcaef..576a91a85c 100644 --- a/src/runtime/sys_linux_amd64.s +++ b/src/runtime/sys_linux_amd64.s @@ -10,6 +10,8 @@ #include "go_tls.h" #include "textflag.h" +#define AT_FDCWD -100 + #define SYS_read 0 #define SYS_write 1 #define SYS_close 3 @@ -66,7 +68,7 @@ TEXT runtime·exitThread(SB),NOSPLIT,$0-8 TEXT runtime·open(SB),NOSPLIT,$0-20 // This uses openat instead of open, because Android O blocks open. - MOVL $-100, DI // AT_FDCWD, so this acts like open + MOVL $AT_FDCWD, DI // AT_FDCWD, so this acts like open MOVQ name+0(FP), SI MOVL mode+8(FP), DX MOVL perm+12(FP), R10 @@ -601,7 +603,7 @@ TEXT runtime·settls(SB),NOSPLIT,$32 // Same as in sys_darwin_386.s:/ugliness, different constant. // DI currently holds m->tls, which must be fs:0x1d0. // See cgo/gcc_android_amd64.c for the derivation of the constant. - SUBQ $0x1d0, DI // In android, the tls base + SUBQ $0x1d0, DI // In android, the tls base #else ADDQ $8, DI // ELF wants to use -8(FS) #endif diff --git a/src/runtime/sys_linux_mips64x.s b/src/runtime/sys_linux_mips64x.s index 2cb365074e..be0f2ca1e6 100644 --- a/src/runtime/sys_linux_mips64x.s +++ b/src/runtime/sys_linux_mips64x.s @@ -13,10 +13,11 @@ #include "go_tls.h" #include "textflag.h" +#define AT_FDCWD -100 + #define SYS_exit 5058 #define SYS_read 5000 #define SYS_write 5001 -#define SYS_openat 5247 #define SYS_close 5003 #define SYS_getpid 5038 #define SYS_kill 5060 @@ -42,6 +43,7 @@ #define SYS_exit_group 5205 #define SYS_epoll_create 5207 #define SYS_epoll_ctl 5208 +#define SYS_openat 5247 #define SYS_epoll_pwait 5272 #define SYS_clock_gettime 5222 #define SYS_epoll_create1 5285 @@ -68,7 +70,7 @@ TEXT runtime·exitThread(SB),NOSPLIT,$-8-8 TEXT runtime·open(SB),NOSPLIT|NOFRAME,$0-20 // This uses openat instead of open, because Android O blocks open. - MOVW $-100, R4 // AT_FDCWD, so this acts like open + MOVW $AT_FDCWD, R4 // AT_FDCWD, so this acts like open MOVV name+0(FP), R5 MOVW mode+8(FP), R6 MOVW perm+12(FP), R7 -- 2.48.1