re PR go/84484 (libgo configure tests fail to find -latomic)

PR go/84484
    libgo: add support for riscv64
    
    Patch by Andreas Schwab.
    
    Reviewed-on: https://go-review.googlesource.com/96377

	* go.test/go-test.exp (go-set-goarch): Recognize riscv64-*-*.

From-SVN: r257914
This commit is contained in:
Andreas Schwab 2018-02-22 19:49:04 +00:00 committed by Ian Lance Taylor
parent afedc99bd2
commit b613cc2e91
17 changed files with 36 additions and 17 deletions

View File

@ -1,3 +1,7 @@
2018-02-22 Andreas Schwab <schwab@linux-m68k.org>
* go.test/go-test.exp (go-set-goarch): Recognize riscv64-*-*.
2018-02-22 Martin Sebor <msebor@redhat.com> 2018-02-22 Martin Sebor <msebor@redhat.com>
PR tree-optimization/84480 PR tree-optimization/84480

View File

@ -246,6 +246,9 @@ proc go-set-goarch { } {
} }
} }
} }
"riscv64-*-*" {
set goarch "riscv64"
}
"s390*-*-*" { "s390*-*-*" {
if [check_effective_target_ilp32] { if [check_effective_target_ilp32] {
set goarch "s390" set goarch "s390"

7
libgo/configure vendored
View File

@ -13653,10 +13653,10 @@ esac
# - libgo/go/syscall/endian_XX.go # - libgo/go/syscall/endian_XX.go
# - possibly others # - possibly others
# - possibly update files in libgo/go/internal/syscall/unix # - 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 s390 s390x sh shbe sparc sparc64" 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"
# All known GOARCH family values. # All known GOARCH family values.
ALLGOARCHFAMILY="I386 ALPHA AMD64 ARM ARM64 IA64 M68K MIPS MIPS64 PPC PPC64 S390 S390X SH SPARC SPARC64" ALLGOARCHFAMILY="I386 ALPHA AMD64 ARM ARM64 IA64 M68K MIPS MIPS64 PPC PPC64 RISCV64 S390 S390X SH SPARC SPARC64"
GOARCH=unknown GOARCH=unknown
case ${host} in case ${host} in
@ -13773,6 +13773,9 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
;; ;;
riscv64-*-*)
GOARCH=riscv64
;;
s390*-*-*) s390*-*-*)
cat confdefs.h - <<_ACEOF >conftest.$ac_ext cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */ /* end confdefs.h. */

View File

@ -224,10 +224,10 @@ AC_SUBST(USE_DEJAGNU)
# - libgo/go/syscall/endian_XX.go # - libgo/go/syscall/endian_XX.go
# - possibly others # - possibly others
# - possibly update files in libgo/go/internal/syscall/unix # - 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 s390 s390x sh shbe sparc sparc64" 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"
# All known GOARCH family values. # All known GOARCH family values.
ALLGOARCHFAMILY="I386 ALPHA AMD64 ARM ARM64 IA64 M68K MIPS MIPS64 PPC PPC64 S390 S390X SH SPARC SPARC64" ALLGOARCHFAMILY="I386 ALPHA AMD64 ARM ARM64 IA64 M68K MIPS MIPS64 PPC PPC64 RISCV64 S390 S390X SH SPARC SPARC64"
GOARCH=unknown GOARCH=unknown
case ${host} in case ${host} in
@ -304,6 +304,9 @@ AC_COMPILE_IFELSE([
[GOARCH=ppc64le], [GOARCH=ppc64le],
[GOARCH=ppc64])]) [GOARCH=ppc64])])
;; ;;
riscv64-*-*)
GOARCH=riscv64
;;
s390*-*-*) s390*-*-*)
AC_COMPILE_IFELSE([ AC_COMPILE_IFELSE([
#if defined(__s390x__) #if defined(__s390x__)

View File

@ -168,6 +168,7 @@ var ptrSizeMap = map[string]int64{
"ppc": 4, "ppc": 4,
"ppc64": 8, "ppc64": 8,
"ppc64le": 8, "ppc64le": 8,
"riscv64": 8,
"s390": 4, "s390": 4,
"s390x": 8, "s390x": 8,
"sh": 4, "sh": 4,
@ -192,6 +193,7 @@ var intSizeMap = map[string]int64{
"ppc": 4, "ppc": 4,
"ppc64": 8, "ppc64": 8,
"ppc64le": 8, "ppc64le": 8,
"riscv64": 8,
"s390": 4, "s390": 4,
"s390x": 8, "s390x": 8,
"sh": 4, "sh": 4,

View File

@ -5,4 +5,4 @@
package build package build
const goosList = "aix android darwin dragonfly freebsd linux nacl netbsd openbsd plan9 solaris windows zos " 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 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 ppc riscv64 s390 s390x sh shbe sparc sparc64"

View File

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style // Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file. // license that can be found in the LICENSE file.
// +build arm64 // +build arm64 riscv64
package unix package unix

View File

@ -6,7 +6,7 @@
// xxhash: https://code.google.com/p/xxhash/ // xxhash: https://code.google.com/p/xxhash/
// cityhash: https://code.google.com/p/cityhash/ // cityhash: https://code.google.com/p/cityhash/
// +build amd64 amd64p32 arm64 mips64 mips64le ppc64 ppc64le s390x alpha arm64be ia64 mips64p32 mips64p32le sparc64 // +build amd64 amd64p32 arm64 mips64 mips64le ppc64 ppc64le s390x alpha arm64be ia64 mips64p32 mips64p32le sparc64 riscv64
package runtime package runtime

View File

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style // Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file. // license that can be found in the LICENSE file.
// +build amd64 arm64 mips64 mips64le ppc64 ppc64le s390x arm64be alpha sparc64 ia64 // +build amd64 arm64 mips64 mips64le ppc64 ppc64le s390x arm64be alpha sparc64 ia64 riscv64
package runtime package runtime

View File

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style // Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file. // license that can be found in the LICENSE file.
// +build 386 amd64 amd64p32 arm64 ppc64 ppc64le s390x ppc s390 arm64be // +build 386 amd64 amd64p32 arm64 ppc64 ppc64le s390x ppc s390 arm64be riscv64
package runtime package runtime

View File

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style // Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file. // license that can be found in the LICENSE file.
// //
// +build 386 amd64 amd64p32 arm arm64 ppc64le mips64le mipsle alpha ia64 mips64p32le sh // +build 386 amd64 amd64p32 arm arm64 ppc64le mips64le mipsle alpha ia64 mips64p32le sh riscv64
package syscall package syscall

View File

@ -4,7 +4,7 @@
// GNU/Linux library ustat call. // GNU/Linux library ustat call.
// This is not supported on some kernels, such as arm64. // This is not supported on some kernels, such as arm64.
// +build !arm64 // +build !arm64,!riscv64
package syscall package syscall

View File

@ -146,6 +146,10 @@ case $goarch in
;; ;;
esac esac
;; ;;
riscv64)
family=RISCV64
pcquantum=2
;;
s390) s390)
family=S390 family=S390
bigendian=true bigendian=true

View File

@ -116,7 +116,7 @@ for f in $gofiles; do
aix | android | darwin | dragonfly | freebsd | linux | nacl | netbsd | openbsd | plan9 | solaris | windows) aix | android | darwin | dragonfly | freebsd | linux | nacl | netbsd | openbsd | plan9 | solaris | windows)
tag1=nonmatchingtag tag1=nonmatchingtag
;; ;;
386 | amd64 | amd64p32 | arm | armbe | arm64 | arm64be | alpha | ia64 | m68k | ppc64 | ppc64le | mips | mipsle | mips64 | mips64le | mips64p32 | mips64p32le | ppc | s390 | s390x | sh | shbe | sparc | sparc64) 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)
tag1=nonmatchingtag tag1=nonmatchingtag
;; ;;
esac esac
@ -128,7 +128,7 @@ for f in $gofiles; do
aix | android | darwin | dragonfly | freebsd | linux | nacl | netbsd | openbsd | plan9 | solaris | windows) aix | android | darwin | dragonfly | freebsd | linux | nacl | netbsd | openbsd | plan9 | solaris | windows)
tag2=nonmatchingtag tag2=nonmatchingtag
;; ;;
386 | amd64 | amd64p32 | arm | armbe | arm64 | arm64be | alpha | ia64 | m68k | ppc64 | ppc64le | mips | mipsle | mips64 | mips64le | mips64p32 | mips64p32le | ppc | s390 | s390x | sh | shbe | sparc | sparc64) 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)
tag2=nonmatchingtag tag2=nonmatchingtag
;; ;;
esac esac

