libgo: add support for the Nios II architecture
authorIan Lance Taylor <ian@gcc.gnu.org>
Wed, 2 May 2018 22:28:46 +0000 (22:28 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Wed, 2 May 2018 22:28:46 +0000 (22:28 +0000)
    Reviewed-on: https://go-review.googlesource.com/90775

From-SVN: r259866

14 files changed:
gcc/go/gofrontend/MERGE
libgo/configure
libgo/configure.ac
libgo/go/cmd/cgo/main.go
libgo/go/go/build/syslist.go
libgo/go/internal/syscall/unix/getrandom_linux_generic.go
libgo/go/runtime/hash32.go
libgo/go/runtime/lfstack_32bit.go
libgo/go/runtime/unaligned2.go
libgo/go/syscall/endian_little.go
libgo/go/syscall/libcall_linux_ustat.go
libgo/goarch.sh
libgo/match.sh
libgo/testsuite/gotest

index 61a5bc2206b760ebc97ab720ff805cc905ff03c1..09c10470b5473ee24685e8e175f9b1001945d4ff 100644 (file)
@@ -1,4 +1,4 @@
-380527c032f02446438c71b0ac0026bcab416be5
+24cd2e0542cc227200c3f91b9e0eefaa726cbc1c
 
 The first line of this file holds the git revision number of the last
 merge done from the gofrontend repository.
index c5f8e8a37637219730e105c306187eaa10ce47ec..11e04aafc8bba672de7876992aec5e7a26bb25fe 100755 (executable)
@@ -13653,10 +13653,10 @@ esac
 #   - libgo/go/syscall/endian_XX.go
 #   - possibly others
 # - possibly update files in libgo/go/internal/syscall/unix
-ALLGOARCH="386 alpha amd64 amd64p32 arm armbe arm64 arm64be ia64 m68k mips mipsle mips64 mips64le mips64p32 mips64p32le ppc ppc64 ppc64le riscv64 s390 s390x sh shbe sparc sparc64"
+ALLGOARCH="386 alpha amd64 amd64p32 arm armbe arm64 arm64be ia64 m68k mips mipsle mips64 mips64le mips64p32 mips64p32le nios2 ppc ppc64 ppc64le riscv64 s390 s390x sh shbe sparc sparc64"
 
 # All known GOARCH family values.
-ALLGOARCHFAMILY="I386 ALPHA AMD64 ARM ARM64 IA64 M68K MIPS MIPS64 PPC PPC64 RISCV64 S390 S390X SH SPARC SPARC64"
+ALLGOARCHFAMILY="I386 ALPHA AMD64 ARM ARM64 IA64 M68K MIPS MIPS64 NIOS2 PPC PPC64 RISCV64 S390 S390X SH SPARC SPARC64"
 
 GOARCH=unknown
 case ${host} in
@@ -13745,6 +13745,9 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
         ;;
     esac
     ;;
+  nios2-*-*)
+    GOARCH=nios2
+    ;;
   rs6000*-*-* | powerpc*-*-*)
     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
index eabe294afa92b54057187f03330efba2fb12b625..9f4bf50b22bc4c2535bd907097071ceedeb07574 100644 (file)
@@ -224,10 +224,10 @@ AC_SUBST(USE_DEJAGNU)
 #   - libgo/go/syscall/endian_XX.go
 #   - possibly others
 # - possibly update files in libgo/go/internal/syscall/unix
-ALLGOARCH="386 alpha amd64 amd64p32 arm armbe arm64 arm64be ia64 m68k mips mipsle mips64 mips64le mips64p32 mips64p32le ppc ppc64 ppc64le riscv64 s390 s390x sh shbe sparc sparc64"
+ALLGOARCH="386 alpha amd64 amd64p32 arm armbe arm64 arm64be ia64 m68k mips mipsle mips64 mips64le mips64p32 mips64p32le nios2 ppc ppc64 ppc64le riscv64 s390 s390x sh shbe sparc sparc64"
 
 # All known GOARCH family values.
-ALLGOARCHFAMILY="I386 ALPHA AMD64 ARM ARM64 IA64 M68K MIPS MIPS64 PPC PPC64 RISCV64 S390 S390X SH SPARC SPARC64"
+ALLGOARCHFAMILY="I386 ALPHA AMD64 ARM ARM64 IA64 M68K MIPS MIPS64 NIOS2 PPC PPC64 RISCV64 S390 S390X SH SPARC SPARC64"
 
 GOARCH=unknown
 case ${host} in
