summaryrefslogtreecommitdiff
path: root/libgo
diff options
context:
space:
mode:
authorian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>2014-11-21 18:22:05 +0000
committerian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>2014-11-21 18:22:05 +0000
commit59eb586e96aefa8083fc6e8d495ef85909daea27 (patch)
treecc0447c3026814b91fce5321db5213fb5eeea0f8 /libgo
parent2e59eefdcfe2a28157885965ad081a2302843814 (diff)
downloadgcc-59eb586e96aefa8083fc6e8d495ef85909daea27.tar.gz
runtime: GOARCH values for ppc64 BE & LE
ppc64 for BE ppc64le for LE issue 8654 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217941 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libgo')
-rwxr-xr-xlibgo/configure35
-rw-r--r--libgo/configure.ac13
-rw-r--r--libgo/go/go/build/syslist.go2
-rwxr-xr-xlibgo/testsuite/gotest2
4 files changed, 45 insertions, 7 deletions
diff --git a/libgo/configure b/libgo/configure
index 3352c0ff6d1..ae98e3d187d 100755
--- a/libgo/configure
+++ b/libgo/configure
@@ -637,6 +637,8 @@ LIBGO_IS_S390X_FALSE
LIBGO_IS_S390X_TRUE
LIBGO_IS_S390_FALSE
LIBGO_IS_S390_TRUE
+LIBGO_IS_PPC64LE_FALSE
+LIBGO_IS_PPC64LE_TRUE
LIBGO_IS_PPC64_FALSE
LIBGO_IS_PPC64_TRUE
LIBGO_IS_PPC_FALSE
@@ -11119,7 +11121,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11122 "configure"
+#line 11124 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11225,7 +11227,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11228 "configure"
+#line 11230 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -13622,6 +13624,7 @@ is_m68k=no
mips_abi=unknown
is_ppc=no
is_ppc64=no
+is_ppc64le=no
is_s390=no
is_s390x=no
is_sparc=no
@@ -13734,13 +13737,27 @@ _ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
is_ppc=yes
else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#if defined(_BIG_ENDIAN) || defined(__BIG_ENDIAN__)
+#error 64be
+#endif
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ is_ppc64le=yes
+else
is_ppc64=yes
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
if test "$is_ppc" = "yes"; then
GOARCH=ppc
- else
+ elif test "$is_ppc64" = "yes"; then
GOARCH=ppc64
+ else
+ GOARCH=ppc64le
fi
;;
s390*-*-*)
@@ -13880,6 +13897,14 @@ else
LIBGO_IS_PPC64_FALSE=
fi
+ if test $is_ppc64le = yes; then
+ LIBGO_IS_PPC64LE_TRUE=
+ LIBGO_IS_PPC64LE_FALSE='#'
+else
+ LIBGO_IS_PPC64LE_TRUE='#'
+ LIBGO_IS_PPC64LE_FALSE=
+fi
+
if test $is_s390 = yes; then
LIBGO_IS_S390_TRUE=
LIBGO_IS_S390_FALSE='#'
@@ -15691,6 +15716,10 @@ if test -z "${LIBGO_IS_PPC64_TRUE}" && test -z "${LIBGO_IS_PPC64_FALSE}"; then
as_fn_error "conditional \"LIBGO_IS_PPC64\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
+if test -z "${LIBGO_IS_PPC64LE_TRUE}" && test -z "${LIBGO_IS_PPC64LE_FALSE}"; then
+ as_fn_error "conditional \"LIBGO_IS_PPC64LE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
if test -z "${LIBGO_IS_S390_TRUE}" && test -z "${LIBGO_IS_S390_FALSE}"; then
as_fn_error "conditional \"LIBGO_IS_S390\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
diff --git a/libgo/configure.ac b/libgo/configure.ac
index 6dac4d693fe..6f2c6653130 100644
--- a/libgo/configure.ac
+++ b/libgo/configure.ac
@@ -194,6 +194,7 @@ is_m68k=no
mips_abi=unknown
is_ppc=no
is_ppc64=no
+is_ppc64le=no
is_s390=no
is_s390x=no
is_sparc=no
@@ -266,11 +267,18 @@ changequote([,])dnl
#ifdef _ARCH_PPC64
#error 64-bit
#endif],
-[is_ppc=yes], [is_ppc64=yes])
+[is_ppc=yes],
+ [AC_COMPILE_IFELSE([
+#if defined(_BIG_ENDIAN) || defined(__BIG_ENDIAN__)
+#error 64be
+#endif],
+[is_ppc64le=yes],[is_ppc64=yes])])
if test "$is_ppc" = "yes"; then
GOARCH=ppc
- else
+ elif test "$is_ppc64" = "yes"; then
GOARCH=ppc64
+ else
+ GOARCH=ppc64le
fi
;;
s390*-*-*)
@@ -310,6 +318,7 @@ AM_CONDITIONAL(LIBGO_IS_MIPSN64, test $mips_abi = n64)
AM_CONDITIONAL(LIBGO_IS_MIPSO64, test $mips_abi = o64)
AM_CONDITIONAL(LIBGO_IS_PPC, test $is_ppc = yes)
AM_CONDITIONAL(LIBGO_IS_PPC64, test $is_ppc64 = yes)
+AM_CONDITIONAL(LIBGO_IS_PPC64LE, test $is_ppc64le = yes)
AM_CONDITIONAL(LIBGO_IS_S390, test $is_s390 = yes)
AM_CONDITIONAL(LIBGO_IS_S390X, test $is_s390x = yes)
AM_CONDITIONAL(LIBGO_IS_SPARC, test $is_sparc = yes)
diff --git a/libgo/go/go/build/syslist.go b/libgo/go/go/build/syslist.go
index 84712bd91fc..bde12a55344 100644
--- a/libgo/go/go/build/syslist.go
+++ b/libgo/go/go/build/syslist.go
@@ -5,4 +5,4 @@
package build
const goosList = "darwin dragonfly freebsd linux nacl netbsd openbsd plan9 solaris windows "
-const goarchList = "386 amd64 amd64p32 arm arm64 alpha m68k mipso32 mipsn32 mipsn64 mipso64 ppc ppc64 s390 s390x sparc sparc64 "
+const goarchList = "386 amd64 amd64p32 arm arm64 alpha m68k mipso32 mipsn32 mipsn64 mipso64 ppc ppc64 ppc64le s390 s390x sparc sparc64 "
diff --git a/libgo/testsuite/gotest b/libgo/testsuite/gotest
index 39beac393c6..1bcd4b9d313 100755
--- a/libgo/testsuite/gotest
+++ b/libgo/testsuite/gotest
@@ -379,7 +379,7 @@ localname() {
{
text="T"
case "$GOARCH" in
- ppc64) text="[TD]" ;;
+ ppc64*) text="[TD]" ;;
esac
symtogo='sed -e s/_test/XXXtest/ -e s/.*_\([^_]*\.\)/\1/ -e s/XXXtest/_test/'