internal/syscall/unix: fix syscalls for alpha, ia64, s390
authorIan Lance Taylor <ian@gcc.gnu.org>
Sun, 7 Aug 2016 22:32:46 +0000 (22:32 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Sun, 7 Aug 2016 22:32:46 +0000 (22:32 +0000)
    Also change the configure script to set GOARCH correctly for ia64, and
    add ia64 as a processor to match.sh and gotest.

    Reviewed-on: https://go-review.googlesource.com/25549

From-SVN: r239225

gcc/go/gofrontend/MERGE
libgo/configure
libgo/configure.ac
libgo/go/internal/syscall/unix/getrandom_linux_alpha.go [new file with mode: 0644]
libgo/go/internal/syscall/unix/getrandom_linux_ia64.go [new file with mode: 0644]
libgo/go/internal/syscall/unix/getrandom_linux_s390.go [new file with mode: 0644]
libgo/match.sh
libgo/testsuite/gotest

index 4128898c484be3034a56ca06851c487b2cfe1524..a5d7f51f1adcbb037932ae1de0d6cc5310f7ace7 100644 (file)
@@ -1,4 +1,4 @@
-b50a0c3fa975186f934b76e25dae42eb65148d67
+eeeeff3e3dd6c09aaefdf13cce99a5beff47a095
 
 The first line of this file holds the git revision number of the last
 merge done from the gofrontend repository.
index d8105dbab367173646970c13ff8db12f0eca57ea..756f62e137c2dcbace195a2a403d4aeabbed207f 100755 (executable)
@@ -660,6 +660,8 @@ LIBGO_IS_MIPS_FALSE
 LIBGO_IS_MIPS_TRUE
 LIBGO_IS_M68K_FALSE
 LIBGO_IS_M68K_TRUE
+LIBGO_IS_IA64_FALSE
+LIBGO_IS_IA64_TRUE
 LIBGO_IS_ARM64_FALSE
 LIBGO_IS_ARM64_TRUE
 LIBGO_IS_ARM_FALSE
@@ -11128,7 +11130,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 11131 "configure"
+#line 11133 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -11234,7 +11236,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 11237 "configure"
+#line 11239 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -13635,6 +13637,7 @@ is_386=no
 is_alpha=no
 is_arm=no
 is_arm64=no
+is_ia64=no
 is_m68k=no
 mips_abi=unknown
 is_ppc=no
@@ -13679,6 +13682,10 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
       GOARCH=amd64
     fi
     ;;
+  ia64-*-*)
+    is_ia64=yes
+    GOARCH=ia64
+    ;;
   m68k*-*-*)
     is_m68k=yes
     GOARCH=m68k
@@ -13848,6 +13855,14 @@ else
   LIBGO_IS_ARM64_FALSE=
 fi
 
+ if test $is_ia64 = yes; then
+  LIBGO_IS_IA64_TRUE=
+  LIBGO_IS_IA64_FALSE='#'
+else
+  LIBGO_IS_IA64_TRUE='#'
+  LIBGO_IS_IA64_FALSE=
+fi
+
  if test $is_m68k = yes; then
   LIBGO_IS_M68K_TRUE=
   LIBGO_IS_M68K_FALSE='#'
@@ -15799,6 +15814,10 @@ if test -z "${LIBGO_IS_ARM64_TRUE}" && test -z "${LIBGO_IS_ARM64_FALSE}"; then
   as_fn_error "conditional \"LIBGO_IS_ARM64\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
+if test -z "${LIBGO_IS_IA64_TRUE}" && test -z "${LIBGO_IS_IA64_FALSE}"; then
+  as_fn_error "conditional \"LIBGO_IS_IA64\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
 if test -z "${LIBGO_IS_M68K_TRUE}" && test -z "${LIBGO_IS_M68K_FALSE}"; then
   as_fn_error "conditional \"LIBGO_IS_M68K\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
index e4b314e5f8c2e0be349eeb221d7b94f3e1c7d408..21ece733f34be4a2c9e964b47e89e894db927314 100644 (file)
@@ -191,6 +191,7 @@ is_386=no
 is_alpha=no
 is_arm=no
 is_arm64=no
+is_ia64=no
 is_m68k=no
 mips_abi=unknown
 is_ppc=no
@@ -229,6 +230,10 @@ changequote([,])dnl
       GOARCH=amd64
     fi
     ;;
+  ia64-*-*)
+    is_ia64=yes
+    GOARCH=ia64
+    ;;
   m68k*-*-*)
     is_m68k=yes
     GOARCH=m68k
@@ -311,6 +316,7 @@ AM_CONDITIONAL(LIBGO_IS_386, test $is_386 = yes)
 AM_CONDITIONAL(LIBGO_IS_ALPHA, test $is_alpha = yes)
 AM_CONDITIONAL(LIBGO_IS_ARM, test $is_arm = yes)
 AM_CONDITIONAL(LIBGO_IS_ARM64, test $is_arm64 = yes)
+AM_CONDITIONAL(LIBGO_IS_IA64, test $is_ia64 = yes)
 AM_CONDITIONAL(LIBGO_IS_M68K, test $is_m68k = yes)
 AM_CONDITIONAL(LIBGO_IS_MIPS, test $mips_abi != unknown)
 AM_CONDITIONAL(LIBGO_IS_MIPSO32, test $mips_abi = o32)