View File

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style // Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file. // license that can be found in the LICENSE file.
// +build darwin dragonfly freebsd linux,!arm64 netbsd openbsd // +build darwin dragonfly freebsd linux,!arm64,!riscv64 netbsd openbsd
package main package main

View File

@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style // Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file. // license that can be found in the LICENSE file.
// +build linux,arm64 // +build linux,arm64 linux,riscv64
package main package main

View File

@ -314,7 +314,7 @@ x)
aix | android | darwin | dragonfly | freebsd | linux | nacl | netbsd | openbsd | plan9 | solaris | windows) aix | android | darwin | dragonfly | freebsd | linux | nacl | netbsd | openbsd | plan9 | solaris | windows)
tag1=nonmatchingtag tag1=nonmatchingtag
;; ;;
386 | amd64 | amd64p32 | arm | armbe | arm64 | arm64be | alpha | ia64 | m68k | ppc64 | ppc64le | mips | mipsle | mips64 | mips64le | mips64p32 | mips64p32le | ppc | s390 | s390x | sh | shbe | sparc | sparc64) 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)
tag1=nonmatchingtag tag1=nonmatchingtag
;; ;;
esac esac
@ -326,7 +326,7 @@ x)
aix | android | darwin | dragonfly | freebsd | linux | nacl | netbsd | openbsd | plan9 | solaris | windows) aix | android | darwin | dragonfly | freebsd | linux | nacl | netbsd | openbsd | plan9 | solaris | windows)
tag2=nonmatchingtag tag2=nonmatchingtag
;; ;;
386 | amd64 | amd64p32 | arm | armbe | arm64 | arm64be | alpha | ia64 | m68k | ppc64 | ppc64le | mips | mipsle | mips64 | mips64le | mips64p32 | mips64p32le | ppc | s390 | s390x | sh | shbe | sparc | sparc64) 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)
tag2=nonmatchingtag tag2=nonmatchingtag
;; ;;
esac esac