@@ -290,6 +290,9 @@ changequote([,])dnl
         ;;
     esac
     ;;
+  nios2-*-*)
+    GOARCH=nios2
+    ;;
   rs6000*-*-* | powerpc*-*-*)
     AC_COMPILE_IFELSE([
 #ifdef _ARCH_PPC64
index 6baabfd1336691ea9079d9f9388ef945fa08d852..890a365ceef088beb4022fc9a84ca5c3a5112fbd 100644 (file)
@@ -165,6 +165,7 @@ var ptrSizeMap = map[string]int64{
        "mips64le":    8,
        "mips64p32":   4,
        "mips64p32le": 4,
+       "nios2":       4,
        "ppc":         4,
        "ppc64":       8,
        "ppc64le":     8,
@@ -190,6 +191,7 @@ var intSizeMap = map[string]int64{
        "mips64le":    8,
        "mips64p32":   8,
        "mips64p32le": 8,
+       "nios2":       4,
        "ppc":         4,
        "ppc64":       8,
        "ppc64le":     8,
index 679d195025e276539aff47dc8a0a23a0e1375abf..0c3963463815ae9ca3c7bd87f688158858d44df8 100644 (file)
@@ -5,4 +5,4 @@
 package build
 
 const goosList = "aix android darwin dragonfly freebsd linux nacl netbsd openbsd plan9 solaris windows zos "
-const goarchList = "386 amd64 amd64p32 arm armbe arm64 arm64be alpha m68k ppc64 ppc64le mips mipsle mips64 mips64le mips64p32 mips64p32le ppc riscv64 s390 s390x sh shbe sparc sparc64"
+const goarchList = "386 amd64 amd64p32 arm armbe arm64 arm64be alpha m68k ppc64 ppc64le mips mipsle mips64 mips64le mips64p32 mips64p32le nios2 ppc riscv64 s390 s390x sh shbe sparc sparc64"
index d6af3dea8d72b5305b17b0606c903a4849d95e72..2d513df28ddc32d18267c0102b814bb349cd546b 100644 (file)
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build arm64 riscv64
+// +build arm64 nios2 riscv64
 
 package unix
 
index 22daec52526929f34e659ed0f30106a5c447775a..344912711d95e430de7fecb584ea7bb0a01465a1 100644 (file)
@@ -6,7 +6,7 @@
 //   xxhash: https://code.google.com/p/xxhash/
 // cityhash: https://code.google.com/p/cityhash/
 
-// +build 386 arm armbe m68k mips mipsle ppc s390 sh shbe sparc
+// +build 386 arm armbe m68k mips mipsle nios2 ppc s390 sh shbe sparc
 
 package runtime
 
index bbc421a90fd37aa8bedb48659489a95ea4e53725..1288c1a2aaa0b170f907aa383cf1a2441a1facea 100644 (file)
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build 386 arm nacl armbe m68k mips mipsle mips64p32 mips64p32le ppc s390 sh shbe sparc
+// +build 386 arm nacl armbe m68k mips mipsle mips64p32 mips64p32le nios2 ppc s390 sh shbe sparc
 
 package runtime
 
index 891459ea842070b1e26f9fdedbc2ba165a9689dc..9f52e8d264306aaed5fa1eb892760c400e13da15 100644 (file)
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build arm mips mipsle mips64 mips64le armbe m68k sparc alpha ia64 mips64p32 mips64p32le sh shbe sparc64
+// +build alpha arm armbe ia64 m68k mips mipsle mips64 mips64le mips64p32 mips64p32le nios2 sh shbe sparc sparc64
 
 package runtime
 
index 4a7312198f5bde8e05a1008555d34058c36bdb9a..a5d32ae15f927b0472a476ca9aa23f0c85c43e76 100644 (file)
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 //
-// +build 386 amd64 amd64p32 arm arm64 ppc64le mips64le mipsle alpha ia64 mips64p32le sh riscv64
+// +build 386 alpha amd64 amd64p32 arm arm64 ia64 mips64le mipsle mips64p32le nios2 ppc64le riscv64 sh
 
 package syscall
 
index 3aff344f25c05a90084bbfa2c339813ba3e5e26b..f515fce35e9ccc705baabd508cd986ea7a28188c 100644 (file)
@@ -4,7 +4,7 @@
 
 // GNU/Linux library ustat call.
 // This is not supported on some kernels, such as arm64.
-// +build !arm64,!riscv64
+// +build !arm64,!nios2,!riscv64
 
 package syscall
 
index c63cbbaa76b4d55d1007696303900e4443f9bb60..11bca7bb18f041986878b77489f3c400a54f9115 100755 (executable)
@@ -126,6 +126,13 @@ case $goarch in
                ;;
        esac
        ;;
+    nios2)
+        family=NIOS2
+        cachelinesize=32
+        minframesize=16
+        pcquantum=4
+        ptrsize=4
+        ;;
     ppc)
        family=PPC
        bigendian=true
index 9247ec6f40d0b45e6f5d47f48bc79594e0657e5a..fb800133c5eae8ad02c3497ce91ab90540e3e94a 100755 (executable)
@@ -116,7 +116,7 @@ for f in $gofiles; do
        aix | android | darwin | dragonfly | freebsd | linux | nacl | netbsd | openbsd | plan9 | solaris | windows)
            tag1=nonmatchingtag
            ;;
-       386 | amd64 | amd64p32 | arm | armbe | arm64 | arm64be | alpha | ia64 | m68k | ppc64 | ppc64le | mips | mipsle | mips64 | mips64le | mips64p32 | mips64p32le | ppc | riscv64 | s390 | s390x | sh | shbe | sparc | sparc64)
+       386 | amd64 | amd64p32 | arm | armbe | arm64 | arm64be | alpha | ia64 | m68k | mips | mipsle | mips64 | mips64le | mips64p32 | mips64p32le | nios2 | ppc | ppc64 | ppc64le | riscv64 | s390 | s390x | sh | shbe | sparc | sparc64)
            tag1=nonmatchingtag
            ;;
     esac