diff --git a/libgo/go/internal/syscall/unix/getrandom_linux_alpha.go b/libgo/go/internal/syscall/unix/getrandom_linux_alpha.go
new file mode 100644 (file)
index 0000000..9587b5a
--- /dev/null
@@ -0,0 +1,9 @@
+// Copyright 2016 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package unix
+
+// Linux getrandom system call number.
+// See GetRandom in getrandom_linux.go.
+const randomTrap uintptr = 511
diff --git a/libgo/go/internal/syscall/unix/getrandom_linux_ia64.go b/libgo/go/internal/syscall/unix/getrandom_linux_ia64.go
new file mode 100644 (file)
index 0000000..d20ba23
--- /dev/null
@@ -0,0 +1,9 @@
+// Copyright 2016 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package unix
+
+// Linux getrandom system call number.
+// See GetRandom in getrandom_linux.go.
+const randomTrap uintptr = 1339
diff --git a/libgo/go/internal/syscall/unix/getrandom_linux_s390.go b/libgo/go/internal/syscall/unix/getrandom_linux_s390.go
new file mode 100644 (file)
index 0000000..e3bc4ee
--- /dev/null
@@ -0,0 +1,9 @@
+// Copyright 2016 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package unix
+
+// Linux getrandom system call number.
+// See GetRandom in getrandom_linux.go.
+const randomTrap uintptr = 349
index e415acdbc2cf4e1e6a682ef85dff2edad3de576a..f626112642b8e047283ff1fca35b1b424ba53029 100755 (executable)
@@ -116,7 +116,7 @@ for f in $gofiles; do
        android | darwin | dragonfly | freebsd | linux | nacl | netbsd | openbsd | plan9 | solaris | windows)
            tag1=nonmatchingtag
            ;;
-       386 | amd64 | amd64p32 | arm | armbe | arm64 | arm64be | alpha | m68k | ppc64 | ppc64le | mips | mipsle | mips64 | mips64le | mips64p32 | mips64p32le | mipso32 | mipsn32 | mipsn64 | mipso64 | ppc | s390 | s390x | sparc | sparc64)
+       386 | amd64 | amd64p32 | arm | armbe | arm64 | arm64be | alpha | ia64 | m68k | ppc64 | ppc64le | mips | mipsle | mips64 | mips64le | mips64p32 | mips64p32le | mipso32 | mipsn32 | mipsn64 | mipso64 | ppc | s390 | s390x | sparc | sparc64)
            tag1=nonmatchingtag
            ;;
     esac
@@ -128,7 +128,7 @@ for f in $gofiles; do
        android | darwin | dragonfly | freebsd | linux | nacl | netbsd | openbsd | plan9 | solaris | windows)
            tag2=nonmatchingtag
            ;;
-       386 | amd64 | amd64p32 | arm | armbe | arm64 | arm64be | alpha | m68k | ppc64 | ppc64le | mips | mipsle | mips64 | mips64le | mips64p32 | mips64p32le | mipso32 | mipsn32 | mipsn64 | mipso64 | ppc | s390 | s390x | sparc | sparc64)
+       386 | amd64 | amd64p32 | arm | armbe | arm64 | arm64be | alpha | ia64 | m68k | ppc64 | ppc64le | mips | mipsle | mips64 | mips64le | mips64p32 | mips64p32le | mipso32 | mipsn32 | mipsn64 | mipso64 | ppc | s390 | s390x | sparc | sparc64)
            tag2=nonmatchingtag
            ;;
     esac
index 0957805a78d4837a6a52c7ce23c7c9deff994cab..77722c2dd0f2fa95f14600d3c44d362440b93cec 100755 (executable)
@@ -295,7 +295,7 @@ x)
            android | darwin | dragonfly | freebsd | linux | nacl | netbsd | openbsd | plan9 | solaris | windows)
                tag1=nonmatchingtag
                ;;
-           386 | amd64 | amd64p32 | arm | armbe | arm64 | arm64be | alpha | m68k | ppc64 | ppc64le | mips | mipsle | mips64 | mips64le | mips64p32 | mips64p32le | mipso32 | mipsn32 | mipsn64 | mipso64 | ppc | s390 | s390x | sparc | sparc64)
+           386 | amd64 | amd64p32 | arm | armbe | arm64 | arm64be | alpha | ia64 | m68k | ppc64 | ppc64le | mips | mipsle | mips64 | mips64le | mips64p32 | mips64p32le | mipso32 | mipsn32 | mipsn64 | mipso64 | ppc | s390 | s390x | sparc | sparc64)
                tag1=nonmatchingtag
                ;;
            esac
@@ -307,7 +307,7 @@ x)
            android | darwin | dragonfly | freebsd | linux | nacl | netbsd | openbsd | plan9 | solaris | windows)
                tag2=nonmatchingtag
                ;;
-           386 | amd64 | amd64p32 | arm | armbe | arm64 | arm64be | alpha | m68k | ppc64 | ppc64le | mips | mipsle | mips64 | mips64le | mips64p32 | mips64p32le | mipso32 | mipsn32 | mipsn64 | mipso64 | ppc | s390 | s390x | sparc | sparc64)
+           386 | amd64 | amd64p32 | arm | armbe | arm64 | arm64be | alpha | ia64 | m68k | ppc64 | ppc64le | mips | mipsle | mips64 | mips64le | mips64p32 | mips64p32le | mipso32 | mipsn32 | mipsn64 | mipso64 | ppc | s390 | s390x | sparc | sparc64)
                tag2=nonmatchingtag
                ;;
            esac