From dd554b787d0280566e891dba9e19dd718e68d42a Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Wed, 26 Sep 2018 15:17:30 +0000 Subject: [PATCH] syscall: don't assume we have a GETEUID system call On Alpha GNU/Linux there is no geteuid system call, there is only getresuid. The raw geteuid system call is only used for testing, so just skip the test if it's not available. Reviewed-on: https://go-review.googlesource.com/137655 From-SVN: r264647 --- gcc/go/gofrontend/MERGE | 2 +- libgo/go/syscall/syscall_linux_test.go | 4 ++++ libgo/mksysinfo.sh | 6 ++++++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/gcc/go/gofrontend/MERGE b/gcc/go/gofrontend/MERGE index c306628e34b..8cb370f0aac 100644 --- a/gcc/go/gofrontend/MERGE +++ b/gcc/go/gofrontend/MERGE @@ -1,4 +1,4 @@ -e7b98cf0a380eb45791cd5c52897224a686dcdec +944784a93cf89d3a238e5607c993ea5f18f99c12 The first line of this file holds the git revision number of the last merge done from the gofrontend repository. diff --git a/libgo/go/syscall/syscall_linux_test.go b/libgo/go/syscall/syscall_linux_test.go index 99de6ebaf2f..77a822d97e7 100644 --- a/libgo/go/syscall/syscall_linux_test.go +++ b/libgo/go/syscall/syscall_linux_test.go @@ -302,6 +302,10 @@ func TestSyscallNoError(t *testing.T) { t.Skip("skipping root only test") } + if syscall.Sys_GETEUID == 0 { + t.Skip("skipping because there is no geteuid system call") + } + // Copy the test binary to a location that a non-root user can read/execute // after we drop privileges tempDir, err := ioutil.TempDir("", "TestSyscallNoError") diff --git a/libgo/mksysinfo.sh b/libgo/mksysinfo.sh index b9436ef1e83..b7b9fdcc5b0 100755 --- a/libgo/mksysinfo.sh +++ b/libgo/mksysinfo.sh @@ -138,6 +138,12 @@ if ! grep '^const SYS_GETDENTS64 ' ${OUT} >/dev/null 2>&1; then echo "const SYS_GETDENTS64 = 0" >> ${OUT} fi +# The syscall package wants the geteuid system call number. It isn't +# defined on Alpha, which only provides the getresuid system call. +if ! grep '^const SYS_GETEUID ' ${OUT} >/dev/null 2>&1; then + echo "const SYS_GETEUID = 0" >> ${OUT} +fi + # Stat constants. grep '^const _S_' gen-sysinfo.go | \ sed -e 's/^\(const \)_\(S_[^= ]*\)\(.*\)$/\1\2 = _\2/' >> ${OUT}