runtime: GOARCH values for ppc64 BE & LE
authorIan Lance Taylor <ian@gcc.gnu.org>
Fri, 21 Nov 2014 18:22:05 +0000 (18:22 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Fri, 21 Nov 2014 18:22:05 +0000 (18:22 +0000)
ppc64 for BE
ppc64le for LE
issue 8654

From-SVN: r217941

libgo/configure
libgo/configure.ac
libgo/go/go/build/syslist.go
libgo/testsuite/gotest

index 3352c0ff6d1198b9c32a7e9343c441a7f1153ca1..ae98e3d187db6ed9053fbceaa9927719a5ec88ba 100755 (executable)
@@ -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
@@ -13733,14 +13736,28 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 _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
index 6dac4d693fe64e6279634fc15b52e630d115a754..6f2c6653130fa02bc5416ff595fb02d7f2a378bd 100644 (file)
@@ -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)
index 84712bd91fceb1f6011534f1c298418f6c9c5f27..bde12a553443245d041ea8d4adb1a1961d2b6d2c 100644 (file)
@@ -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 "
index 39beac393c6c197f71cd219c24bee096f3a9f7e9..1bcd4b9d31305956614e39d829ebc58caf9423eb 100755 (executable)
@@ -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/'