diff options
author | ian <ian@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-11-21 18:22:05 +0000 |
---|---|---|
committer | ian <ian@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-11-21 18:22:05 +0000 |
commit | 59eb586e96aefa8083fc6e8d495ef85909daea27 (patch) | |
tree | cc0447c3026814b91fce5321db5213fb5eeea0f8 | |
parent | 2e59eefdcfe2a28157885965ad081a2302843814 (diff) | |
download | gcc-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
-rwxr-xr-x | libgo/configure | 35 | ||||
-rw-r--r-- | libgo/configure.ac | 13 | ||||
-rw-r--r-- | libgo/go/go/build/syslist.go | 2 | ||||
-rwxr-xr-x | libgo/testsuite/gotest | 2 |
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/' |