syscall: don't assume we have a GETEUID system call
authorIan Lance Taylor <ian@gcc.gnu.org>
Wed, 26 Sep 2018 15:17:30 +0000 (15:17 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Wed, 26 Sep 2018 15:17:30 +0000 (15:17 +0000)
    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
libgo/go/syscall/syscall_linux_test.go
libgo/mksysinfo.sh

index c306628e34b670bf082b085638f7bdebcb759568..8cb370f0aac7c2de830930f63e0e2a11a22c9967 100644 (file)
@@ -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.
index 99de6ebaf2fcb14645e55f865df9d4524a00eff1..77a822d97e71e1e053ae447fbb8c5b3a27ad5458 100644 (file)
@@ -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")
index b9436ef1e83404a7772f5f24620e529e47bd4533..b7b9fdcc5b02ab5617d341be1a484a2a85206b0d 100755 (executable)
@@ -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}