@@ -128,7 +128,7 @@ for f in $gofiles; do
        aix | android | darwin | dragonfly | freebsd | linux | nacl | netbsd | openbsd | plan9 | solaris | windows)
            tag2=nonmatchingtag
            ;;
-       386 | amd64 | amd64p32 | arm | armbe | arm64 | arm64be | alpha | ia64 | m68k | ppc64 | ppc64le | mips | mipsle | mips64 | mips64le | mips64p32 | mips64p32le | ppc | riscv64 | s390 | s390x | sh | shbe | sparc | sparc64)
+       386 | amd64 | amd64p32 | arm | armbe | arm64 | arm64be | alpha | ia64 | m68k | mips | mipsle | mips64 | mips64le | mips64p32 | mips64p32le | nios2 | ppc | ppc64 | ppc64le | riscv64 | s390 | s390x | sh | shbe | sparc | sparc64)
            tag2=nonmatchingtag
            ;;
     esac
index 434c26de933eb773035fe847d0c6c9ac8617b892..d9353d1481047c69196fd91e3c70a1501896346f 100755 (executable)
@@ -314,7 +314,7 @@ x)
            aix | android | darwin | dragonfly | freebsd | linux | nacl | netbsd | openbsd | plan9 | solaris | windows)
                tag1=nonmatchingtag
                ;;
-           386 | amd64 | amd64p32 | arm | armbe | arm64 | arm64be | alpha | ia64 | m68k | ppc64 | ppc64le | mips | mipsle | mips64 | mips64le | mips64p32 | mips64p32le | ppc | riscv64 | s390 | s390x | sh | shbe | sparc | sparc64)
+           386 | amd64 | amd64p32 | arm | armbe | arm64 | arm64be | alpha | ia64 | m68k | mips | mipsle | mips64 | mips64le | mips64p32 | mips64p32le·| nios2 | ppc | ppc64 | ppc64le | riscv64 | s390 | s390x | sh | shbe | sparc | sparc64)
                tag1=nonmatchingtag
                ;;
            esac
@@ -326,7 +326,7 @@ x)
            aix | android | darwin | dragonfly | freebsd | linux | nacl | netbsd | openbsd | plan9 | solaris | windows)
                tag2=nonmatchingtag
                ;;
-           386 | amd64 | amd64p32 | arm | armbe | arm64 | arm64be | alpha | ia64 | m68k | ppc64 | ppc64le | mips | mipsle | mips64 | mips64le | mips64p32 | mips64p32le | ppc | riscv64 | s390 | s390x | sh | shbe | sparc | sparc64)
+           386 | amd64 | amd64p32 | arm | armbe | arm64 | arm64be | alpha | ia64 | m68k | mips | mipsle | mips64 | mips64le | mips64p32 | mips64p32le·| nios2 | ppc | ppc64 | ppc64le | riscv64 | s390 | s390x | sh | shbe | sparc | sparc64)
                tag2=nonmatchingtag
                ;;
            esac